イベントに基づく実績を作成するためのシナリオ
このトピックでは、実績を作成する場合の一般的なシナリオについて説明します。
注意
このトピックは、イベントに基づく実績 (旧称は Achievements 2013) を現在使用しており、クロス進行状況を引き続き使用したい場合に該当します。 それ以外の場合は、タイトルで管理された実績を使用することをお勧めします。
複数条件の AND/OR ロジック
実績には、同期的な AND と非同期的な AND という 2 つの一般的な AND シナリオがあります。
非同期的な AND
非同期的な AND ロジックは、すべての実績ルールが満たされると、ロック解除される実績を定義します。 ユーザーは、各ルールを別々の時点で個別に満たすことができます。
この種の実績の例として、「10 のゾンビと 20 のゴーストを倒す」があります。この実績を定義するには、次の表に示すように、複数の実績ルールを構成します。
フィールド | 値 |
---|---|
Rule #1 Name | 10 のゾンビを倒す |
統計情報 | Kills.EnemyType.Zombie |
Action | SUM |
Threshold | 10 |
Rule #2 Name | 20 のゴーストを倒す |
統計情報 | Kills.EnemyType.Ghost |
Action | SUM |
Threshold | 20 |
非同期的な AND
同期的な AND ロジックは、すべての実績ルールが満たされると、ロック解除される実績を定義します。このロジックで、ユーザーは各条件を同時に満たす必要があります。 この種類の実績の例として、"Johnny としてプレイ中にバットで 10 のゾンビを倒す" があります。
同期的な AND ルールを定義するには、各条件を含む複数の実績ルールを使用するだけでは十分ではありません。 各ルールを個別に満たすことができないため、これが必要に応じて機能することはありません。 次の例でユーザーが次のこと行った場合、実績は不正にロック解除されてしまいます。
- 月曜日: Johnny としてプレイし、何も倒せなかった。
- 火曜日: Sam としてプレイし、10 のゾンビを倒した。
- 金曜日: Tim としてプレイし、バットで 5 つの骸骨を倒した。
このような実績を定義するには、各条件をすべて含む統計ルールを定義する必要があります。 ユーザーのアクティビティの完全なコンテキストは、イベントだけに含まれます。これは、特定の瞬間にゲーム内で起こったことを正確に伝えるためです。 統計情報はイベントから継承し、実績は統計情報から継承します。実績に関連するコンテキストを保持するには、実績の条件を統計情報として定義する必要があります。 実績は、必要とする正確な値を含む特定の統計インスタンスでしきい値が満たされた場合にのみロック解除されます。 次の構成では、実績の例を定義します。
フィールド | 値 |
---|---|
Rule #1 Name | Johnny としてプレイ中にバットで 10 のゾンビを倒す |
統計情報 | Kills.EnemyType.Zombie.WeaponType.Bat.PlayerCharacter.Johnny |
Action | SUM |
Threshold | 10 |
実績の OR ロジック
実績の最も一般的な OR シナリオは、明示的に列挙された複数の方法のセットとして特定の目標を記述することです。 この実績は、この方法またはあの方法でロック解除できます。
複数 (目標ごとに 1 つずつ) の実績ルールを定義してこのシナリオを実装することはできません。 実績に対する複数のルールは論理 AND として機能するため、実績をロック解除するには各ルールが満たされる必要があります。 "トラック A で 3 分未満でレースを完走する" という 1 つの実績ルールと、"トラック B で 1000 マイル走る" という 2 つ目の実績ルールを使用すると、ユーザーがそれらの目標の両方を満たした場合にのみ実績がロック解除されることになります。
代わりに、OR ロジックでこのような実績を定義するには、複数の統計インスタンス (各統計インスタンスが 1 つの有効手段を追跡する) に基づく 1 つの実績ルールを構成する必要があります。
MIN または MAX ルールの使用
このケースの例として、「レーストラック A、レーストラック B、またはレーストラック F で 3 分以内にレースを完了する」があります。この実績の構成を次の表に示します。
フィールド | 値 |
---|---|
Rule #1 Name | トラック A、B、F のいずれかで 3 分未満でレースを完走する |
Stat(s) | FinishTimeInSeconds.TrackId.A FinishTimeInSeconds.TrackId.B FinishTimeInSeconds.TrackId.F |
Action | MIN |
Threshold | 180 |
この実績ルールでは MIN ルール アクションを使用するため、上記のいずれかの統計インスタンスがしきい値を満たすと実績がロック解除されます。 たとえば、FinishTimeInSeconds.TrackId.A is 220
、FinishTimeInSeconds.TrackId.B is 163
、FinishTimeInSeconds.TrackId.F
== 199 の場合、このユーザーはトラック B で完走時間がしきい値を下回ったため、実績がロック解除されます。
SUM ルールの使用
このケースの例は、「レーシング トラック A、レーストラック B、またはレーストラック F で 1,000 累積マイルをドライブする」です。この実績の構成を次の表に示します。
フィールド | 値 |
---|---|
Rule #1 Name | トラック A、B、F のいずれかで 1000 マイル以上走る |
統計情報 | MilesDriven.TrackId.A MilesDriven.TrackId.B MilesDriven.TrackId.F |
Action | SUM |
Threshold | 1,000 |
この実績ルールでは SUM ルール アクションを使用するため、上記の統計インスタンスの総計がしきい値を満たすと実績がロック解除されます。 たとえば、MilesDriven.TrackId.A is 900
、MilesDriven.TrackId.B is 115
、MilesDriven.TrackId.F is 0
の場合、このユーザーの 3 つの統計の総計がしきい値を上回ったため、実績がロック解除されます。
この目標またはあの目標を達成する
サポートされていない実績シナリオは、いくつかの異なる目標のいずれかを達成することをユーザーに要求することです。 例: "トラック A で 3 分未満でレースを完走するか、またはトラック B で 1000 マイル走る"。
この実績シナリオは、現在の実績ロジックではサポートされていません。 これは、複数 (目標ごとに 1 つずつ) の実績ルールを定義して実現することはできません。 実績に対する複数のルールは論理 AND として機能するため、実績をロック解除するには、各ルールが満たされる必要があります。 "トラック A で 3 分未満でレースを完走する" という 1 つの実績ルールと、"トラック B で 1000 マイル走る" という 2 つ目の実績ルールを使用すると、ユーザーがそれらのルールの両方を満たした場合にのみ実績がロック解除されることになります。
繰り返しのアクション
ユーザーがアクションを 1 回以上繰り返す必要がある実績を定義するには、このパターンを使用します。
例 1: マルチプレイヤー マッチに 50 回勝つ
フィールド | 値 |
---|---|
Rule Name | マルチプレイヤー マッチに 50 回勝つ |
統計情報 | MatchesCompleted.Result.1.Mode.Multiplayer |
Action | SUM |
Threshold | 50 |
例 2: ビデオを 10 個アップロードし、ビデオを 100 個レーティングする
フィールド | 値 |
---|---|
Rule #1 Name | ビデオを 10 個アップロードする |
統計情報 | VideosUploaded |
Action | SUM |
Threshold | 10 |
Rule #2 Name | ビデオを 100 個レーティングする |
統計情報 | VideosRated |
Action | SUM |
Threshold | 100 |
ユーザー統計情報の設計の詳細については、「累積値のカウンターの使用」を参照してください。
アクションのコレクション
目的: Y 個の項目のうち X 個を見つけます
ユーザーが特定のセット内のすべてのメンバー (またはメンバーのサブセット) を操作する必要がある実績を定義するには、このパターンを使用します。
例 1: ハードコア難易度のすべてのレベルを完了する
フィールド | 値 |
---|---|
Rule #1 Name | ハードコアのレベル 1 を完了する |
統計情報 | LevelCompleted.Mode.3.LevelId.1 |
Action | SUM |
Threshold | 1 |
Rule #2 Name | ハードコアのレベル 2 を完了する |
統計情報 | LevelCompleted.Mode.3.LevelId.2 |
Action | SUM |
Threshold | 1 |
Rule #3 Name | ハードコアのレベル 3 を完了する |
統計情報 | LevelCompleted.Mode.3.LevelId.3 |
Action | SUM |
Threshold | 1 |
例 2: いずれかのヨーロッパ トラックを 3 分未満で完走する
この実績は、個別のトラックにおける最短の完走時間、またはトラックのセットのうち、完走時間の最高記録を使用して定義できます。 次のいずれかの方法を使用します。ただし、両方を使用することはできません。
方法 1
フィールド | 値 |
---|---|
Rule Name | いずれかのヨーロッパ トラックを 3 分未満で完走する |
統計情報 | LastFinishTimeInSeconds.TrackId.21 LastFinishTimeInSeconds.TrackId.22 LastFinishTimeInSeconds.TrackId.23 LastFinishTimeInSeconds.TrackId.24 LastFinishTimeInSeconds.TrackId.25 LastFinishTimeInSeconds.TrackId.26 |
Action | MIN |
Threshold | 180 |
方法 2
フィールド | 値 |
---|---|
Rule Name | いずれかのヨーロッパ トラックを 3 分未満で完走する |
統計情報 | BestFinishTimeInSeconds.TrackSet.Europe |
Action | MIN |
Threshold | 180 |
関連するユーザー統計情報を設計するには、「最新情報の追跡」と「パーソナル ベストの追跡」をご覧ください。
自己ベスト
ユーザーが 1 回のセッションまたは通しプレイでターゲットを超える必要がある実績を定義するには、このパターンを使用します。 この実績は、複数の実行など、集計を通して達成することはできません。
例 1: 5 回以下の死亡でゲームを完了する
フィールド | 値 |
---|---|
Rule Name | 5 回以下の死亡でゲームを完了する |
統計情報 | PlaythroughDeaths.GameResultId.1 |
Action | MIN |
Threshold | 5 |
例 2: Lebron James として 50 ポイント以上のスコアでマッチに勝利する
フィールド | 値 |
---|---|
Rule Name | マッチに勝つ AND Lebron とプレイする AND 50 ポイント以上スコアする |
統計情報 | BestScore.PlayerId.3056.MatchResultId.1 |
Action | SUM |
Threshold | 10 |
条件を満たすことを示すバイナリ値。
Xbox サービス統計では簡単に追跡できない複雑なアクティビティをユーザーが行う必要がある実績、またはその他の Xbox サービス実績構成オプションではサポートされない実績を定義するには、このパターンを使用します。
例: ショットガンで 90 キルまたはスナイパーで 10 キルを獲得する
フィールド | 値 |
---|---|
Rule Name | 90 ショットガン キル OR 10 スナイパー キル |
統計情報 | AchievementUnlocked.UnlockId.9010 |
Action | SUM |
Threshold | 1 |
Important
この実績構成では、ショットガン キル数またはスナイパー キル数は追跡されません。 これら 2 つの条件のいずれかが満たされた事実を記録するだけです。 この構成は、データ プラットフォームではサポートされないため、タイトルで設定する必要があります。