「風来のシレン5plus」のセーブデータをバックアップする簡易ツールを作った
Steamで「不思議のダンジョン 風来のシレン5plus フォーチュンタワーと運命のダイス」を購入してプレイしています。
PC版を買って良かった。というのもセーブデータのバックアップができるからです。
不思議のダンジョンシリーズとしてお決まりの「死んだらアイテムがなくなりレベル1から」というのを繰り返している時間的余裕がないため、理不尽に倒されてしまったらバックアップからセーブを戻してプレイしています。PC版でないとこれはできませんね。
ただ、私がかつてプレイした風来のシレンシリーズ第1作目からはシステムが随分優しくなり、装備品にはゲーム内で「タグ付け」をしておくと倒れてしまっても装備品は戻ってきます。
まぁそれでもまたダンジョン1階からですから大変です。
セーブデータをバックアップしておけば、倒れる前からやり直せます。
ということで、セーブのバックアップを何度も行うのでバックアップの簡易ツールを作りました。
バックアップ自体は別に難しいことではなく、単にエクスプローラーなどでファイルをコピーするだけです。
でも何度も行うとなるとそのコピーと管理が面倒になりますので、デスクトップのアイコンをダブルクリックするだけでセーブをバックアップできるようにしました。
目次
ゲームがクラッシュしがちな人もセーブをバックアップしよう
ゲームがクラッシュすると道中で倒れたことになり、持っていたアイテムが何もなくなり出発地点に戻されてしまいます。
私はボーダーレスウィンドウでこのゲームをプレイしているのですが、アクティブウィンドウの切り替え時にゲームが落ちることが多いです。
ウィンドウを切り替えなければクラッシュしないのですが、ブラウザーで攻略Wikiを見ながらプレイすることもあるのでどうしてもウィンドウの切り替えが必要です。
クラッシュしやすい人もセーブをバックアップしておくと安心です。
セーブをバックアップできると色々と試せる
セーブのバックアップは何も倒されてしまったときだけに使うものではありません。
私は「店内でトドの壺を使ったらどうなるんだろう」と疑問に思い、試してみたかったのでセーブをバックアップしてから試してみました。
結果アイテムを拾う時にトドが消えます。疑問が解決されて嬉しい。
風来のシレンは失敗しそうな行動を取れないのですが、バックアップできるとこんな感じにどうなるか試せます。
セーブをバックアップするときの注意点
「風来のシレン5plus」のセーブの取り扱い方に注意点があります。
バックアップをするのはプレイ中ではいけません。
「風来のシレン5plus」のシステムは、ゲームのプレイ開始時(冒険を始めるを押した後)に「プレイを開始した」ことがセーブデータが書き込まれ、この後に「中断」をしないとプレイしたデータがセーブされません。
エクスプローラーでセーブデータのファイルの更新日を見る限り、データが保存されるのはこの2つのタイミングだけのようです。
つまり、冒険中に今の状況のデータをバックアップしたくなったら、「中断」をして冒険を終えてからバックアップします。そして冒険を再開。
もしプレイ中にセーブデータをバックアップし、「中断」せずにそのゲームを終えてしまうと(ウィンドウを閉じたり、クラッシュしたりした場合)、「中断」したことがセーブに書き込まれていないので、プレイを再開すると道中で倒れたことになり出発地点に戻されてしまいます。
持っていたアイテムは消えます。たぶん「タグ付け」してあれば装備品は再入手できるかと思いますが…。
しかもセーブされるタイミングで説明したとおり、たぶん道中のプレイデータが保存されていないので、ダンジョンに入る前の装備品でしょう。
もし道中のデータが密かにセーブされているならセーブデータの中身を見て書き換えれば復活できる可能性がありますが、私はそこまでは調べていません。
バックアップツールのダウンロード
ダウンロードとコードは note.com に置いてみました。
バッチで作ってあり、ZIPファイル解凍後にダブルクリックで起動するだけです。バッチファイルにもショートカットが作れるので好きな場所に置いて下さい。
コードはこの記事にベタッと貼り付けても良いのですが、200行ほどありますし、WordPress を使ったサイトのため、行頭のインデントが消えてしまいます。
コードを貼り付けずにバッチファイルをそのまま WordPress にアップロードしても良いのですが、WordPress はファイル管理には向かないシステムです。後から更新しようと思うとちょっと手間です。
GitHub はこれだけの為にアカウントを取るのも面倒。
調べてみたら note.com はコードも貼り付けられるようになったようで、ファイルもアップロードできますので、これにしてみました。何か不都合があるようなら後で変えます。
バッチファイル内で日本語を使っているので SHIFT-JIS で保存しないと実行時にエラーになるのですが、これをPC初心者が行うのはたぶん大変です。
ということで SHIFT-JIS で保存してあるファイルをダウンロードしてもらった方が楽かなと。
ツールの仕組み
実行時のスクリーンショット
「風来のシレン5plus」のセーブデータは下のフォルダにあります。
%ProgramFiles(x86)%\Steam\userdata\[YourSteamID]\1178790
ここにある \remote がSteamが管理するセーブフォルダです。バックアップツールではここに \remote_backup というフォルダを作って中身をコピーしています。
セーブスロット毎にファイルが1つあり、それをまず1つコピーし、同時にファイル名の末尾に更新日(セーブの日時)を付けたものも保管します。
なぜファイル名をそのままにしてコピーするものがあるかというと、セーブデータの復元時にそのファイルをそのままにして \remote に上書きコピーするだけで良いからです。
大抵の場合、最新版のバックアップから復元することが多いでしょうから、このようにしています。
セーブスロット毎にバックアップファイルの上限値を設定してあります。これを超えると古いものから削除されます。初期値では20個ですが、設定で 0 にすると上限無しになります。設定については下で書いてあります。
設定
ほぼ設定する必要が無いように作ってありますが、bat ファイルをテキストエディターで開くと設定ができます。
- set Steam_User_ID=null
Steamで複数のアカウントを切り替えていないならnullのままでOK。それ以外は指定する
SteamID は "SteamID64" ではなく "SteamID3" の数字
Steam\userdata の下にあるフォルダに付いている数字列です- set Game_AppID=1178790
設定の必要なし。「1178790」が風来のシレン5plus の AppID です- set Steam_UserData_DIR=%ProgramFiles(x86)%\Steam\userdata
もし Steam をデフォルトのフォルダにインストールしていない場合は指定する
ex) Steam_UserData_DIR=D:\Program Files\Steam\userdata- set Remote_DIR_Name=remote
Steamの同期セーブフォルダ名。変更の必要なし- set Backup_DIR_Name=remote_backup
バックアップのフォルダ名- set Suffix_Time=modified
Suffix_Time=modified 更新日時をファイル名の最後に追加
Suffix_Time=current コピーした時の日時をファイル名の最後に追加- set Save_Limit=20
セーブスロット毎の保管しておくバックアップ個数の上限を指定する。バックアップファイルの総数ではありません
ファイル名で判断し、古いものから削除します
0 を指定するとこの機能を使用せず、無限に保管します- set Close_After_Success=0
1 を指定するとセーブデータのコピー成功後、すぐにウィンドウが閉じられます
設定を変える場合、「=」の前後に空白がないようにしてください。
セーブデータの復元方法
実行時のスクリーンショット
バックアップしたセーブデータは下のフォルダにあります。
%ProgramFiles(x86)%\Steam\userdata\[YourSteamID]\1178790
ここにある \remote がSteamが管理するセーブフォルダです。バックアップツールではここに \remote_backup というフォルダを作って中身をコピーしています。
セーブスロットが複数ある人は、ファイルの更新日を見てどれが狙っているセーブスロットのデータか見極めて下さい。ゲームを起動して冒険を始める時にセーブ日時(更新日)が表示されています。
\remote_backup にあるバックアップファイルの最新版か、欲しいセーブ日時のものを \remote にあるセーブデータに上書きコピーするようにします。
バックアップした時の最新版が欲しいセーブデータならそのまま \remote に上書きコピーで良いのですが、それ以外のバックアップは、実行時のスクリーンショットのように、ファイル名の末尾に「__20210706_165515」のような「__年月日_時分秒」が付いています。
このファイルを復元したい時は、\remote にコピーした後に、末尾の日付がないファイルを削除して、末尾の日付があるファイル名からこの末尾の文字列を消して下さい。
例えば、\remote_backup の「7GBAS6A997SBIOKASBC__20210706_165515」を復元したいとき、これを \remote にコピーし、\remote にある要らないセーブデータ「7GBAS6A997SBIOKASBC」を削除して、「7GBAS6A997SBIOKASBC__20210706_165515」のファイル名を「7GBAS6A997SBIOKASBC」にします。
なお、ゲームは \remote にある全てのファイルを読み込んでいるようです。「7GBAS6A997SBIOKASBC__20210706_165515」というファイルだけを置いておくと、起動時に「7GBAS6A997SBIOKASBC」というファイル名の中身が同じデータが自動的に作られます(更新日の秒+1)。
これでもセーブデータの復元という目的は達成できますが、次にバックアップツールを使うときに「7GBAS6A997SBIOKASBC__20210706_165515」のバックアップが取られてしまいます。
セーブデータの復元もバッチで簡易なプログラムを書いても良いのですが、私はほぼ最新版を復元することしかなかったので不要でした。
復元の上書きコピーは失敗すると元に戻せないので、ダブルクリックするだけで復元するのはやや危険です。少し時間が掛かる手順にしておいた方が安全です。
バックアップはいつでもとりあえず行っておけば問題ありません。