INDIE INDEX

レベル:実践

Steam のクラウドセーブを設定する手順|Auto-Cloud・容量・試し方

公開 2026-10-20更新 2026-10-20Steam(Steamworks Partner Program / Steam Direct)

Steam クラウドの使い方は、Steam クラウド API(`ISteamRemoteStorage`)と Steam 自動クラウドの2つです。設定には、Steamworks の Steam クラウド設定ページで、ユーザー毎のバイトクォータとユーザーが持てるファイル数を決める必要があります。

このページの目次
  1. 先に決める容量とファイルの数
  2. Steam 自動クラウドの設定
  3. Steam クラウド API で書く
  4. 公開と試し方
  5. 情報源

先に決める容量とファイルの数

Steam クラウドの設定には、Steamworks のアプリ管理パネルから「Steamクラウド設定」ページを開き、「ユーザー毎のバイトクォータ」と「ユーザーが持てるファイル数」を決定する必要があります。この割り当ては、クラウド対応の各ゲームにおいて、ユーザー毎に適用されます。

「共有クラウドApp ID」のフィールドに入力すると、2つの App ID の間でクラウドストレージスペースを共有できます。値が 0 の場合、この機能は無効です。

Steam で選べる機能の全体は、Steam で実装が要る仕様にあります。

Steam 自動クラウドの設定

Steam 自動クラウドは、Steam クラウド API の代替機能で、コードを書いたり、ゲームに手を加えたりすることなく、アプリで Steam クラウドを使えるようにします。必要な作業は、クラウドに保存するファイルのグループを指定するだけです。ビデオ設定など、マシン固有の構成は避けます。

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

「先に決める容量とファイルの数」の初期セットアップが完了すると、Steam クラウド設定ページ内の Steam 自動クラウドの設定セクションが使えるようになります。ルートパスは、Steam クラウドに保存されるファイルのグループを記述します。各ルートパスには、単一のファイル、またはサブフォルダー内のすべてのファイルといった、広範囲な指定もできます。

ルートパスの項目

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

  • ルート:セーブゲームが通常保存される、所定のパスのリストです。
  • サブディレクトリ:ルートに対するクラウド化されたファイルへのサブディレクトリパスです。サブディレクトリがない場合は、「.」を入力します。
  • パターン:一致するファイルマスクのパターンです。* をワイルドカードとして使えます。ディレクトリ内の全ファイルが必要な場合には * を使います。例:*.sav
  • OS:ファイルの同期元・先となるオペレーティングシステムを設定します。ファイルが OS 固有である場合にのみ必要です。
  • 再帰検索:一致するファイルの検索時にサブディレクトリを含めます。Steam ユーザーの名前や ID ではない、非確定的な名前のサブディレクトリに使えます。

ルートとして選べるものは、次のとおりです。

ルート サポート対象の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% 内ではなく別の場所にある場合があります。デフォルトでも、カスタマイズされた場所にあっても、Steam は必須の Windows API を使ってこれらのフォルダーの現在の場所を探します。

サブディレクトリのパスには、一意の Steam ユーザー ID を使えます。これにより、コンピューター上の Steam ユーザー毎に、別々にファイルが保存できるようになります。{64BitSteamID} は、Steam パスにユーザーの64bit Steam ID を挿入する場合に使う変数です(例:76561198027391269)。{Steam3AccountID} は、Steam パスにユーザーの Steam3 アカウント ID を挿入する場合に使う変数です(例:67125541)。サブディレクトリの例は SavesDir/{64BitSteamID} です。

ルートオーバーライド

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

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

  • オリジナルルート:設定したルートの1つに相当します。
  • OS:オーバーライドを適用するオペレーティングシステムです。
  • 新しいルート:指定した OS 上で、オリジナルルートがマップする新しい位置です。
  • パスの追加/置き換え:オプションとして、新しいルートとオリジナルのサブディレクトリの間に挿入されるサブディレクトリパスを追加できます。
  • パスの置き換え:「パスを置き換え」を有効にすると、「パスの追加/置き換え」で指定されたパスで、オリジナルのサブディレクトリをすべて置き換えます。

Steam 自動クラウドを使用する場合、新しいファイルはデフォルトで、関連付けられた自動クラウドのルートパスの OS 設定のみに同期します。OS ごとに個別のルートを設定すると、すべてのファイルがプラットフォームごとにパーティション化され、クロスプラットフォームでの保存が機能しません。クロスプラットフォームでの保存を有効にするには、単一のルートパス(主に Windows 用)を定義してから、他のサポートされているプラットフォーム用にルートオーバーライドを作成する必要があります。指定のルートパスと一致し、プラットフォームルートオーバーライドも設定されているファイルは、元のルートとすべてのオーバーライドで指定された全プラットフォームに同期します。

Steam クラウド API で書く

Steam クラウド API は、ISteamRemoteStorage インターフェイスで公開されています。ゲームが Steam クラウドへのファイルの列挙、読み取り、削除、書き込みを行うには、ゲームコード内から Steamworks への API 呼び出しが必要です。

