Minecraft ワールドをBedrock版とJava版の間で変換するWebツール「Chunker」
友達数人が参加するBedrock版サーバーを運用していたが、 PCでゲームを遊ぶ割合が増えたことでJava版に移行することになったので、 既存のBedrock版ワールドを変換できないか調査することにした。
環境
- Chunker 1.17.4
- Amulet Editor v0.10.1
- Minecraft Java版クライアント 1.19.2
- Minecraft Java版サーバー 1.19.2
- Minecrarft Bedrock版サーバー 1.19.31.01
Chunker
- https://chunker.app/
- https://apexminecrafthosting.com/convert-bedrock-to-java/
- https://learn.microsoft.com/ja-jp/minecraft/creator/documents/chunkeroverview
- さまざまなMinecraftのサードパーティーツールを紹介する記事の1つ
- https://learn.microsoft.com/ja-jp/minecraft/creator/documents/commonlyusedtools
ワールドデータをアップロードすると、異なるプラットフォーム・バージョン向けに変換してくれるWebツール。
![Chunker 開始画面](/static/97a2588300a0ff2bfdd0397096fd392e/a6d36/chunker_start.png)
右下のベルボタンから確認できる更新履歴を見る限り、少なくとも2020年5月にはChunker 1.4.1が存在していたようだ。
Hive GamesというMinecraft公式パートナー(Minecraftのマーケットプレイスに出品できる契約をMicrosoftと結んでいるクリエイターのこと)が開発していて、内部ツールを公開したもののようだった。
Born as an internal tool
As part of an exclusive licensing deal with Microsoft
という記述があるが、Chunkerのために別途契約を結んでいるのか、公式パートナーのことを指すのかは読み取れなかった。
2022年5月にリリースを伝える記事がいくつか見られ、TwitterでMinecraftの開発者の1人 David (@CornerHardMC)氏が言及していたりする。 公式ツールだとする記事があるが、ソースは見つけられなかった。 個人的には、あくまで非公式ツールだと思っている。
- https://twitter.com/CornerHardMC/status/1527766756453822464
- https://foxynotail.com/minecraft-news/29/minecraft-releases-official-world-converter-and-pruning-tool/
- https://www.reddit.com/r/Minecraft/comments/uv5p4c/minecraft_official_chunker_a_map_editor_and/
軽量なワールドを変換してみた
十数日遊んだくらいの、35MB程度のBedrock版ワールドがあったので、ChunkerでJava版に変換してみた。
![軽量ワールド 額縁に入った地図](/static/3d53351fdbfb4bcf91e8be10d9c07fb2/a6d36/liteworld_map.png)
![軽量ワールド ハーフブロック](/static/b0c64c7ffa004d3cffe2482330de4917/a6d36/liteworld_half_block.png)
見た目には、ハーフブロックが一部消えたり入れ替わったりしていそうなくらいで、 いくらか手を入れれば遊べそうだった。
チェストの中身は見た目にはおそらくそのままだが、 プレイヤーはBedrock版とは異なるIDでログインすることになるので、インベントリの中身を直接移動させることはできないと思われる。内部的にインベントリのデータを残しているかは調査していないので不明。
ワールドのサイズ制限
Chunkerにアップロードできるワールドのサイズ制限はおそらく500MB(記事執筆時点)。
手元に733MBある本命のBedrock版ワールドがあり、これをアップロードしようとしたところ、サイズ制限のバリデーションに引っかかった(ディレクトリ・zipと2方式のアップロードボタンがあるが、どちらも同じ)。
![Chunker 733MB](/static/e4436e32bb90d9e758fe52c3ccd84089/092ed/chunker_733mb.png)
![Chunker サイズ制限](/static/2fe219658517c6575475dc48e63ee8c1/a6d36/chunker_size_limit.png)
ワールドサイズを減らすため、不要なチャンクを削除してみることにした。
Amulet Editorによるチャンク削除
![Amulet 開始画面](/static/9bb28784e40067ffe4833829de5498e4/a6d36/amulet_start.png)
![Amulet ワールド読み込み](/static/6d3b22ab49d07a07036c2abf193d7e2f/a6d36/amulet_load_world.png)
![Amulet ワールド読み込み済み](/static/555bf5aff988ec9bbfe526095802501c/a6d36/amulet_loaded.png)
![Amulet 3Dエディタ画面](/static/328e85e8c71d5270b84df0d8b46365f0/a6d36/amulet_3d_editor.png)
ワールドを読み込んだあと、Ctrl+Aでワールド全体を選択する。
![Amulet 全選択済み](/static/00f99ceb4429e15b56a0608ef554cac1/a6d36/amulet_all_selected.png)
左の選択範囲フォームからXZを編集して、適当なサイズにする。 適当に試したところ、以下のようなサイズになったので、-5000~+5000を切り取ることにした。
- 20000x20000(-10000~+10000): 660MB
- 12000x12000(-6000~+6000): 530MB
- 10000x10000(-5000~+5000): 480MB
![Amulet 選択範囲の変更](/static/eb43fceb335698a93ef3aa9e770b0bff/a6d36/amulet_selection_edit.png)
フォームの数字をキーボードで編集するときは、フォームからマウスを外さないようにする。 右の3D表示にマウスカーソルが乗ると、入力欄から選択が外れてしまう(画像中では-10000~+10000になっているが、スクリーンショットを撮り直していないだけ)。
![Amulet 選択範囲の変更済み](/static/f75422ec1401df09ab98ba42f0c1cc2a/a6d36/amulet_selection_edited.png)
下の「Chunk」ボタンを押す。
![Amulet チャンク編集](/static/a9f0b185c2e8e199d8e95d7310cd9d35/a6d36/amulet_chunk.png)
「選択範囲外のチャンクを削除」ボタンを押す。
![Amulet 非選択チャンクの削除](/static/5f3fb1b07cf78e7868af84db00375890/a6d36/amulet_chunk_delete_unselected.png)
出てくるモーダルで、現在のチャンクデータを読み込んでUndo可能にするか聞かれるが、 Noを選ぶとUndoできないが高速に作業を進められる。 Yesを選ぶと、Undoポイントの作成に数分以上かかることがある。
![Amulet チャンク操作 Undo確認](/static/c96dcf70971323cca9a7b6e91a7fe9b5/29f4e/amulet_chunk_undo.png)
右上の保存ボタンを押す。 保存完了の時点ではワールドサイズは減っていないので注意。
![Amulet 編集内容を保存](/static/a976eaba33b0a5cdf592fb0024d9a590/a6d36/amulet_save.png)
ワールドを閉じる。 この操作が完了すると、ワールドサイズが変化する。
![Amulet ワールドを閉じる](/static/c8a4d7e65c9215bd8cbdbb1bc2261a7b/a6d36/amulet_close.png)
10000x10000(-5000~+5000)を切り取ったことで、zip圧縮状態で473MBにすることができた(上のチャンク削除前サイズは圧縮前だが、圧縮時は725MBだった)。
![Chunker 473MB](/static/ec8cf6de2159437bbe0f6589b51afb4d/092ed/chunker_473mb.png)
500MBを下回ったことで、Chunkerを使って変換することができた。
![Chunker 変換中](/static/c8ffe3c8556914a1f0113da671946f76/a6d36/chunker_converting.png)
![Chunker 変換したワールドをダウンロード](/static/67f60649798f7c07465227ebd129670d/a6d36/chunker_ready_to_download.png)
こちらのワールドでは、地図や旗が壊れてしまっていた。 軽量ワールドの方では地図を変換できていたようだったので、Amuletを挟んだ影響かもしれないが、 地図の縮尺・複製の違いや、ワールドサイズが大きいことなど、他にも原因が考えられる。
![Chunker 大きいワールドのバナー](/static/99c3d5efcfbddf3234d13b57d08049cb/a6d36/heavyworld_banner.png)
また、すべてのエンティティが消えてしまっているようだったので、村人なども引き継げなさそうだった。 これもChunker単体では不明。
テスト用のワールドを作って検証してみたら、改めて記事を更新したい。