書類 計算する
Steamクラウド (Steamworks ドキュメント)

Steamクラウド (Steamworks ドキュメント)

概略Steamクラウドは、ゲームからファイルをSteamのサーバーに自動で保存し、プレイヤーはSteamにログインすればどのコンピューターからでもセーブゲームにアクセスできます。統合のレベルファイルパス構成はSteamworks Webサイト上にある必要があります。 または、ゲームがSteamクラウ

Related articles

【VPNに接続できない時の解決方法】9つの方法をわかりやすく解説 【Terraria】CalamityModをRogue武器で攻略するためのガイド Part7 【24年11月最新】中国で使えるVPNおすすめ最強決定戦!規制強化を回避し快適にネット接続ができる方法 Amazon Fire StickとFire TVでVPNを設定する方法 2024年の振り返りと2025年の抱負

概略

Steamクラウドは、ゲームからファイルをSteamのサーバーに自動で保存し、プレイヤーはSteamにログインすればどのコンピューターからでもセーブゲームにアクセスできます。

統合のレベル

ファイルパス構成はSteamworks Webサイト上にある必要があります。 または、ゲームがSteamクラウドへのファイルの列挙、読み取り、削除、書き込みを行うには、ゲーム コード内から SteamworksへのAPI 呼び出しが必要です。

Steamクラウドの概要

Steamクラウドは、ゲームに簡単で透過性のあるリモートファイルストレージシステムを提供します。 自動クラウド設定で指定されたファイルや、クラウドAPIを使用してディスクに書き込まれた(作成/変更/削除された)ファイルは、ゲーム終了後に自動的にSteamサーバーに複製されます。

ユーザーが異なるコンピューターからゲームにアクセスする場合には、ゲームの起動前に新しいコンピューターにファイルが自動的にダウンロードされます。 ゲームは、クラウドAPIを通してファイルを読み込むか、通常通りディスクから直接読み込みます。 ビデオ設定等、マシン固有の構成は避けてください。

Steamクライアントは確実に、ゲームにアクセスしたすべてのコンピューター上でのファイルの同期が維持されるようにします。

Steamクライアントの「設定」メニューの「クラウド」タブで「Steamクラウドを有効化して、サポートするアプリ情報を同期化する」のチェックを外すことで、ユーザーはクラウドとの同期をグローバルに解除できます。

ユーザーは、各ゲームのプロパティから、ゲームごとにクラウド同期を無効にすることもできます。

ベストプラクティスと備考

Steamは、ゲームセッションの前後にユーザーのSteamクラウドファイルと同期することを覚えておくことは重要です。 セッション中に変更されたマッチメイキングファイルは、終了後すぐにクラウドストレージにアップロードされます。 ゲームが非常に大きなファイルまたは多くの小さなファイルをSteamクラウドに書き込む場合、ユーザーのインターネット帯域幅に顕著な影響を与え、Steamのシャットダウンやゲームの再起動に遅延を発生させる可能性があります。

一般的な規則として、小さいファイルの方が適切に機能します。 ユーザーの保存状態を異なるカテゴリー(頻繁に変更される場合と頻繁に変更されない場合)に分割できる場合は、カテゴリー毎に個別のファイルを使用することが推奨されます。 こうすれば、変更のない状態は、セッションごとに再アップロードされません。

ファイル サイズ の 制限

Steamクラウドのファイルサイズの絶対制限は、時間の経過とともに変化する可能性があります。 現在の制限としきい値は次のとおりです:

サイズ 制限
100 MB ISteamRemoteStorage::FileWriteまたは
ISteamRemoteStorage::FileWriteStreamWriteChunkの呼び出しの最大サイズ
256 MB ユーザーの場所に最適ではないストレージエンドポイントが選択され、アップロード/ダウンロードのパフォーマンスに悪影響を及ぼす可能性があります

ファイルパスの保存

保存ファイルを書き込む場所を決定するときは、パスが現在のSteamユーザーに対して一意であることを確認してください。 必要に応じて、

ISteamUser::GetSteamID

を介してユーザーの一意のSteamIDを取得できます。 そこから、GetAccountID()を使って、accountIDにアクセスすることで、保存パスを作成する際の一意の変数を取得できます。

クロスプラットフォームセーブ

