- 呼び出しやすいシンプルな API の提供。
- 内部でリアルタイム アクティビティ サービスを利用して最新情報を作成。
- 開発者はサービスへの余計な負荷をかけることなく、Achievements Manager API を同期的に呼び出せます。
機能
Achievements Manager では次の機能が提供されます。- 簡素化された実績 API
- 各ユーザーの最新の実績状態と進行状況
- XBOX services への呼び出し回数の削減
- データ取得における全体的なレイテンシの低減に直結します
- スレッドセーフ
- データを効率的に最新に保つ
主要な概念
実績 (Achievements): 実績には Gamerscore や、デジタル アートワーク、新しいマップ、キャラクター、ステータス ブーストなどのその他の報酬、および完了までの現在の進行状況が含まれます。 ユーザーの実績状態を最新に保つには、XblAchievementsManagerDoWork 関数を毎フレーム呼び出す必要があります。Windows ではローカル ユーザーは 1 人しか存在できません。
API の概要
次に示す主要な API を最も頻繁に使用することになります。 Achievements Manager API の完全な説明は、XBOX Live API リファレンス にあります。 また、XblAchievementsManager プレフィックスのドキュメントでも API を確認できます。Achievements Manager へのローカル ユーザーの追加
- C API 関数: XblAchievementsManagerAddLocalUser
ユーザーの実績状態の取得
- C API 関数: XblAchievementsManagerGetAchievements
使用方法
Achievements Manager イベントの使用
Achievements Manager は、発生した内容をイベントの形式で通知します。 これらのイベントを利用して UI を更新したり、その他のロジックを実行したりできます。 C API返されるイベント
Local User Initial State Synced: Achievements Manager が、ユーザーの現在のタイトルのすべての実績の現在の状態の取得を完了したときに発生します。- C API: XblAchievementsManagerEventType::LocalUserInitialStateSynced
- C API: XblAchievementsManagerEventType::AchievementProgressUpdated
- C API: XblAchievementsManagerEventType::AchievementUnlocked
追加の詳細
ゲーム ループ中にサービスから頻繁に実績の状態を取得する代わりに、Achievements Manager は Achievements Manager にユーザーが登録された時点でそのユーザーのすべての実績の状態を取得します。 その後、Achievements Manager はサービスからユーザーの実績の更新に関する詳細イベントを受信し、それらは XblAchievementsManagerDoWork 関数から返される events としてタイトルに転送されます。 events は XblAchievementsManagerEvent のリストであり、各 XblAchievementsManagerEvent には直前のフレーム中に発生した実績への変更が含まれています。 詳細は XblAchievementsManagerEvent API ドキュメントを参照してください。実績を追跡するユーザーの登録
このシナリオでは、Achievements Manager にユーザーを登録して、そのユーザーの実績への更新の追跡を開始し、そのユーザーのすべての実績の状態をローカルにキャッシュします。 C API返されるイベント
Local User Initial State Synced: Achievements Manager が、ユーザーの現在のタイトルのすべての実績の現在の状態の取得を完了したときに発生します。- C API: XblAchievementsManagerEventType::LocalUserInitialStateSynced
追加の詳細
上記の例では、ユーザーに対して Achievements Manager を初期化し、最新に保つ方法を示しています。 ゲーム ループでは、XblAchievementsManagerDoWork 関数がユーザーの実績への任意の更新を処理して適用します。ユーザーの単一実績の取得
このシナリオでは、ユーザーの単一の実績の状態を取得します。 C API- XblAchievement
- XblAchievementsManagerAddLocalUser
- XblAchievementsManagerIsUserInitialized
- XblAchievementsManagerGetAchievement
- XblAchievementsManagerResultGetAchievements
- XblAchievementsManagerResultCloseHandle
返されるイベント
Local User Initial State Synced: Achievements Manager が、ユーザーの現在のタイトルのすべての実績の現在の状態の取得を完了したときに発生します。- C API: XblAchievementsManagerEventType::LocalUserInitialStateSynced
ユーザーのすべての実績の取得
このシナリオでは、ユーザーのすべての実績の状態を取得します。 C API- XblAchievement
- XblAchievementOrderBy
- XblAchievementsManagerSortOrder
- XblAchievementsManagerAddLocalUser
- XblAchievementsManagerIsUserInitialized
- XblAchievementsManagerGetAchievements
- XblAchievementsManagerResultGetAchievements
- XblAchievementsManagerResultCloseHandle
返されるイベント
Local User Initial State Synced: Achievements Manager が、ユーザーの現在のタイトルのすべての実績の現在の状態の取得を完了したときに発生します。- C API: XblAchievementsManagerEventType::LocalUserInitialStateSynced
ユーザーの実績の一部を取得
このシナリオでは、ユーザーの実績の一部の状態を取得します。 C API- XblAchievement
- XblAchievementOrderBy
- XblAchievementsManagerSortOrder
- XblAchievementsManagerAddLocalUser
- XblAchievementsManagerIsUserInitialized
- XblAchievementsManagerGetAchievements
- XblAchievementsManagerResultGetAchievements
- XblAchievementsManagerResultCloseHandle
返されるイベント
Local User Initial State Synced: Achievements Manager が、ユーザーの現在のタイトルのすべての実績の現在の状態の取得を完了したときに発生します。- C API: XblAchievementsManagerEventType::LocalUserInitialStateSynced
ユーザーの特定の状態の実績のサブセットを取得
このシナリオでは、ユーザーの特定の進行状態にある実績のサブセットの状態を取得します。 C API- XblAchievement
- XblAchievementOrderBy
- XblAchievementProgressState
- XblAchievementsManagerSortOrder
- XblAchievementsManagerAddLocalUser
- XblAchievementsManagerIsUserInitialized
- XblAchievementsManagerGetAchievementsByState
- XblAchievementsManagerResultGetAchievements
- XblAchievementsManagerResultCloseHandle
返されるイベント
Local User Initial State Synced: Achievements Manager が、ユーザーの現在のタイトルのすべての実績の現在の状態の取得を完了したときに発生します。- C API: XblAchievementsManagerEventType::LocalUserInitialStateSynced
ユーザーの実績の更新
ユーザーの実績の進行状況を更新します。 C API- XblAchievementsManagerAddLocalUser
- XblAchievementsManagerIsUserInitialized
- XblAchievementsManagerUpdateAchievement
返されるイベント
Local User Initial State Synced: Achievements Manager が、ユーザーの現在のタイトルのすべての実績の現在の状態の取得を完了したときに発生します。- C API: XblAchievementsManagerEventType::LocalUserInitialStateSynced
