【Palworld】他人がホストだったマルチのデータを自分のワールドに移行する

Game

はじまり

リサちゃん
リサちゃん

移行できるかな~

ペンギン
ペンギン

Steam管理下のフォルダじゃない・・・?

パルワールドのセーブデータを移行したい

パルワールドでマルチプレイをしていたワールドのデータを欲しくなった場合に、そのデータを自分のワールドのものにする方法を紹介します。メリットとしたら、より強いPCをホストにしてパルワールドを遊べるように出来たりしますね。

それでは行ってみましょう。

1. Python 3.9以上をインストールする。

この方法では、Python 3.9以上をPCに予めインストールしている必要があります。

Pythonの公式サイトや、Microsoftストアからダウンロードしてインストールを済ませます。PATHもちゃんと通しておきます。

2. マルチプレイで使っていたセーブデータを貰う。

一緒に遊んでいた人からセーブデータを貰います。

以下のパスの配下に格納されているかと思います。

%localappdata%\Pal\Saved\SaveGames

3. 上書きをするワールドデータを予め作っておく。

まずは、マルチプレイのセーブデータを上書きするためのワールドを仮で作成しておきます。

マルチプレイのワールドだったので、念の為マルチプレイをオンにしておきます。

ファストトラベルを適当に解放してパルワールドを終了します。

4. 「Level.sav」をpalworld save toolでJSONへ変換する

そしたら、palworld save toolsをGitHubのリポジトリからダウンロードします。

  1. ダウンロードしたらそのZipを伸長(解凍)します。
  2. 「Level.sav」の変換作業を行いたいのですが、その前に「Level.sav.json」が同じフォルダにあった場合は、別の場所に避難させておきます。これから出力するファイルの名前も「Level.sav.json」だからです。
  3. マルチプレイで使っていたセーブデータ「Level.sav」を、palworld save tool内にある「convert.cmd」へドラッグ・ドロップします。しかし、僕の場合はドロップしても上手く動かなかったので、「convert.py」へドラッグ・ドロップしました。
  4. 「Level.sav.json」が出力されます。今回の変換は30秒ぐらいで終わりました。800MBほどの容量があります。

「Level.sav」があるフォルダに、「Level.sav.json」が出力されました。

5. 出力された「Level.sav.json」の編集

そしたら、出力された「Level.sav.json」を編集していきます。

  1. 今回は編集用のテキストエディタに「サクラエディタ」を使用しようと思ったのです。
  2. しかし、サクラエディタが落ちてしまったので「Visual Studio Code」でやりたいと思います。(おそらくインストールバージョンを使わなかったのが原因?)
  3. 自分のマルチプレイにおける名前で検索して、自分のuidを特定します。(引き続き同じ人と遊びたい場合は、他の人のuidもメモしておきます。日本語のプレイヤー名は文字変換ツールで確認します。)
  4. 元のマルチプレイのワールド主だった人のuidを変えます。「00000000-0000-0000-0000-000000000001」がそのuidなので、そのuidを「12345678-0000-0000-0000-000000000001」とかに全て置換します。(検索すると、10000件以上ヒットします・・・。)
  5. なので、1個ずつ置換していくしかありません。(ずっと押しっぱなしにしているとエディタがクラッシュする恐れがあるので、5秒ぐらい押しっぱなしにしたら離す、置換したら再び5秒ぐらい押しっぱなしにしたら離す・・・、を繰り返すのが良いかもしれません。)
  6. 所々でファイルを保存しておきます。これ大事です。
  7. 作業が終わったらファイルを保存しておきます。これ大事です。

お疲れ様です。それでは次に・・・、

  1. 今やった全置換の作業を、次は自分がキャラクターに対しても行います・・・。(しかし、ゲストの場合は1800件ぐらいしかないのでご安心を。)
  2. 作業が終わったらファイルを保存しておきます。これ大事です。

