Partner Center にサインインする
以下の例では、XBOX ゲーム体験を構成するために Partner Center を使用します。 会社が XBOX 向けの製品を作成する契約を締結した後、Partner Center でコンテンツを構成します。会社が Partner Center アクセスの設定をまだ完了しておらず、ゲームを開発している場合は、Microsoft のアカウント マネージャーに連絡してください。アプリを開発している場合は、XBOX App Partner Requests (xboxapps@microsoft.com) に連絡してください。ID@XBOX プログラムで作業している場合は、ID Setup (idsetup@microsoft.com) に連絡してください。 ID@XBOX プログラムでは、あらゆる規模の適格なゲーム開発者が、XBOX One (以降) でデジタル ゲームをセルフパブリッシュすることで創造性を発揮できるようにします。これにより、スタジオは成功を最大化するために必要なツールとサポートを得られます。詳細については、https://www.xbox.com/Developers を参照してください。 Partner Center にアクセスできるようになったら、Microsoft にゲームの製品グループを作成してもらう必要があります。Microsoft のアカウント マネージャーがこのプロセスを支援できます。 Microsoft がゲームの製品グループを作成した後、Partner Center を使用してゲームの XBOX services を構成します。ゲームの XBOX services 構成は、その サービス構成 とも呼ばれます。 次の手順に従って、ゲームのイベント、ステータス、実績、およびリーダーボードを追加できる Partner Center の場所に移動します。- Partner Center にアカウントでサインインします。
- ゲームを含む、または含む予定の製品グループを選択します。
- Product Group ページで、ゲームを選択するか、Add New Product を選択して新しいエントリを作成します。
- 新しい製品を作成する場合、製品の名前を入力します。
- リソース アクセスには、Exclusive Resource Access (ERA) を選択します。
- ゲームの物理メディアを製造する必要があるか、それともデジタル ダウンロードのみになるかを選択します。
- Create Product を選択します。
- 左側のペインの下部で、製品が作成されたサンドボックスを展開します。 サービス構成はサンドボックス レベルで定義されます。製品を別のサンドボックスにエクスポートする場合、サービス構成もエクスポートする必要があります。
- サンドボックスのサブメニューで Service Configuration を選択します。このページを使用して、現在のサンドボックスでタイトルの XBOX services を構成します。
シナリオのイベントを特定して定義する
Partner Center では、実現したいプレイヤー体験を実装するルールを定義する前に、それらの体験を駆動するイベントを特定して定義する必要があります。 イベント ベースのモデルでは、実績とリーダーボードはプレイヤー ステータスに基づいています。したがって、定義するステータスを見て、タイトルが送信する必要があるイベントを判断できます。 この例で定義する体験を駆動するために、レースの各ラップの終わりに送信するイベントを使用します。 このイベントをLapCompleted と呼びましょう。このイベントを使用して、カスタマイズされた体験を駆動します。これらの体験を駆動するために、LapCompleted イベントの一部として次のフィールドも定義します。
- LapTime: ラップの完走に要した時間 (分) を示すフィールド。
- CarModel: ラップの完走に使用された車のモデルを示す文字列フィールド。
- WeatherCondition: ラップが完走されたときのトラックの天候条件を識別する文字列フィールド。
- TrackId: ラップが完走されたトラックの ID。
- Partner Center で、左側のペインで Test Sandbox > Service Configuration > Events & Stat Rules を選択します。
- New を選択して新しいイベントを作成します。Add New Event ダイアログが次のように表示されます。
- Base Event で Base を選択します。
- Event Name に LapCompleted を入力します。
- オプションで、Description にイベントの説明を入力します。
- Add Event Field を選択します。
- Field Name に LapTime を入力し、Type を Double に指定します (次のとおり)。
- Add Event Field を選択します。
-
プロセスを繰り返して、次のイベント フィールドを追加します。
- CarModel: UnicodeString
- WeatherCondition: UnicodeString
- TrackId: Int32
- Save Event を選択して、サンドボックスにイベントを保存します。
ステータス ルールの設計
プレイヤー体験を定義したので、それらの体験を実装するステータス ルールの作成を開始できます。3 つのシナリオ (注目統計、実績、リーダーボード) すべてでLapTime を使用しているため、まずそれを構成します。
このステータスは、注目統計 (hero stats とも呼ばれる) として表示され、追加のメタデータを持つグローバル リーダーボードにも使用されます。
ゲームは、ゲーム内で特定のアクションが発生したときにゲーム内イベントを発火し、ステータスを作成するための生データと見なされます。すべてのイベントによって少なくとも 1 つのステータスが作成または更新される必要があります。
(1 つのイベントで複数のステータスを生成する方法の詳細は、イベント ベースのステータスの概要 を参照してください。)
- Events & Stat Rules ページで、イベントのリストから LapCompleted イベントを選択します。
- Stat Rules の右にある New を選択して新しいステータス ルールを作成します。選択したイベントに基づきます。Add Stat Rule ダイアログが次のように表示されます。
- Stat Rule Name に FastestLap を入力します。
- このルールによって作成されるステータスに他のアプリやタイトルがアクセスできるようにしたいので、Open read access to any title チェックボックスをオンにします。 ステータス ルールには、イベントがステータスを作成または更新する方法を定義するロジックがあります。最速ラップを追跡したいため、新しいラップ タイムが既存の最速ラップ タイムよりも小さい場合にのみステータス値を更新したいと考えます。
- これを行うには、Operator で Min を、Parameter で LapTime を選択します (次のとおり)。
- メタデータにフィールドを追加するには、CarModel を選択し、Add Event Field を選択します。
- WeatherCondition および TrackId フィールドについてもこれを繰り返します (次のとおり)。
- Add Stat Rule を選択してステータス ルールを作成します。
注目統計、リーダーボード、および実績の構成
注目統計
ステータス ルールが完成したので、GameHub の GameHub Achievement タブにステータスを表示したいと考えます。したがって、注目統計 (Partner Center では hero stat と呼ばれる) を構成する必要があります。- Partner Center で、左側のペインで Test Sandbox > Service Configuration > Hero Stats を選択します。
- New を選択して新しい注目/hero stat を追加します。
- Hero Stat Display Name に Fastest Lap を入力します。
- Display Format で ShortTimespan を選択します。Display Units で Seconds を選択します。
- Display Semantic で Best を選択します。これは、値がステータスの最高スコアを表すことをコンパニオン アプリに示します。
-
Select an Instance を選択し、Stat Instance で FastestLap を選択します。これは、注目統計が
FastestLapのステータス値に基づくことを示します。 - Ordinal に 1 を入力します。これは、注目統計をリスト表示する際に、この注目統計を最初に表示することを示します。
- Sort Order で Ascending を選択します。これは、次のように、値が低い方が値が高いよりも優れていることを示します。
- Add New Hero Stat を選択して、注目/hero stat を作成します。
グローバル リーダーボード
同じラップ タイム ステータスを使用して、リーダーボードを構成し、各プレイヤーが自分のラップ タイムが世界中の他のすべてのプレイヤーに対してどのようにランク付けされているかを確認できるようにします。- Partner Center で、左側のペインで Test Sandbox > Service Configuration > Leaderboards を選択します。
- New を選択して新しいグローバル リーダーボードを作成します。
- Leaderboard ID に FastestLap を入力します。
- Select an Instance を選択し、先ほど作成した FastestLap ステータス ルールを選択し、Add Stat Instance を選択します。
- Sort で Ascending を選択します (次のとおり)。この選択は、タイムが低い方が優れていることを示します。
- Add New Leaderboard を選択して新しいグローバル リーダーボードを作成します。
イベント ベースの実績
タイトル マネージド実績の使用を推奨します。ただし、まだイベント ベースの実績を使用しているタイトルについては、次のようにイベントを使用してサービス上での実績の解除を駆動できます。 イベントを使用してイベント ベースの実績を解除するには- Partner Center で、左側のペインで Test Sandbox > Service Configuration > Achievements & Challenges を選択します。
- New を選択して新しい実績を追加します。
- Achievement Name に Under 60 seconds を入力します。
- Description に Completed a lap in under 60 seconds を入力します。この説明は、実績が解除されたときにプレイヤーに表示されます。
- Not Achieved Description に Complete a lap in under 60 seconds を入力します。この説明は、実績がまだロックされているときにプレイヤーに表示されます。
- Achievement Icon として使用する 1920 × 1080 ピクセルの .png ファイルを次のようにアップロードします。
- Add Achievement を選択して実績を作成します。
- 実績のリストで Under 60 seconds の実績が選択されていることを確認します。Rewards の右にある New を選択して、実績を解除したプレイヤーに報酬を与えます。
- この実績の解除に対して 20 gamerscore ポイントをプレイヤーに与えます。Reward Type で Gamerscore を選択します。
- Value に 20 を入力します (次のとおり)。
- Add Reward を選択します。
- 実績のリストで Under 60 seconds の実績がまだ選択されていることを確認します。Rules の右にある New を選択して、実績を解除する条件を定義します。
- Rule Name に Under 60 seconds rule を入力します。この値はプレイヤーには表示されないため、任意の名前を付けることができます。
- Action で Min を選択します。これは、選択したステータス インスタンスが閾値以下のときに実績が解除されることを示します。
- Threshold に 60 を入力します。
- Select an Instance を選択し、FastestLap ステータス ルールを選択し、Add Stat Instance を選択します。
- Add Rule を選択して、次のように実績のルールを作成します。
ゲームからイベントを送信するコードを追加する
XBOX services がプレイヤー シナリオを更新するために使用するLapCompleted イベントを定義したので、プレイヤーがゲームでレース ラップを完走したときにイベントを送信するコードをゲームに追加する必要があります。
イベントを書き込むには、イベント名 LapCompleted で XblEventsWriteInGameEvent 関数を呼び出します。
Flat C API
