【Minecraft】既存ワールドの任意の地点を新しいシード値で再生成する

f:id:ychika:20210129170814p:plain

この記事は,

「マイクラで新しいアプデが来たからいつも使ってるワールドで遊びたいけど,
マップ広げすぎて遠いところまでいかないといけなくてめんどくさい!!」

というお悩みを解決するためのものです.

 

一般的には,
「WorldEditを使ってこれまでのワールドの建造物を新しいワールドに持ってくる」
という方法が取られますが,この記事では,
「これまでのワールドの一部を新しいシード値で上書きする」
という別の方法をご紹介します.

ちなみに,任意の地点と言っていますが,細かい指定はできません.

※作業前に念のためバックアップを取ってください!

目次

この記事の特徴

  • MOD不要!
  • 最新版対応(ver 1.16.5)
  • 建造物・チェストの中身・村人・Mob も移行可能
  • ワールドデータを引き継げる(インベントリ・経過日数・エンドラ討伐数等)  

概要

大まかな方針としては,内部ファイルの一部を新しいワールドのものに置き換えます.

内部ファイルは,Windows の場合,基本的には以下のパスに入っています.

C:\Users\[ユーザ名]\AppData\Roaming\.minecraft\saves\[ワールド名]

変更する内部ファイルは,上記パス内の以下の4つです.

  • level.dat   (シード値等の設定ファイル)
  • region    (オーバーワールドのマップデータ)
  • DIM1/region  (エンドのマップデータ)
  • DIM-1/region  (ネザーのマップデータ)

必要な手順は,

  1. 再生成したいエリアの region ファイルを削除
  2. level.dat 内のシード値を変更

だけでOKです.
次にプレイしたときに,削除したエリアが新しいシード値で再生成されます.

level.dat と region フォルダについて詳しく知りたい方は,以下のリンク先をご参照ください. minecraft-ja.gamepedia.com

twilight1730.blog.fc2.com

方法

1. 再生成したいエリアの region ファイルを削除

region フォルダを開くと,「r.0.0.mca」「r.-10.18.mca」などのファイルがあります.
二つの数値は(x, z)の「リージョン座標」を表しています. これが各エリアのデータです.

xとzはリージョンの座標(≠map座標,≠チャンク座標)を表します。各チャンクはチャンク座標を32で除算した値(端数切捨て)のリージョン座標に属します。 twilight1730.blog.fc2.com

要するに,若い数値のエリアがスポーン地点周辺になります.
リージョン座標が分かる方は,任意の .mca ファイルを直接削除すればOKです.

目で見て判断したい場合は,以下のツールが分かりやすいです.
実際にマップを見ながらファイルの取捨選択ができます.

github.com

リンク先ページの下から .jar ファイルをダウンロードして開きましょう.

f:id:ychika:20210129152517p:plain:w500

開くとこんな感じ. File > Open から region フォルダを選択してください.

f:id:ychika:20210129153044p:plain:w500

以下のように,生成されたマップ領域が表示されます.

f:id:ychika:20210129155325p:plain:w500

左クリックで選択,右クリックで選択解除,中ボタンで拡大縮小と移動ができます.
削除したい部分を選択して,Selection > Delete selected chunks で任意のエリアを削除できます.
または,残したい部分を選択して,Selection > Export selected chunks で任意のエリアだけ切り出せます.
後者の場合は,一旦別フォルダに Export してから region フォルダを置き換えてください.

f:id:ychika:20210129155839p:plain:w500

無事,削除できました!

f:id:ychika:20210129160834p:plain:w500

2. level.dat 内のシード値を変更

まず,新しいシード値を用意しましょう.
先ほど削除したエリアがここで指定するシード値で再生成されます.

level.dat はバイナリファイルなので,一度人が読める形式に変換する必要があります.
ここでは,以下のツールを使います.

github.com

リンク先の .msi ファイルをダウンロードして起動しましょう.
File > Open から変更する level.dat を開きます.

f:id:ychika:20210129162330p:plain:w500

"Data > WorldGenSettings" 内の seed を全て新しいシード値に変更します.
設定箇所は,WorldGenSettings 直下と dimensions 内に複数ありますのでご注意ください.

f:id:ychika:20210129163104p:plain:w500

dimensions 内は,「overworld」「the_end」「the_nether」の3つに分かれています.
それぞれ2か所 seed を指定する必要があります.
下図は,overworld の例です.
"generator > seed" と "generator > biome_source > seed" を変更します.
the_end,the_nether も同様に変更してください.

f:id:ychika:20210129163335p:plain:w500

以上の手順で,既存ワールドが新しいシード値で再生成できるようになりました!!

結果

あとはMinecraftを起動して歩き回るだけです.
先ほど例で切り出したエリアの外周を歩いてみました.
シード値が変わったことで,以下のように突然バイオームが変わっていることが確認できます.

f:id:ychika:20210129165914p:plain:w500

境界には所謂「バージョンの壁」が生成されます.

f:id:ychika:20210129170546p:plain:w500