ゲーム が 複数 の プラットフォーム を サポート し て いる 、 また は 将来 的 に サポート する 予定 が ある 場合 は 、 ゲーム に steam クラウド を 設定 する 際 に 以下 を 考慮 し て ください 。

ISteamRemoteStorage

インターフェイスを介して直接ファイルを読み書きする場合は、

ISteamRemoteStorage::SetSyncPlatforms

を介してプラットフォームの同期を制御できます。 新しいファイルは、デフォルトで

すべての

プラットフォームに同期します。

steam 自動 クラウド

を使用する場合、いくつか重要な注意点があります。 まず、新しいファイルはデフォルトで、関連付けられた自動クラウドルートパスの

OS

設定

のみ

に同期します。 これは、OSごとに個別のルートを設定すると、すべてのファイルがプラットフォームごとにパーティション化され、クロスプラットフォームでの保存が機能しないことを意味します。

クロスプラットフォームでの保存を有効にするには、単一のルートパス(主にWindows用)を定義してから、他のサポートされているプラットフォーム用に

ルートオーバーライド

を作成する必要があります。 指定のルートパスと一致し、プラットフォームルートオーバーライドも設定されているファイルは、元のルートとすべてのオーバーライドで指定された全プラットフォームに同期します。 詳細 は 、

steam 自動 クラウド

のドキュメントを 参照 し て ください 。

初期 セットアップ

Steamクラウドの設定には、Steamworksのアプリ管理パネルから

Steamクラウド設定

ページ を 開く 、

ユーザー 毎 の バイト クォータ

ユーザーが持てるファイル数

を 決定 する 必要 is あり が あり ます 。

この割り当てはクラウド対応の各ゲームにおいて、ユーザー毎に適用されます。 ゲームタイトルに適した値を設定することを推奨しています。

注:

ページの下部の「保存」をクリックし、更新された設定を忘れずに公開してください。 公開後に、ゲームを所有するユーザーのSteamクライアント上に、クラウドアイコンが表示されるようになります。

ゲームがすでにリリース済みの場合は、

クラウドサポートをデベロッパーにのみ有効化

と いう チェック ボックス に マーク を 入れる こと が でき ます 。 ここ に チェック が 付く て いる 場合 、 この タイトル の 「 developer COMP 」 ライセンス を 所有 する steam アカウント のみ に クラウド の アイコン が 表示 さ れ 、 steam クラウド を 使用 する こと が でき ます 。 これ is 便利 は 、 ユーザー の 体験 を 損なう こと なく steam クラウド の 統合 を 安全 に テスト する 際 に 便利 です 。 リリース 前 の ゲーム の 場合 は ゲーム の 所有 者 が い ない の で 、 その 特定 の APP ID に 対する て クラウド ストレージ を 見る られ たり 、 アクセス さ れる こと が ない ため 、 チェック を 付ける て も 何 の 影響 is あり も あり ませ ん 。

共有クラウドApp ID

フィールドに入力することで、2つのApp ID間でクラウドストレージスペースを共有することができます。 これはゲームの体験版と製品版の間でのセーブデータを共有するために最もよく使われます。 値が

0

の場合、この機能は無効です。

steam クラウド API と steam 自動 クラウド

Steam is 提供 は 、 steam クラウド の 利用 に 2 つ の 異なる 方法 を 提供 し て い ます 。 2 つ の 方法 の 違い に つい て 理解 し 、 アプリケーション に とっ て 最適 な 方法 を 決定 し て ください 。

1つ目の方法は、SteamクラウドAPI です。

クラウド API で は 、 ゲーム に steam クラウド を 直接 実装 する ため の 一連 の 関数 is 用意 が 用意 さ れ て い ます 。 クラウド API is 提供 は 個々 の steam ユーザー ファイル を 互い に 分離 し 、 steam クラウド 上 で の 高度 な 制御 を 提供 し ます 。

steam クラウド API は

ISteamRemoteStorage

API インターフェイス で 公開 さ れ て おり 、

Steamworks APIのサンプルアプリケーション(SpaceWar)

で使用例を確認できます。

2 つ 目 の 方法 は

steam 自動 クラウド

です。

steam 自動 クラウド is 用 は 、 steam クラウド API を 実装 し ない ゲーム 用 です 。 これ は 、 迅速 かつ 簡単 な 方法 で クラウド を 提供 し ます が 、 steam クラウド API の 柔軟 性 に は 劣る ます 。

