統計ルールへのフィールド値の追加
このトピックでは通常、統計ルールにフィールド値よりもむしろフィールド名を必ず追加する、その方法を説明します。
統計名にはイベント値が追加されます
統計テンプレートは強力で柔軟ですが、適切に構成されていないと意図しない結果を生じる可能性があります。 統計テンプレートは、可変の統計パス (統計インスタンス) を作成します。 統計テンプレートでは、ソース イベント内の選択されたフィールドの名前および値から派生した変数に基づいて統計名が生成されます。 これにより、各マップでプレイヤーが獲得したゴールドの量などの情報をキャプチャできます。
イベントの 名前 が統計名に追加されるだけでなく、イベントの 値 も追加されます。 これにより、混乱や意図しない結果が生じることがよくあります。
1 つの統計ルールの例
ゲームが GameEnd
という名前のイベントを送信すると仮定します。
Map
という名前のフィールド int
と Gold
という名前のフィールド int
があります。
単一の統計ルールを使用してマップごとにハイスコアを取得するには、統計に GoldByMap
などの名前を付け、Map
フィールドを統計ルールに追加します。 この例では、Map
値は数値 ID です。
パラメーター (統計をインクリメントする値を含むフィールド) は、GameEnd
イベントの Gold
フィールドになります。
ゲームが Xbox サービスに GameEnd
イベントを送信すると仮定します。 イベントのフィールド Map
の値は 1 です。 フィールド Gold
の値は 100 です。
結果、統計は次の統計パスに書き込まれます: GoldByMap.Map.1
。 この統計パスの新しい値は 100 です。
次の表に、これまで長く保持してきた内容を示します。
項目 | 型 | 注意 |
---|---|---|
GameEnd |
イベント | ゲームから Xbox サービスに送信 |
Map |
イベントのフィールド |
int
|
1 | int |
Map フィールドの値。 |
Gold |
イベントのフィールド |
int
|
100 | int |
Gold フィールドの値。 |
統計パスには、次の表で示された部分があります。
項目 | 型 | 注意 |
---|---|---|
GoldByMap.Map.1 |
統計パス | この統計パスの値は 100 です。 |
GoldByMap |
統計名 | 該当なし。 |
Map |
統計ルール | 数値 ID。 |
次のイベントが 2 の値 Map
で受信されると、そのイベントの Gold
フィールドが次の新しい統計パスに追加されます: GoldByMap.Map.2
。
このイベントの Gold
フィールドの値が 200 と仮定します。
次の表に示された内容も含みます。
項目 | 型 | 注意 |
---|---|---|
GoldByMap.Map.2 |
統計パス | この統計パスの値は 200 です。 |
このようにして、各 Map
に対して統計を定義しなくても、統計値を個別に維持できます。
統計ルールにフィールド値ではなくフィールド名を誤って追加した場合の例
上記の例を使用すると、統計ルール Map
に Gold
パラメーター値だけでなく、Gold
フィールド名も追加した場合に、どのような悪い結果になるかを見てみましょう。 この結果、統計名は次のようになります: GoldByMap.Map.1.Gold.100
。
ユーザー (100) が獲得したゴールドの値も統計名に含まれていることに注意してください。これは、マップ 1 で 100 ゴールドを獲得したユーザーが、この統計で値 100 を取得することを意味します: GoldByMap.Map.1.Gold.100
。
ユーザーがそのマップで 101 ゴールドを獲得した場合、この構成の結果は次のようになり、異なる統計名になります: GoldByMap.Map.1.Gold.101
。 その結果、これらの統計はプレイヤーが統計名内で定義された特定の量のゴールドを獲得したときにのみインクリメントされ、それはおそらく意図した結果ではありません。