xboxgamepass(以下ゲーパス)は定額でゲームをプレイし放題の革新的なサービスである一方、ある落とし穴が存在する。
こういうサービスなので、ゲームが配信終了されることもたまにあり、それ自体は仕方のないこととして納得するものの、ゲーパスのゲームのセーブデータはクラウドに保存され、ユーザーはそれにアクセスすることが不可となっている。
つまり、面白かったからSteamで購入し、セーブデータを移行して続きからプレイする事は出来ない。というクソ仕様だ。Microsoftからすれば、xboxで購入してプレイしろよという話なのだろうが、あんな使いにくいゴミアプリはゲーパス以外の価値はない。
ここから本題。先程、セーブデータはクラウドに保存され、ユーザーはそれにアクセスすることが出来ないと述べたが、実際には名前を変えてローカルにも保存されている。以下はセーブデータの移行方法。
注意点として、全てのゲーム、環境でこの方法が使えるわけではないので、悪しからず。
また、予めSteamでゲームを購入し、そのゲームのセーブデータを作っておく必要もある。
この方法でセーブデータが消去されてしまったとしても、私は一切の責任は取らない。
今回移行するゲームはProject Wingman
まず、C:\Users\User\AppData\Local\Packages\にアクセスする。
長い名前のフォルダがあるが、セーブデータが保存されていると思われるフォルダはゲームのデベロッパーかパブリッシャーの名前を含んでいるので、検索して探す。Project Wingman の場合はHumbleと検索すると見つかる。探しているゲームに合わせて検索ワードを変えて探し、フォルダの中に入る。
次にSystemAppDataのフォルダに入り、その中のwgsというフォルダに入る。wgsには"t"というフォルダと、めちゃくちゃ長い名前のフォルダの2つがあるので、めちゃくちゃ長い方に入る。
中には変わった名前のフォルダがいくつかあると思う。
なので、この中にあるファイルの名前を1つ1つ変更し、Steamのフォルダに移行すればデータの移行が可能となる。
次に、Steamで作られたセーブデータのフォルダ(だいたいC:\Users\User\AppData\Local\(ゲーム名)の中にある)を開き、ファイルサイズからどのファイルが元々どういう名前であったかを推測する。
下の図は左が先程コピーした名前が変えられたセーブデータファイルで、右がSteamのセーブデータフォルダ。
Conquest.savとファイルサイズが同じなので、このファイルはもともとConquest.savという名前であったと推測可能。左のよくわからないファイル名をConquest.savにリネームする。拡張子の変更も忘れずに。
この調子で、5つあったファイル全てをリネームする。
終わったらSteamのセーブデータフォルダに先程リネームしたファイルを移すと移行が完了する。
その後、Steamでゲームを起動したところ、無事データは移行していた。
ゲームによっては、ファイルの数が膨大であったり、どのファイルも同じ容量であったりでこの方法では移行できない可能性もある。その時はバイナリエディタを使って同じバイナリかどうかで判断も可能だと思うが、相当に骨の折れる作業であることは変わりないし、ゲームの進行状況によってはこの方法でも不可能だろう。
今回はうまく出来たものの、Microsoftはこの姿勢を改めてほしい。ユーザーが自分のセーブデータに簡単にアクセス出来ないという状況はどう考えてもおかしい。せめてローカルには同じファイル名で保存しておくべきだろう。
参考にしたサイト
Microsoftコミュニティもたまには役に立つ。
コメント
コメントを投稿