Steam Cloud非対応のゲームを自前でクラウド対応にしてしまおうという趣旨のまとめです。
このまとめは、Windows 11が搭載されたPC2台とDropboxの組み合わせを対象にしています。
セーブデータの場所を特定する方法は別ページにまとめてありますので、そちらもご覧ください。
まず、保存したいデータがローカルマシンのどこにあるか特定しましょう。
私はShip Graveyard Simulatorのセーブデータをクラウド化したかったので探したところ、以下のフォルダの中にあることがわかりました。
%USERPROFILE%\AppData\Local\ShipGraveyard\Saved
%USERPROFILE%というのは、Windowsアカウント別のデータフォルダを示しています。
このSavedフォルダを右クリックして、「切り取り」をクリックします。(「コピー」ではダメです)
次に、Dropboxフォルダにゲーム用のフォルダを作ります。私はDropboxフォルダの中にSteamMyCloudというフォルダを作成し、その中でSteamのゲームのセーブデータを管理することにしました。
SteamMyCloudフォルダにShipGraveyardフォルダを作り、その中へ先ほど切り取ったセーブデータ(Savedフォルダ)を貼り付けます。
%USERPROFILE%\Dropbox\SteamMyCloud\ShipGraveyard\Saved
貼り付けたら、Dropboxがデータを同期させるまで待ちましょう。
次に、クラウドに移動したデータをゲームが参照できるように、シンボリックリンクを張ります。
スタートメニューを右クリックして、「ターミナル(管理者)」をクリックします。ユーザーアカウント制御の確認画面が出るので「はい」をクリックするとターミナルが開きます。
ターミナルに以下のコマンドを入力します。(コマンド内の\は、¥キーで入力できます)
New-Item -ItemType SymbolicLink -Path $env:USERPROFILE\AppData\Local\ShipGraveyard\Saved\ -Target $env:USERPROFILE\Dropbox\SteamMyCloud\ShipGraveyard\Saved\
正しく入力してEnterキーを押すと、ローカルマシン上のセーブデータがあった場所に、クラウドで同期されるフォルダへのシンボリックリンクが作成されます。
なお、シンボリックリンクのアイコンは、見た目こそショートカットと同じですが、Windows内部での扱いは全く違います。
別のパソコンからクラウド上のセーブデータへアクセスできるかどうか確かめてみましょう。
先ほどとは別のパソコンにSteamとDropboxをインストールして、各サービスにログインしておきます。
SteamでShip Graveyard Simulatorをインストールし、一回起動しておきます。(Steamのゲームは大抵の場合、初回起動時にインストール作業が行われるためです。)
動作確認用パソコンのローカルのセーブフォルダ(%USERPROFILE%\AppData\Local\ShipGraveyard\Saved)を削除します。
そして、先ほどと同じように、シンボリックリンクを作成します。
New-Item -ItemType SymbolicLink -Path $env:USERPROFILE\AppData\Local\ShipGraveyard\Saved\ -Target $env:USERPROFILE\Dropbox\SteamMyCloud\ShipGraveyard\Saved\
ゲームを起動させ、無事にデータが読み込めれば成功です。
上のほうで、シンボリックリンクは見た目こそショートカットと同じだが、扱いが違うと書きました。
どういう事かと言うと、Windowsのショートカットは実は「元ファイルの場所が書かれている、拡張子が.lnkのファイル」でしか無いのに対し、シンボリックリンクは「OSレベルでデータの置き換え位置を指し示している」物なのです。
Ship Graveyard Simulatorの場合で言うと、Ship Graveyard Simulatorのプログラムはセーブデータを"%USERPROFILE%\AppData\Local\ShipGraveyard\Saved"に保存するようOS(Windows)に命令しますが、命令を受けたOSは指定されたフォルダに書き込んだふりをして、実際はシンボリックリンク先の"%USERPROFILE%\Dropbox\SteamMyCloud\ShipGraveyard\Saved"にデータを書き込み、Ship Graveyard Simulatorに対して「指示通りの場所にちゃんと保存できましたよ」と報告するのです。一方Dropboxはそんなやり取りがあったことなど露知らず、自分の管理するフォルダにOSが書き込んだセーブデータをせっせと同期します。そして同じようにシンボリックリンクが設定された別のパソコンの上で、Ship Graveyard SimulatorがOSにセーブデータを読みこませろと要求した時は、OSは素知らぬ顔をしてDropboxフォルダにあるセーブデータを、さも本来セーブデータがあるべき場所から取り出したように見せかけてShip Graveyard Simulatorに渡すのです。
こう書くと「なんだかそのシンボリックリンクって大丈夫なの?怪しくない?」と思われるかもしれませんが、実際のところシンボリックリンクはWindows Vista以降に標準で備わっているちゃんとした機能ですし、他のOS(Linux等)に言わせれば「今更シンボリックリンクの話?遅れてる~」くらいに一般的な機能なので、その点は心配いりません。
ターミナル(管理者)でシンボリックリンクを作成するコマンドの使い方は、以下の通りです。
New-Item -ItemType SymbolicLink -Path 本来データがあるべき場所 -Target 本当にデータがある場所
この方法でセーブデータをクラウド上に保存する場合、実際にデータをクラウド上に保存したり読み込んだりするのはDropboxの仕事になります。Dropbox上でデータがきちんと同期されていないうちにパソコンの電源を切ってしまったり、また回線が不安定だったりすると、データの同期がきちんと行われず、おかしな事になってしまう可能性があります。きちんとデータが同期されるまで、ゲームを起動したりパソコンをシャットダウンしないように気をつけてください。
また、無料のクラウドストレージは大抵2~5GBしか容量がありませんので、あまり大きなデータは保存できません。保存するデータを厳選するなり、複数のストレージサービスに分散するなりして対応してください。とは言えそれも面倒くさいので、お金があるなら素直に容量を拡張しましょう。
なお、このページに書いてあるクラウドストレージサービスの使用方法は、サービスを提供している各社が想定している使用方法とは異なる可能性があるので、ある日突然「お前の使い方ダメだから」とか言われてデータを消されても責任持てません。