> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# リッチ プレゼンス文字列の構成

> ローカライズされた値、列挙、イベント ベースの統計パラメーターを使って、動的なアクティビティ テキスト用の XBOX Live リッチ プレゼンス文字列セットを定義する方法について説明します。

この記事では、リッチ プレゼンス文字列の構成方法について説明します。

## 文字列

リッチ プレゼンス文字列については、文字列セットを定義する必要があります。
各文字列セットには、識別子として使用するフレンドリ名を付けることをお勧めします。

作成する各文字列セットには、ゲームがリリースされるロケール向けに適切にローカライズされた文字列のグループが含まれている必要があります。

ローカライズされた文字列に加えて、カルチャに依存しない文字列も指定する必要があります。
この文字列は、存在しないロケールに対する要求があった場合に使用されます。

各文字列セットは、文字列をパラメーター化することで、ゲーム内データを使用してさらに強化することもできます。
結果として得られる文字列が文字数制限を超えない限り、文字列セットには任意の数のパラメーターを含めることができます。詳細については、「[リッチ プレゼンス文字列のポリシーと制限](/services/xbox-services/community/presence/concepts/live-presence-limits)」を参照してください。

## 列挙

以下で説明する列挙は、XBOX Player Data のイベントを介して定義されます。

## 統計

リッチ プレゼンス文字列内で、イベント ベースの数値統計値を使用できます。
たとえば、シューティング ゲームでは、プレイヤーが現在何回キルしたかをリッチ プレゼンス文字列に表示したい場合があります。

構成では、パラメーターが「Kill Count」統計に置き換えられることを示す必要があります。
これは Common Schema Eventing システムを介して作成され、プレイヤー データに変換されるように XBOX Player Stats サービスに渡されるか転送されます。統計は、統計構成を使用して定義する必要があります。

別のプレイヤーが文字列を読み込むと、リッチ プレゼンス サービスは「Kill Count」統計の最新の値を取得します。その結果、文字列は常に最新の状態に保たれます。

変数を持つリッチ プレゼンス文字列は、イベント ベースの数値統計とのみ互換性があり、タイトル管理の統計とは互換性がありません。

## 状態

リッチ プレゼンス文字列内では、実際の状態値を表す統計を使用することもできます。
たとえば、レーシング ゲームでは、リッチ プレゼンス文字列を使って、プレイヤーが現在運転している車や、レースを行っているマップやトラックを表示できます。

**状態情報を構成するには**

1. ゲーム内文字列の列挙を定義します。たとえば、ゲームに 5 つのマップがあり、それらのマップをリッチ プレゼンス文字列の一部にしたい場合、5 つのマップもローカライズされた文字列に列挙する必要があります。

2. 列挙を統計にリンクします。リッチ プレゼンス サービスは、統計の値を検索することで、プレイヤー データから最新の値を再度取得します。その後、サービスはその統計が変換される列挙値を判断します。

## ゲームの例

例の残りの部分では、最新のバケツ蹴りゲームに取り組んでいると仮定します。蹴った各種類のバケツごとに統計を作成し、リッチ プレゼンス文字列を使って統計を表示したいとします。

ゲームのルールが以下のとおりであるとします。

* バケツの種類は木製、銀製、金製です。

* 場所は山、砂漠、ビーチです。

* バケツを蹴ると壊れます。プレイヤーは常にさらにバケツを探す必要があります。

* 一部のバケツを成功裏に蹴るには特別なギアが必要です。たとえば、ブーツは蹴りに耐えられるほど頑丈でなければなりません。

* ゲームにはマルチプレイヤー モードがあります。同じバケツを蹴ろうとするプレイヤーが十分にいれば、特定のブーツは不要です。

このゲームのリッチ プレゼンス文字列構成は以下のようになります。

## リッチ プレゼンス用の統計の構成

リッチ プレゼンス文字列内で XBOX Player Data によって生成された統計を使用するには、リッチ プレゼンス サービスの名前を指定します。

## 列挙構成の例

以下は、いくつかの列挙を定義する例です。

1. ゲームのマップ用の列挙を作成します。ゲームには 3 つのマップがあります。それぞれに、簡単に参照できるようフレンドリ名が付けられています。

2. 各ロケールについて、そのマップ名のローカライズされた文字列を作成します。全体的な既定のローカライズと、カルチャに依存しないローカライズがあることに注目してください。

3. ゲーム内の 3 つの武器を検討します。それぞれにフレンドリ名とローカライズされた文字列があります。これはすべての列挙に対して行います。