例えば 、 クラウド 内 に 保存 する セーブ ファイル 選択 さ せる 等 、 steam クラウド と の より 深い 統合 を 希望 する 場合 は 、 クラウド API を 使用 し て ください 。 それ 以外 の 場合 は 、 steam 自動 クラウド を 使用 でき ます 。

steam 自動 クラウド

steam 自動 クラウドは、SteamクラウドAPIの代替機能で、コードを書いたり、ゲームに手を加えることなく、アプリでSteamクラウドを使用できるようにします。 必要な作業は、クラウドに保存するファイルのグループを指定するだけです。 Steamは、アプリケーションの起動時と終了時に、これらのファイルグループを自動的に同期します。 ビデオ品質など、マシン固有の構成は避けてください。

注:steam_autocloud.vdfファイルはSteamworksクラウドパスによって指定された場所にそれぞれ作成されます。 このファイルはSteamが使用し、ゲームは無視することができます。

セットアップ

初期 セットアップ

完了 後 に 、

Steamクラウド設定

ページ内のsteam 自動 クラウドの設定セクションが使えるようになります。

ルートパスはSteamクラウドに保存されるファイルのグループを記述します。 各ルートパスには、単一のファイル、またサブフォルダー内のすべてのファイルといった、広範囲な指定も可能です。 同期するファイルのグループごとに、新しいパスを使用してください。

ルートパスは5つの部分で構成されています:

  1. ルート

    これはセーブゲームが通常保存される、所定のパスのリストです。

    ルート サポート対象のOS 所定のパス
    アプリのインストールディレクトリ すべて [ steam install ] \ steamapps \ Common \ [ Game Folder ] \
    SteamCloudDocuments すべて プラットフォーム特有のパス。例えばLinuxでは ~/.SteamCloud/[username]/[Game Folder]/
    WinMyDocuments Windows %USERPROFILE%\My Documents\
    winappdatalocal Windows %USERPROFILE%\AppData\Local\
    winappdatalocalLow Windows %USERPROFILE%\AppData\LocalLow\
    WinAppDataRoaming Windows % userprofile % \ AppData \ roaming \
    winsavedgames Windows %USERPROFILE%\Saved Games\
    MacHome macOS ~/
    MacAppSupport macOS ~/Library/Application Support/
    MacDocuments macOS ~/Documents/
    LinuxHome Linux ~/
    LinuxXdgDataHome Linux $XDG\_DATA\_HOME/

    Windows % userprofile % パス に 関する 注意 点 : 上述 の 対応 する パス is ロケーション は デフォルト の ロケーション です 。 ユーザー is あり は 、 Windows インストレーション を 設定 可能 な ため 、 これ ら の フォルダー is あり が 必ず しも % userprofile % 内 で は なく 別 の 場所 に ある 場合 is あり が あり ます 。 デフォルト で も 、 カスタマイズ さ れ た 場所 に あっ て も 、 Steam is 探し は 必須 の Windows API を 使う て これ ら の フォルダー の 現在 の 場所 を 探す ます 。

  2. サブ ディレクトリ

    ルートに対するクラウド化されたファイルへのサブ ディレクトリパスです。 サブ ディレクトリがない場合は、「.」を入力してください。

    自動 クラウド 特別 パス 値
    自動 クラウド で は 、サブ ディレクトリのパスに、一意のSteamユーザーIDを使用できます。 これにより、コンピューター上のSteamユーザー毎に、別々にファイルが保存できるようになります。 ゲーム内でISteamUser::GetSteamIDを使うと、現在のユーザーのSteamIDまたはAccountIDを保存、読み込みできるようになります。

    • {64BitSteamID}-Steamパスにユーザーの64bit Steam IDを挿入する場合は、この変数を使用。 64 bit Steam IDの例 : 76561198027391269
    • {Steam3AccountID}-SteamパスにユーザーのSteam3アカウントIDを挿入する場合は、この変数を使用。 アカウントIDの例:67125541

    例 : SavesDir/{64BitSteamID}

  3. パターン

    一致するファイルマスクのパターン。 * をワイルドカードとして使用できます。 ディレクトリ内の全ファイルが必要な場合には * を使用してください。

    例 : *.sav

  4. OS

    ファイルの同期元・先となるオペレーティングシステムを設定します。 これは、ファイルがOS固有である場合にのみ必要です。(そうでないことが望ましいですが!)

  5. 再帰検索

    一致するファイルの検索時にサブ ディレクトリを含めます。 これはSteamユーザーの名前やIDではない、非確定的なの名前のサブ ディレクトリに有用です。 Steam IDを使用している場合には、サブ ディレクトリフィールド内に後述の特別パス値を使用することを強く推奨します。

