XBOX services ユーザー統計サービスへのゲーム イベントの書き込み
ゲームで最もエキサイティングな瞬間は、対戦相手を倒す、倒される、場所へ移動する、武器を発射する、花を摘むなど、重要な出来事が起こったときです。XBOX services を使用することで、タイトルはプレイヤーのゲームにおける重要なイベントに関する情報を共有できます。詳細を XBOX services に送信でき、ユーザーに関する統計が記録されます。これらの統計は、ユーザー統計、リーダーボード、およびマッチメイキングで使用するために取得できます。 イベントと、イベントの一部として送信される任意のデータがサービスに届くと、XBOX services はタイトルのサービス構成で定義されたルールを処理し、ユーザー統計、リーダーボードなどを作成または更新します。Partner Center での構成
まず、Partner Center の Player Stats | Stat rules ページでイベントを定義します。Partner Center でイベントと統計を定義したら、次の手順を実行してイベントを送信できます。イベントの書き込み
Microsoft Game Development Kit (GDK) タイトルの場合、イベントを送信する API は XBOX One Software Development Kit タイトルの API とは異なり、マニフェスト ファイルの使用は必要ありません。 XblEventsWriteInGameEvent 関数は次のように宣言されています。xboxLiveContext は、XBOX services のコンテキスト ハンドルです。
eventName は、Partner Center で定義されたイベント名です。
dimensions は、有限の値のセットを取るイベント プロパティに対応するプロパティ バッグです。例: レベル、武器、キャラクター。
measurements は、値のセットが不確定であるイベント プロパティに対応するプロパティ バッグです。例: 走行距離、倒した敵の数、プレイ時間 (分)。
Dimensions と Measurements については、後で詳しく説明します。
Measurements と Dimensions
XBOX services のイベントを目的として XblEventsWriteInGameEvent を呼び出す場合、イベント プロパティを dimension として渡すか measurement として渡すかに違いはありません。これらの違いは、テレメトリのために Application Insights でイベントを分析する場合にのみ関係します。ゲームプレイ体験には影響しません。詳細については、カスタム イベントとメトリックの Application Insights API を参照してください。 Dimensions は、イベントをフィルターまたはピボットするために使用できます。例: レベル 6 をクリアしたユーザーを表示する、または使用された武器が “Minigun” であるすべての “Enemies Killed” イベントを表示する。 Measurements はグラフィカルに表示することも、リーダーボードで使用することもできます。例: 時間、連続勝利ラウンド数などを追跡する。 ただし、XBOX services での使用を目的とする場合、イベント プロパティを measurement として渡すか dimension として渡すかに違いはありません。実績のロック解除やその他の XBOX services 関連機能の目的では、これらは同じように処理されます。XBOX services イベントのデバッグ
タイトルからのイベントが XBOX services に正常に到達しない場合、hero stats とリーダーボードは更新されません。イベントが XBOX services で正常に受信されていない疑いがある場合は、次の手順を試してください。- サンドボックスが正しいことを確認します。
- デバイスに Fiddler をセットアップします。Fiddler では、次のようにイベントが表示されるはずです。
v10.vortex-win.data.microsoft.com への呼び出しを探します。表示されているようにリクエスト本文をデコードする必要があり、JSON を確認すると、次のような内容が表示されます。
イベント名が期待どおりのものであることを確認できます。タイトル ID が名前の先頭に付加されます。また、200 のリターン コードが返されていることも確認してください。
