Skip to main content
ロールバックを使うと、プレイヤーのゲームセーブを以前の状態に復元できます。プレイヤーのセーブが破損した場合、タイトル更新でセーブデータを損傷するバグが発生した場合、またはプレイヤーが競合解決の判断を元に戻したい場合に使用してください。

ロールバックの仕組み

Game Saves はプレイヤーのセーブデータのファイナライズされたバージョンを追跡します。ロールバックをトリガーすると、サービスは復元しようとしている以前の状態と内容が同一な 新しいバージョン を作成します。ロールバックは元のバージョン履歴を保持します。以前のバージョンを削除したり上書きしたりしません。ロールバック後に同期する他のデバイスからは、通常の更新として扱われます。 ロールバックには 2 つのタイプがあります。それぞれ PFGameSaveFilesAddUserWithUiAsync にオプションフラグを渡してトリガーします: 適格な復元ポイントが存在しない場合、両方のオプションはデフォルトの動作 (現在の最新バージョンを同期する) にフォールバックします。

各ロールバックタイプの使用時機

last known good へのロールバック

最新のアップロードが不良であると疑われる場合は RollbackToLastKnownGood を使用してください。よくあるトリガーは以下のとおりです:
  • セーブのダウンロード後のロード失敗または整合性チェック失敗。
  • セーブ操作中または直後のクラッシュ。
  • 状態が破損または退行したというプレイヤー報告。
サービスは、どのバージョンが「known good」であるかを自動的に追跡します。明示的にマークする必要はありません。あるバージョンを正常にロードし、後で新しいアップロードによって置き換えられると、そのバージョンは known good になります。

last conflict へのロールバック

競合解決の際にプレイヤーが誤った選択をした場合は RollbackToLastConflict を使用してください。Game Saves の競合 で説明されているように、両方の解決選択肢は破棄されたブランチを保持します。このロールバックオプションは、その保持されたブランチを復元します。

API の呼び出し

適切なオプションを PFGameSaveFilesAddUserWithUiAsync に渡してロールバックをトリガーします。この関数はユーザーごとに 1 回しか呼び出せないため、既に追加済みのユーザーに対してロールバックするには、まず PFGameSaveFilesUninitializeAsync を呼び出し、その完了を待ちます。
代わりに直近の競合で敗れた側にロールバックするには、オプションフラグを置き換えます:

フォールバック動作

要求されたロールバックタイプに対して適格な復元ポイントが存在しない場合、この呼び出しは PFGameSaveFilesAddUserOptions::None を渡した場合と同じように動作します。現在の最新バージョンが通常どおり同期されます。ロールバックが発生したかどうかを確認するには、呼び出し完了後に同期されたファイルを確認してください。

タイトル構成

2 つの構成フラグを通じて、クライアント起点のロールバックを制限できます。いずれかのフラグを有効にすると、サポートツールと Game Manager のみがその種類のロールバックを実行できます。 これらのフラグは Game Manager の Progression > Game Saves の下で設定します。

エラー処理

考慮事項

  • ロールバックは新しいバージョンを作成します。 履歴は消去しません。プレイヤーのバージョンシーケンスは前に進み続けます。
  • サービスは known good を自動的に追跡します。 正常なロードと後続の置換のサイクルに基づいて、どのバージョンが該当するかを決定します。ゲーム側で明示的にバージョンをマークする必要はありません。
  • add-user 呼び出しごとに 1 回のロールバック。 PFGameSaveFilesAddUserWithUiAsync はユーザーごとに 1 回しか呼び出せないため、2 回目のロールバックをトリガーするには、まず PFGameSaveFilesUninitializeAsync を呼び出す必要があります。
  • UI コールバックも発火します。 ロールバックは通常の add-user 呼び出しと同じ同期フローを通過します。API を呼び出す前に UI コールバック を登録してください。
  • 必要に応じてロールバックを制限してください。 ゲームがサーバーサイドまたはサポートツールを通じて復旧を処理する場合は、タイトル構成フラグを使用してクライアントロールバックを無効にし、プレイヤーが誤って進行状況を戻すのを防ぎます。
  • ロールバックはすべてのプラットフォームで動作します。 この API にはプラットフォーム固有のガードはありません。
最終更新日 2026年8月25日