雑記

【Steamクラウド】セーブデータ消失したらすぐにやるべき事

ある日突然にSteamゲームのセーブデータが消えたことはありませんか?
私はあります。何百時間もプレイしたゲームの起動画面に『ニューゲーム』しか表示されなかったときの衝撃は、言葉では表せません。

すぐにやるべき事

データが消えてすぐにやるべきことは、PCのどこかにまだセーブデータが残っていないかの確認です。トラブル発生時に存在していたデータも、クラウドの同期処理や慌てて行った作業のせいで消えてしまう可能性もあります。以下3つの場所をチェックし、もし存在すれば安全な場所にバックアップしましょう。

①ローカルPCのセーブデータ保存場所

本来そのゲームのセーブデータが保存されているフォルダです。保存場所はゲーム毎に異なる場合もあるのでネットで検索してみてください。またWindowsのドキュメントフォルダのパスを変更している人は、『Documents』から上のパスを適宜読みかえてください。

『セーブデータが消えた!!』となってるくらいですから、ここにないのは当然ですが、念のため確認します。データがなければ次へ。

C:\Users\[ユーザID]\Documents\[ゲーム名]\gamesaves

②Steamクラウドのセーブデータ

Steamクラウドのセーブデータを確認します。Steamクライアントにて『ゲーム名を右クリック>プロパティ>一般>Steamクラウド』が有効になっている場合は、ここに保存されているはずです。もし保存されていたら、セーブデータをダウンロードし、ローカルPCのセーブデータ保存場所にコピペすれば解決です。データがなければ次へ。

https://store.steampowered.com/account/remotestorage

③SteamクラウドファイルのローカルPCでの保存場所を確認

Steamクラウドに保存されるセーブデータは、ローカルPCの以下の場所にも保存されています。もし削除されずに残っていたら、ローカルPCのセーブデータ保存場所にコピペすれば復元はできるはずです。もしデータがなければお手上げです。Steamサポートに問い合わせましょう。

C:\Program Files (x86)\Steam\userdata\[steamID]\[appID]

[appID] はゲーム毎に振られているIDで、SteamDBで検索すればIDが記載されています。

※MacとLinuxの保存先はそれぞれ以下のようです。
・macOS:~/Library/Application Support/Steam/userdata
・Linux:~/.local/share/Steam/userdata

Steamサポートに問い合わせる

上述の3点を確認してセーブファイルが見つからない場合は、サポートに問い合わせしましょう。問い合わせる前には、以下のSteamクラウドのログ2つをバックアップしておいたほうがよいです。このログファイルは古い情報からどんどん消えて行ってしまうので、データ消失当時のログが消えないうちに保存しておいた方が後々困りません。

C:\Program Files (x86)\Steam\logs\cloud_log.txt
C:\Program Files (x86)\Steam\logs\cloud_log.previous.txt

SteamクラウドFAQを一通り読んだうえで、発生した事象にログも添付して、Steamサポートに問い合わせしましょう。

データ消失から復元までの一例

私が遭遇したデータ消失から復元までの経緯を一例として記録します。

1突然のデータ消失>

何も削除してないのに、起動画面に『ニューゲーム』しか表示されなくなる。とりあえずすぐにSteamサポートに連絡するが、返信を待たずに調査開始。
2<クラウド設定の確認>

Steamクライアントにて『ゲーム>プロパティ>一般>Steamクラウド』が有効になっていること確認し、ほっと一安心する。
3<ローカルPCのセーブデータ保存先を確認>

『C:\Users\[ユーザID]\Documents\[ゲーム名]\gamesaves』配下にあるはずのセーブデータが全て削除されている。WindowsのDefenderやストレージセンサーが勝手に削除した可能性を疑うがそんなログはなし。結局消えた原因は不明。

※セーブデータの保存先はゲームごとで違うのでご注意ください。
4<クラウドセーブデータの確認>

Steamクラウドを有効にしたゲームは下記サイトにセーブデータが保存されているはずだが、なんと綺麗サッパリ削除されている。クラウドの存在意義ってなんだっけとパニックに。
https://store.steampowered.com/account/remotestorage
5<クラウドログの確認>

C:\Program Files (x86)\Steam\logs\cloud_log.txt
上記ログファイルに以下のようなメッセージが大量に吐き出されている。どうもローカルにSAVファイルがないからクラウドからも削除しているようだが、、同期としては正常な動作のような、そんなことしたらクロスプラットフォームで遊べないような・・・。
File C:\Users\…\ManualSave_4dceb_7e759000_4a095d0.sav no longer matches any patterns (2). Removing from cloud
6<クラウドファイル:ローカル保存先の確認>

C:\Program Files (x86)\Steam\userdata\[steamID]\[appID]
Steamって32ビットなのとか思いつつすがる思いで、クラウドファイルのローカルPCでの保存場所を確認してみる。クラウドから消えているのだから、こちらも同期されて空だろうと思ったが、なんと完全なセーブデータが残っていた。謎は残るが、このデータで復元に成功した。
7<残った問題>

一番重要なセーブデータの復元には成功したが、Steamクラウドへの当該ゲームのセーブデータが同期されない状態であることが判明。
8<Steamサポートからの返信>

問い合わせから二日後にサポートから返信あり。セーブデータの復元には成功したが、Steamクラウドへのセーブデータ同期が動作していない状態であることをログとともに返信。
9<Steamサポートからの返信>

サポートからは以下3点を実施するよう連絡あり。
 ①Steamベータ版を設定を有効にし、エラーが出るか確認
 ②ゲームファイルの整合性のチェック
 ③Steamライブラリの修復の実行


全て実行してもSteamクラウドへのセーブデータ同期は復旧せず。
10<とりあえず同期も解決>

おそらくサポートもこの辺が限界だろうなと思いながら、cloud_log.txtを上から順に読んでいると、『remotecache.vdf』に古いセーブデータの情報が存在するせいで同期出来ないでいるような気がしてきた。完全な推測だが、ダメ元で削除(バックアップをとったうえで)したところSteamクラウドへのセーブデータ同期が復旧した。

C:\Program Files (x86)\Steam\userdata\[steamID]\[appID] \remotecache.vdf

復旧したといっても不明な点が多すぎて気持ち悪いですが、当初目指したゴールにはたどり着いたので調査終了にしました。

まとめ

セーブデータの復元には成功しましたが、そもそも何が起こったのか原因は全くわかりません。不思議です。