無所属

ホーム ドキュメントとヘルプ
Steamworks ドキュメンテーション
Steam クラウド

Steam クラウドの概要

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

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

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

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

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

Spacewar_Cloud_Properties.png

初期セットアップ

Steam クラウドの設定には、Steamworks のアプリ管理パネルから Steam クラウド設定 ページを開きユーザーごとのバイトクォータユーザーが持てるファイル数を決定する必要があります。

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

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

ゲームが既に公開済みの場合は、 クラウドサポートをデベロッパーにのみ有効化というチェックボックスにマークを入れることができます。 ここにチェックが付いている場合、このタイトルの「Developer Comp」ライセンスを所有する Steam アカウントのみにクラウドのアイコンが表示され、Steam クラウドを使用することができます。 これは、ユーザーの体験を損なうことなく Steam クラウドの統合を安全にテストする際に便利です。 未公開のゲームの場合はゲームの所有者がいないので、その特定の App ID に対してクラウドストレージを見られたり、アクセスされることがないため、チェックを付けても何の影響もありません。

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

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

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

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

Steam Cloud API は ISteamRemoteStorage API インターフェイスで公開されており、 Steamworks API Example Application (SpaceWar) で使用例を確認できます。

2つ目の方法は Steam 自動クラウドです。
Steam 自動クラウドは、Steam クラウド API を簡単に統合できないレガシーゲーム用です。 これは、迅速かつ簡単な方法でクラウドを提供しますが、Steam クラウド API の性能や柔軟性には劣ります。

より高度な統合とカスタマイズを可能にし、Steam ユーザーが Steam クラウドに期待する質の高い体験を最大限に提供できるクラウド API を可能な限り採用することをお勧めします。

Steam 自動クラウド

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

セットアップ

初期セットアップ 完了後に、Steam クラウド設定 ページ内の Steam 自動クラウドの設定セクションが使えるようになります。

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

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

    これはセーブゲームが通常保存される、所定のパスのリストです。
    ルートサポート対象の OS所定のパス
    アプリのインストールディレクトリすべて[Steam Install]/SteamApps/common/[Game Folder]/
    SteamCloudDocumentsすべてプラットフォーム特有のパス。例えば Linux では x: ~/.SteamCloud/[username]/[Game Folder]/
    WinMyDocumentsWindows%USERPROFILE%/My Documents/
    WinAppDataLocalWindows%USERPROFILE%/AppData/Local/
    WinAppDataLocalLowWindows%USERPROFILE%/AppData/LocalLow/
    WinAppDataRoamingWindows%USERPROFILE%/AppData/Roaming/
    WinSavedGamesWindows%USERPROFILE%/Saved Games/
    MacHomemacOS~/
    MacAppSupportmacOS~/Library/Application Support/
    MacDocumentsmacOS~/Documents/
    LinuxHomeLinux~/
    LinuxXdgDataHomeLinux$XDG\_DATA\_HOME/
  2. サブディレクトリ

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

    自動クラウド特別パス値
    自動クラウドでは、サブディレクトリのパスに、一意の Steam ユーザー Id を使用できます。 これで、Steam ユーザー毎に別々に、ファイルが保存できるようになります。 ゲーム内でISteamUser::GetSteamID を使うと、現在のユーザーの SteamID や AccountID を保存、読み込みできるようになります。
    • {64BitSteamID} - Steam パスでのユーザーの 64bit Steam ID にはこの値を使用。 64 bit Steam ID の例 : 76561198027391269
    • {Steam3AccountID} - Steam パスでのユーザーの Steam 3 アカウント ID にはこの値を使用。 アカウント ID の例:67125541
    例 : SavesDir/{64BitSteamID}
  3. パターン

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

    例 : *.sav
  4. OS

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

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

ルートオーバーライド

アプリがクロスプラットフォーム対応で、OS ごとに異なるディレクトリを必要とする場合は、 ルートオーバーライド機能を利用して代替パスを設定できます。

上記で指定したルートパスは、別の OS 上の別のパスに対応するようにオーバーライドすることができます。 ルートオーバーライドを使用する場合は、上記の [ルートOS] ドロップダウンで [すべての OS] を指定する必要があります。

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

    これは上記で設定したルートの一つに相当します。
  2. OS

    オーバーライドを適用するオペレーティングシステムです。
  3. 新しいルート

    指定した OS 上で、オリジナルルートがマップする新しいロケーションです。
  4. パスの追加 / 置き換え

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

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

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

以下は、OS 毎にApplication.persistentDataPathプロパティ値が異なる場合に Unity で自動クラウドを設定するための例です。 Windows 版は DefaultCompany に設定されたカンパニーと AutocloudSample と呼ばれるプロジェクトからのルートパスとして設定されます。 macOS、Linux/SteamOS では、Application.persistentDataPathからの代替パスを、「パスの追加 / 置き換え」フィールド内に設定して「パスの置き換え」を有効にします。

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

Cloud_Unity_Auto-Cloud_Example.png

リリース前のテスト

Steam 自動クラウドをリリース済みのゲームに追加する場合には、初期セットアップ期間中にデベロッパー専用モードを有効にして機能をテストするいくつかの追加の手順を完了してください。
  1. テストするアプリの Developer Comp ライセンスを持つアカウントで 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. テストを終了するにはtestcloudapppaths 0set_spew_level 0 0を設定してください。 コンソールタブを取り除くには Steam クライアントを再起動してください。

テスト完了後は、デベロッパー専用モードを無効化にして変更を公開することをお忘れなく!

デバッグ

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

Steam クラウドで問題が発生した場合は、%Steam Install%\logs\cloud_log.txt にあるログファイルを確認してください。

追加情報はDebugging the Steamworks APIを参照してください。