| 列挙   | 関連する統計        | フレンドリ名         | ロケール     | 文字列       |
| ---- | ------------- | -------------- | -------- | --------- |
| Map  | CurrentMap    | Map\_Mountains | Default  | Mountains |
|      |               |                | en       | Mountains |
|      |               |                | en-US    | Mountains |
|      |               |                | en-GB    | Mountains |
|      |               |                | de-DE    | Gebirge   |
|      |               |                | その他のロケール |           |
|      |               | Map\_Desert    | Default  | Desert    |
|      |               |                | en       | Desert    |
|      |               |                | en-US    | Desert    |
|      |               |                | en-GB    | Desert    |
|      |               |                | de-DE    | Wuste     |
|      |               |                | その他のロケール |           |
|      |               | Map\_Beach     | default  | Beach     |
|      |               |                | en       | Beach     |
|      |               |                | en-US    | Beach     |
|      |               |                | en-GB    | Beach     |
|      |               |                | de-DE    | Strand    |
|      |               |                | その他のロケール |           |
| Boot | CurrentWeapon | Boot\_Light    | Default  | Light     |
|      |               |                | en       | Light     |
|      |               |                | en-US    | Light     |
|      |               |                | en-GB    | Light     |
|      |               |                | de-DE    | Leicht    |
|      |               |                | その他のロケール |           |
|      |               | Boot\_Medium   | Default  | Medium    |
|      |               |                | en       | Medium    |
|      |               |                | en-US    | Medium    |
|      |               |                | en-GB    | Medium    |
|      |               |                | de-DE    | Mittel    |
|      |               |                | その他のロケール |           |
|      |               | Boot\_Strong   | Default  | Strong    |
|      |               |                | en       | Strong    |
|      |               |                | en-US    | Strong    |
|      |               |                | en-GB    | Strong    |
|      |               |                | de-DE    | Stark     |
|      |               |                | その他のロケール |           |

## 文字列構成の例

列挙と統計が定義されたので、文字列を作成します。

以下の例の表では、1 列目は、1 つの文字列セットを別の文字列セットと区別するために参照を助けるフレンドリ名です。
この例では、文字列 "playingMap" が 1 番目の文字列セット、"totalKicked" が 2 番目、"multiplayer" が 3 番目に使用されています。

### ロケールと文字列のペア

次の 2 列は一緒になります。
これらはリッチ プレゼンス文字列のロケールと文字列のペアです。

最初の例では、英語で "Playing on {0}" という文字列が使用されています。
{0} トークンは値に置き換えられます。

その後、文字列は他のロケール向けにローカライズされます。

列挙と同様に、既定の文字列とカルチャに依存しない文字列が必要です。これらは、ロケールと文字列のペアを指定していないロケールをプレイヤーが使用している場合に使用されます。
列挙に使用されるロケールは、文字列のロケールと一致する必要があります。

### 文字列を構築するためのパラメーター

最後の列は、リッチ プレゼンス文字列の空欄を埋めるために使用されるパラメーター用です。

Presence サービスに Statistics サービスでパラメーターの値を検索させたい場合は、ここで統計名を使ってパラメーターを参照する必要があります。
文字列に統計を使用すると、統計を 1 回設定するだけで済みます。書き直す必要はありません。

文字列にマップ名が含まれていて、`CurrentMap` 統計を使って空欄を埋めている場合、プレイヤーがゲーム内でマップからマップへ移動するにつれて、リッチ プレゼンス サービスが適切に文字列を更新します。
リッチ プレゼンス文字列で統計を使用しない場合、パラメーターは指定できません。

以下の例の表では、1 番目の文字列で統計から生成された現在のマップを使用します。2 番目の文字列では `BucketsKicked` 統計を使用します。

3 番目の例にはパラメーターは含まれていません。
文字列はそれ自体で定義されており、統計を参照していません。

| フレンドリ名      | ロケール     | 文字列                 | パラメーター                    |
| ----------- | -------- | ------------------- | ------------------------- |
| playingMap  | Default  | Playing on map:{0}  | CurrentMap                |
|             | en       |                     | Playing on map:{0}        |
|             | en-US    |                     | Playing on map:{0}        |
|             | en-GB    |                     | Playing on map:{0}        |
|             | de-DE    |                     | Auf der Karte spielen:{0} |
|             | その他のロケール |                     |                           |
| totalKicked | Default  | Kicked {0} Buckets! | BucketsKicked             |
|             | en       |                     | Kicked {0} Buckets!       |
|             | en-US    |                     | Kicked {0} Buckets!       |
|             | en-GB    |                     | Kicked {0} Buckets!       |
|             | de-DE    |                     | {0} getretenen Eimer!     |
|             | その他のロケール |                     |                           |
| multiplayer | Default  | Playing multiplayer |                           |
|             | en       |                     | Playing multiplayer       |
|             | en-US    |                     | Playing multiplayer       |
|             | en-GB    |                     | Playing multiplayer       |
|             | de-DE    |                     | Mehrspieler spielen       |
|             | その他のロケール |                     |                           |

作成できる文字列の数に制限はありませんが、ゲームには少なくとも 1 つの文字列が必要です。

`BucketsKicked` は文字列に置き換わる単なる数値です。
`CurrentMap` は、文字列が列挙から取得される統計の例です。
ゲームがこれらのいずれかの文字列にリッチ プレゼンスを設定するとき、構成を使用して、どのパラメーターが必要かを把握します。


## Related topics

- [Partner Center でのリッチ プレゼンス文字列の構成](/ja-jp/services/xbox-services/community/presence/config/live-presence-config2.md)
- [リッチ プレゼンス ポータル構成](/ja-jp/services/xbox-services/community/presence/config/live-presence-config-nav.md)
- [リッチ プレゼンス文字列のポリシーと制限](/ja-jp/services/xbox-services/community/presence/concepts/live-presence-limits.md)
- [リッチ プレゼンスのベスト プラクティス](/ja-jp/services/xbox-services/community/presence/concepts/live-presence-best-practices.md)
- [リッチ プレゼンス](/ja-jp/services/xbox-services/community/presence/live-presence-nav.md)