ファイルサイズの絶対制限は、時間の経過とともに変化する可能性があり、現在は、FileWrite または FileWriteStreamWriteChunk の1回の呼び出しで書き込めるサイズの上限が、k_unMaxCloudFileChunkSize で定義された100MiBです。

書き込みと削除に使う関数には、たとえば次のものがあります。

  • FileWrite:新しくファイルを作成し、ファイルにバイトを書き込んでから、ファイルを閉じます。ターゲットファイルがすでに存在する場合には、上書きされます。同期呼び出しであるため、ディスク IO のスレッドの呼び出しスレッドをブロックし、Steam API もブロックします。その結果、アプリケーション内の他のスレッドがブロックされる場合があります。
  • FileWriteAsync:新しいファイルを作成し、未加工のバイトデータを非同期で Steam クラウドに書き込み、ファイルを閉じます。ターゲットファイルがすでに存在する場合には、上書きされます。
  • FileWriteStreamOpen・FileWriteStreamWriteChunk・FileWriteStreamClose:ファイル出力ストリームを作成してデータをチャンクとして Steam クラウドファイルに書き込み、閉じます。ターゲットファイルがすでに存在する場合は、FileWriteStreamClose が呼び出されるまで上書きされません。
  • FileDelete:ローカルディスクからファイルを削除し、クラウドにその削除を伝達します。
  • FileForget:リモートストレージからファイルを削除しますが、ローカルディスクには残して API からアクセス可能なままにします。ファイルが削除された後や忘れられた後は、FileWrite を呼び出すと、クラウドで再同期されます。

FileWrite は、現在のユーザーの Steam クラウドストレージクォータを超えた場合に false を返します。その場合は、容量が不足しているか、ファイル数が多すぎる可能性があります。

同期するプラットフォームと書き込みのまとまり

SetSyncPlatforms は、ファイルを同期するオペレーティングシステムを指定できる関数です。プラットフォーム間で互換性のないデータがあるマルチプルプラットフォームゲームの場合に使います。ファイルは最初の作成時にデフォルトで k_ERemoteStoragePlatformAll となり、すべてのプラットフォームに同期します。ビットごとの OR 演算子「|」を使用して複数のプラットフォームを指定できます。

BeginFileWriteBatch と EndFileWriteBatch は、あわせて使い、1つの状態変更として扱われるべきローカルファイルの読み込み/削除をラップします。例えば、ゲームの進行状況の保存に savegame1.dat と maxprogress.dat の両方を更新する必要がある場合、これらの処理を BeginFileWriteBatch と EndFileWriteBatch の呼び出しでラップします。これらの関数は Steam のアプリのクラウドファイル管理を助けるヒントを提供します。使用は任意で、ISteamRemoteStorage API を使用して書き込んだ場合にも、(自動クラウドによって)直接ローカルディスクへ書き込んだ場合にも使えます。

公開と試し方

保存と公開

設定を変えたあとは、Steam クラウド設定ページの下部の「保存」をクリックし、更新された設定を公開します。公開後に、ゲームを所有するユーザーの Steam クライアント上に、クラウドアイコンが表示されるようになります。公開した変更は、最大10分間待つか、Steam クライアントを再起動して受け取ります。

開発者だけの形で試す

ゲームがすでにリリース済みの場合は、「クラウドサポートを開発者にのみ有効化」というチェックボックスにマークを入れることができます。チェックが付いている場合、このタイトルの「Developer Comp」ライセンスを所有する Steam アカウントのみにクラウドのアイコンが表示され、Steam クラウドを使用できます。リリース前のゲームにはゲームの所有者がいないので、その App ID のクラウドストレージを見られたりアクセスされたりすることがなく、チェックを付けても何の影響もありません。

リリース済みのゲームに Steam 自動クラウドを追加する予定で、初期セットアップ中に開発者専用モードを有効にした場合は、いくつかの手順を完了して機能をテストする必要があります。手順は次のとおりです。

  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 自動クラウドからファイルがダウンロードされるかを確認します。

ゲームがサポートするすべてのオペレーティングシステムでテストします。testappcloudpaths は、すべてのユーザーに対して自動クラウドを有効にする前に、自動クラウド設定をテストできるコマンドです。このコマンドは一度に1つの App ID に対してのみ機能し、テストする各クライアントで実行する必要があります。手順4のコマンドは、ログファイルだけでなく、Steam コンソールで、より高いレベルの出力を設定できます。

テストを終了するには、次のとおり設定します。

testappcloudpaths 0
set_spew_level 0 0

コンソールタブを取り除くには、Steam クライアントを再起動します。テスト完了後は、開発者専用モードを無効にして、変更を公開します。

問題が起きたとき

Steam クラウドで問題が発生した場合は、%Steam Install%\logs\cloud_log.txt 内のログファイルを確認します。

情報源

Steam 完全ガイドを順番に読む60本のうち40本目

このページに出た言葉

このページの内容の誤りは、問い合わせの窓口で受け付けています。