ルートオーバーライド

アプリケーション is 指定 が クロス プラットフォーム で 、 OS ごと に 異なる ディレクトリ を 必要 と する 場合 は 、 ルート オーバーライド 機能 を 使用 し て 、 上記 で 設定 し た ルートパス の オーバーライド を 指定 でき ます 。

上記で指定したルートパスは、別のOS上でそれに相当する別のパスにオーバーライド可能です。 ルートオーバーライドを使用する場合、ルートOSドロップダウン内で「すべてのOS」を指定してください。

ルート オーバーライド is 構成 は 5 つ の 部分 で 構成 さ れ て い ます 。

  1. オリジナル ルート

    これ is 相当 は 上記 で 設定 し た ルート の 1 つ に 相当 し ます 。

  2. OS

    オーバーライドを適用するオペレーティングシステムです。

  3. 新しいルート

    指定したOS上で、オリジナル ルートがマップする新しい位置です。

  4. パスの追加/置き換え

    これにより、オプションとして、新しいルートとオリジナルのサブ ディレクトリの間に挿入されるサブ ディレクトリパスを追加することができます。

  5. パスの置き換え

    「パスを置き換え」を有効にすると、「パスの追加/置き換え」で指定されたパスで、オリジナルのサブ ディレクトリをすべて置き換えます。

例:Unityアプリケーションに自動クラウドを設定する

以下は、OS毎に

Application . persistentdatapath

プロパティ値が異なる場合にUnityで自動クラウドを設定するための例です。 Windows版はUnity内でDefaultCompanyに設定された企業とAutocloudSampleと呼ばれるプロジェクトのルートパスとして設定されます。 macOS、Linux/SteamOSでは、

Application . persistentdatapath

からの代替パスを「パスの追加/置き換え」フィールド内に設定して「パスの置き換え」を有効にします。

これらを設定すると、プレビュー内のサンプルのように、自動クラウドファイルが3つのフォルダー間で同期されます。

Steamクラウド (Steamworks ドキュメント)

リリース前のテスト

リリース済みのゲームにsteam 自動 クラウドを追加する予定で、

初期 セットアップ

中 に 開発 者 専用 モード を 有効 に し た 場合 は 、 いく つ か の 手順 を 完了 し て 機能 を テスト する 必要 is あり が あり ます 。

  1. テスト する アプリ を 所有 する アカウント で Steam に ログイン し ます 。
  2. ブラウザー でsteam://open/console を開いて、Steamコンソールを開きます。
  3. コンソールにtestappcloudpaths <AppId>とテストするアプリのApp IDを入力します。 例:testappcloudpaths 480
  4. コンソールにset_spew_level 4 4と入力します。
  5. Steamからアプリを起動します。
  6. コンソールでアクティビティをチェックしてください。自動クラウドパスに既存のファイルがある場合には、アップロードされることを確認してください。 ファイルが無ければ、アプリ用のいくつかのファイルが保存され、アプリを閉じると同期を開始します。
  7. 別のPCから上記ステップを繰り返して、steam 自動 クラウドからファイルがダウンロードされるかを確認します。
  8. ゲームがサポートする全てのオペレーティングシステムでテストしてください。
  9. テスト を 終了 する に はtestappcloudpaths 0set_spew_level 0 0を設定してください。 コンソールタブを取り除くには Steamクライアントを再起動してください。

テスト 完了 後 is 公開 は 、 忘れる ず に 開発 者 専用 モード を 無効 に し て 、 変更 を 公開 し て ください 。

動的 な クラウド 同期

Steamクラウドは動的同期をサポートしています。クラウド内での変更は、アプリケーションのセッション中にローカルマシンにダウンロードできます。