6. 編集した「Level.sav.json」を「Level.sav」へ再変換する

  1. palworld save toolのフォルダを開き、編集した「Level.sav.json」を「convert.cmd」へドラッグ・ドロップします。
  2. しかし今回もなんか動かないので、コマンドプロンプトを立ち上げて、palworld save toolのディレクトリに移動してから、「python convert.py [先程編集したjsonファイルの絶対パス]」を実行します。(※コマンド実行は自己責任でお願いします。)
  3. 処理が進むと、「Level.sav」を上書きするかどうかを聞かれます。上書きで大丈夫ですが、念の為に別の場所に退避しておいてもいいかもしれません。
  4. 「Are you sure you want to continue? (y/n)」と聞かれるので、yを入力してEnter。
  5. 再変換が始まります。これもまた30秒ぐらいで終わりました。

7. プレイヤーデータ.savの編集

そして、上記の4~6までの手順と同様の手順で、「Player」フォルダにあるプレイヤーデータ.savをJSONファイルにして、uidを編集して、保存してpalworld save toolでJSONファイルをプレイヤーデータ.savに再変換します。

そして、再変換したら、それぞれのファイル名をリネームします。例えば、元々のホストユーザーのプレイヤーデータである「00000000000000000000000000000001.sav」は「12345678000000000000000000000001.sav」となるようにリネームします。

自分のプレイヤーデータをリネームする場合は、先程編集したuidからハイフンを消して全て大文字にした文字列のファイルが自分のプレイヤーデータです。そのファイルを「00000000000000000000000000000001.sav」にリネームします。

8. 編集した「Level.sav」と「プレイヤーデータ.sav」を仮データへ上書きする

それでは、先程仮で作成したワールドがあるフォルダに潜ります。おそらくこのフォルダに有るのではないでしょうか。

%localappdata%\Pal\Saved\SaveGames

そしたら、そこにある仮で作成ワールドと思われるワールドのフォルダに潜ります。(更新日時などで特定します。)

そこにある「Level.sav」と「プレイヤーデータ.sav」を、ついさっきまで編集していた同名のファイルで上書きします。

9. Palworldを起動する。

初回起動時は最初に設定したキャラクター名になっていますが、そのデータで起動します。

色々と処理が走って少しロード完了までに時間がかかります。

そして、無事に起動出来れば変換は完了です!

あれっ、パルスフィアでなんか変なミステリーサークルが出来ていますね・・・。「誰でも拾えるようになるまで 23:59」・・・。

10. ワールド設定を直して再び置換する。

先程のミステリーサークルが出来た原因は、ワールド設定で「拠点の作業パル最大数」を増やしておかなかったことが原因でした。そのため、ワールド設定を修正して、再び「Level.sav」と「プレイヤーデータ.sav」を置換します。

ワールド設定で「拠点の作業パル最大数」および「ギルド毎の拠点最大数」を上限いっぱいにします。

そしてファイルを置換してPalworldを再起動すると、次はしっかり拠点にいる全てのパルが配置されました。ミステリーサークルは出現していません。

これでワールドデータの移行は完了です。マップの進捗などが初期化されてしまいますが、パルを全て引っ越しできたので良しとします。

ちなみに、Steam上でもちゃんと同期される。

ちなみに、今回の作業で移行したPalworldのデータがちゃんとSteamに同期されているかどうかを確かめました。つまり、違うPCでSteamからパルワールドをインストールしても、移行したワールドのデータを引き続き使えるのかということです。

結果はイエス、使えます。

以下のフォルダを確認すると、自分の以前のPCにあったデータがあることが確認できました。(他のサーバへゲストとしてログインしていたワールドも同期されていました。)

おそらく、「%localappdata%\Pal\Saved\SaveGames」フォルダの中にある「steam_autocloud.vdf」というファイルが同期しているんですかねえ。

おしまい

リサちゃん
リサちゃん

いやあ長かったな・・・。

ペンギン
ペンギン

作業している間に記事が書き終わっちまったぞ。

以上になります!

コメント

タイトルとURLをコピーしました