ドラクエ4でクラウド同期ができない
概要
数年ぶりにドラクエ4がやりたくなり、Google Playストアから再ダウンロードしたのだが、クラウド同期ができず、セーブデータの復元ができない
状況
- 以前にプレイしていたスマホと機種は異なるが、同じAndroid
- Google Driveにセーブデータは存在している
- My Drive > DQ4J > DQ4J_SAVEDATA.DAT
- ローカルにセーブデータは無い
- 起動後、通信 > セーブデータをクラウドと同期しますか? > はい > セーブデータがありません
解決策
どうやらローカルにセーブデータが存在していない場合『セーブデータがありません』と言われる仕様。
これは、ひょっとして『(ローカルに)セーブデータがありません(ので、通信は終了します)』と言っているのか?
いったん新しく冒険の所を作り、序章だけ終わらせたらセーブするかどうか聞かれるのでセーブしてアプリを終了。
アプリの再起動後、通信はできるようになった!しかし、アプリのセーブデータが最新です。アップロードして上書きしますか?と言われる。いやいや、そうじゃない。ダウンロードしたいのよ。
そのため、Google Driveのファイルの更新日時を強制的に更新する。
- Google DriveからMy Drive > DQ4Jフォルダに移動
- DQ4J_SAVEDATA.DATを右クリック > Make a copy > Copy of DQ4J_SAVEDATA.DATが作成される
- 元のDQ4J_SAVEDATA.DATは右クリック > Move to trash
- Copy of DQ4J_SAVEDATA.DATを右クリック > Rename > DQ4J_SAVEDATA.DATに変更
これで、Google Driveの更新日時が更新された。スマホ側でドラクエ4アプリを再起動し、再度通信を行うと、無事ダウンロードしてクラウドからローカルにセーブデータを復元できた。
補足
- DQ4J_SAVEDATA.DATはバイナリなので編集はできないのだが、内部のセーブデータ日時情報などはクラウド同期には使われていない模様
- そりゃそうか。毎回ダウンロードしてDiff取ったりしないわな。そもそもセーブ日時情報が含まれているかどうかも不明
- Google DriveのDQ4J_SAVEDATA.DATを直接ローカルにコピーしようと思ったのだが(/Android/data/com.square_enix.android_googleplay.dqj4/files)、同名のファイルは存在せず、代わりにdata1.dat, data2.datなど、セーブデータフォーマットはローカルとクラウドで異なる模様
- 従って、力業でローカルに復元することは難しそう。あくまでアプリの機能による復元しか方法はない
- 旧スマホ端末を探し出してローカル間でセーブデータを力業で復元することはできるかもしれないが、そこまでする気力も意味もない