ここでの例はSteam Deck上で一時中断されたゲームセッションです。 動的クラウド同期をサポートしているというマーク付きのアプリでは、Steamは一時中断時にファイルをSteamクラウドに同期します。 その後、ユーザーはゲームを別のデバイスで実行できるようになり、起動時にSteam Deckでのセッションからのアップデートを受け取ります。 終了時、これらの変更はSteamクラウドにアップロードされます。 最終的に、Steam Deckデバイスが起動されると、Steamはデバイスに変更を同期し、ローカルファイルが変更されたという通知をアプリケーションにポストします。 アプリケーションはこれらの変更を反復処理し、適切なアクションをとります。 例えば、ゲームは単純にディスクから進行をアップデートでき、ユーザーが他のデバイスで終了したポイントからゲームに復帰可能となります。

この 機能 が 存在 する 理由 および 使用 法 に つい て の 詳細 は 、

お知らせ

を 参照 し て ください 。

この機能は、ファイル管理に

ISteamRemoteStorage

APIか、自動クラウドを使用するかに関わらず、アプリケーションをサポートします。

詳細 は 、

ISteamRemoteStorage

ドキュメントの特に、

ISteamRemoteStorage::RemoteStorageLocalFileChange_t

isteamremotestorage : : getlocalfilechangecount

、および

ISteamRemoteStorage::GetLocalFileChange

を 参照 し て ください 。

また、

isteamremotestorage : : beginfilewritebatch

isteamremotestorage : : endfilewritebatch

も 参照 し て ください 。 これ ら の ラッパー を 使用 する こと で 、 ユーザー が システム の 一時 中断 を 開始 し た 時 に 、 steam クラウド に 安全 に 同期 する ため の 役立つ ヒント is 提供 が Steam に 提供 さ れ ます 。

リリース前のテスト

ローカル で 動的 クラウド 同期 を 有効 に し て 、 アプリ の ビルド を テスト する こと が でき ます 。 すべて の ユーザー に 対する て 動的 クラウド 同期 を 有効 に する と 、 新しい API メソッド や コール バック を 処理 し ない ビルド を 実行 する 際 に データ が 失う れる 可能 性 が ある ため 、 この 機能 is 推奨 は すでに リリース 済み の ゲーム に 推奨 さ れ ます 。

PCからローカルでテストを行う方法:

  1. テスト する アプリ を 所有 する アカウント で Steam に ログイン し ます 。
  2. ブラウザー でsteam://open/consoleを開いて、Steamコンソールを開きます。 (コマンドラインのsteam - consoleを使用してSteamを実行し、コンソールセクションに直接移動することもできます)。
  3. コンソールに@cloud_testdynamicsyncapp <AppId>と、テストするアプリのApp IDを入力します。 例:@cloud_testdynamicsyncapp 480
  4. Steamからアプリを起動します。
  5. ゲーム を 目的 の ポイント まで 進める ます 。
  6. Steamコンソールで、prepare_for_suspendと入力します。 Steamは、ゲームプロセスを一時停止し、変更されたファイルをSteamクラウドにアップロードします。
  7. オプション:別のデバイスでゲームをプレイして、さらに進んだ状況を作り出してから終了し、Steamクライアントに進行状況をSteamクラウドにアップロードさせます。
  8. 元のデバイスに戻り、Steamコンソールでresume_suspended_gamesと入力します。 これにより、Steamクラウドから必要なファイルが同期され、ゲームに関連するAPI呼び出しが送信され、その後ゲームプロセスの一時停止が解除されます。

Steam Deckからローカルでテストを行う方法:

  1. Steam DeckをDevkitに接続します。
  2. CEF コンソール を 使用 する に は 、 こちら を 参照 し て ください 。
  3. JSコンソールで、SteamClient.Console.ExecCommand(“@cloud_testdynamicsyncapp <AppId>”)と入力し、テストを有効にします。 その後、SteamClient.Console.ExecCommand(“@cloud_testdynamicsyncapp 0”)と入力すると、テストを無効にできます。

デバッグ

まず、SteamworksパートナーWebサイト上で確実に変更を公開し、その後最大10分間待つか、Steamクライアントを再起動して公開された変更を受け取ってください。

Steamクラウドで問題が発生した場合は、

%Steam Install%\logs\cloud_log.txt

内のログファイルを確認してください。

追加 情報 は

steamworks API の デバッグ

を 参照 し て ください 。