> ## 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 ユーザー統計シナリオ。

<a id="top" />

このトピックでは、イベント ベースの統計を使用してユーザー統計を作成する際の以下の一般的なシナリオについて説明します。

* [条件にブール値を使用する](#ubvfc)

* [累積値にカウンターを使用する](#ucfcv)

* [パーソナル ベストを追跡する](#tapb)

* [最新のものを追跡する](#ttmr)

<a id="ubvfc" />

## 条件にブール値を使用する

### 目標: 特定の条件が満たされたかどうかを追跡する

このパターンは、ゲーム ロジック内でユーザーが特定の条件を満たしたかどうかにフラグを付けたい場合に使用します。

### 使用例

* ユーザーのキャラクターが特定のレベルで死亡したかどうかにフラグを付ける

* ユーザーがそれぞれの特定のコレクタブルをロック解除したかどうかにフラグを付ける

* ユーザーが現在ハードコア難易度でプレイしているかどうかにフラグを付ける

* 複雑な実績をロック解除するための 5 つの条件をすべてユーザーが満たしたかどうかにフラグを付ける

### 例: ユーザーがショットガンで 90 キル、またはスナイパーで 10 キルを達成したかどうかにフラグを付ける

| フィールド      | 値                              |
| ---------- | ------------------------------ |
| イベント名      | `AchievementUnlocked`          |
| イベント フィールド | `UnlockId` (データ型: Int32)       |
| 統計テンプレート名  | `AchievementUnlocked.UnlockId` |
| 演算子        | `REPLACE`                      |
| パラメーター     | 1                              |
| アクセス       | `Open`                         |

### ルール

フラグを `TRUE` として読み取る必要がある場合は、リテラル値 "1" で `REPLACE` 演算子を適用します。

ゲーム ロジックをトリガーするためにフラグが 1 以上でなければならない場合は、リテラル値 "1" で `SUM` 演算子を適用します。

### 注意事項

必要に応じて、`REPLACE` ブール値統計の値を初期化またはリセットします。そうしないと、最後に設定された値が保持されます。

場合によっては、ブール値統計を `FALSE` にリセットできるイベントを定義すると便利です。その場合は、リテラル値 "0" で `REPLACE` 操作を使用します。

[このトピックの先頭に戻る。](#top)

<a id="ucfcv" />

## 累積値にカウンターを使用する

### 目標: 特定のメトリックに対するユーザーの全期間累積値をインクリメント (またはデクリメント) する

このパターンは、イベントが処理されるたびに、統計値を固定または可変の量だけインクリメントしたい場合に使用します。

### 使用例

* プレイヤー レベル

* 合計キル数

* アップロードされた動画の数

* ユーザーが各マップでプレイした回数

* 各車両タイプでの累積走行距離

* インベントリ内の現在のアイテム数

### 例: 勝利したマルチプレイヤー マッチのカウンター

| フィールド        | 値                              |
| ------------ | ------------------------------ |
| イベント名        | `MatchCompleted`               |
| イベント フィールド 1 | `Result` (データ型: Int32)         |
| イベント フィールド 2 | `Mode` (データ型: Unicode 文字列)     |
| 統計テンプレート名    | `MatchesCompleted.Result.Mode` |
| 演算子          | `SUM`                          |
| パラメーター       | 1                              |
| アクセス         | `Open`                         |

### ルール

対応するイベント フィールドに `SUM` 演算子を適用するか、パラメーターとして固定の定数値を指定します。

統計の値をデクリメントするには、固定の定数として、またはイベント フィールドの実行時値として、パラメーターに負の値を使用します。

### 注意事項

`SUM` 演算子でパラメーターとして文字列データ型の "リテラル" 値を使用しないでください。

`SUM` 演算子を文字列データ型のイベント フィールドに適用しないでください。

同じ統計を更新する複数のイベントがある場合は、その統計を更新するすべての統計ルールが同じ演算子を使用するようにしてください。

[このトピックの先頭に戻る。](#top)

<a id="tapb" />

## パーソナル ベストを追跡する

### 目標: 特定のメトリックに対するユーザーの全期間 "ベスト" スコアを追跡する

このパターンは、ユーザーの最大 (`MAX`) または最小 (`MIN`) の記録を保持したい場合に使用します。ユーザーの記録を更新しない値はすべて破棄します。

### 使用例

* 最長キル ストリーク

* マルチプレイヤー ラウンドでの最小デス数

* 各レース トラックの完走最速タイム

* 任意のゴルフ コースのすべてのホールでの最長飛距離

### 例: Europe セットのいずれかのトラックを完走した最速タイム

| フィールド        | 値                                  |
| ------------ | ---------------------------------- |
| イベント名        | `TrackCompleted`                   |
| イベント フィールド 1 | `TrackSet` (データ型: Unicode 文字列)     |
| イベント フィールド 2 | `TimeInSeconds` (データ型: Int32)      |
| 統計テンプレート名    | `BestFinishTimeInSeconds.TrackSet` |
| 演算子          | `MIN`                              |
| パラメーター       | `TimeInSeconds`                    |
| アクセス         | `Open`                             |

### ルール

対応するイベント フィールドに `MAX` または `MIN` 演算子を適用します。

### 注意事項

`MAX` または `MIN` 演算子でパラメーターとして "リテラル" 値を使用しないでください。

`MAX` または `MIN` 演算子を文字列データ型のイベント フィールドに適用しないでください。

同じ統計を更新する複数のイベントがある場合は、その統計を更新するすべての統計ルールが同じ演算子を使用するようにしてください。

[このトピックの先頭に戻る。](#top)

<a id="ttmr" />

## 最新のものを追跡する

### 目標: 特定のメトリックでユーザーが投稿した最新のスコアを追跡する

このパターンは、値がユーザーの最高記録を更新するかどうかに関係なく、ユーザーの最新の記録を保持したい場合に使用します。

### 使用例

* 現在の難易度

* 現在のマルチプレイヤー ラウンドでのデス数

* 各トラックにおける最新レースのトップ スピード

* 現在装備しているプレミアム ゴルフ クラブのブール値フラグ

### 例: 任意のトラックでの直近の完走タイム

| フィールド        | 値                                 |
| ------------ | --------------------------------- |
| イベント名        | `TrackCompleted`                  |
| イベント フィールド 1 | `TrackId` (データ型: Int32)           |
| イベント フィールド 2 | `TimeInSeconds` (データ型: Int32)     |
| 統計テンプレート名    | `BestFinishTimeInSeconds.TrackId` |
| 演算子          | `REPLACE`                         |
| パラメーター       | `TimeInSeconds`                   |
| アクセス         | `Open`                            |

### ルール

対応するイベント フィールドまたはリテラル値に `REPLACE` 演算子を適用します。

### 注意事項

必要に応じて、`REPLACE` 統計の値を初期化またはリセットします。そうしないと、最後に設定された値が保持されます。

[このトピックの先頭に戻る。](#top)


## Related topics

- [イベント ベースの実績を作成するためのシナリオ](/ja-jp/services/xbox-services/player-data/achievements/event-based/concepts/live-achievements-scenarios.md)
- [FMA XR-115: プレイ中のユーザーおよびコントローラーの追加と削除](/ja-jp/publishing/certification/fma/xr-115.md)
- [FMA XR-112: 起動時および再開時のユーザーとコントローラー](/ja-jp/publishing/certification/fma/xr-112.md)
- [Free to Use シナリオを管理する](/ja-jp/publishing/game-publishing/how-to/how-to-freetouse.md)
- [イベントベース統計の取得](/ja-jp/services/xbox-services/player-data/stats-leaderboards/event-based/how-to/live-getting-eb-stat.md)
