この記事では、Minecraft Java Edition(バージョン1.20.2)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
こんにちは!
マインクラフターのなつめ(@natsume_717b)です。
この記事では、こんな疑問を解決します!
- オリジナルの構造物をワールドに生成する方法
- structure_setとjsonファイルの作成
- データパックを適用する
- 生成されるバイオームを変更する
今回は自作した建造物をワールド生成時に生成されるようにする方法について解説していきます。
実際にやってみた様子がこちら。
オリジナルの構造物を自然に生成されるようにした結果です
— 夏メ:マイクラブロガー (@natsume_717b) October 29, 2023
村と同じ場所に生成されているのは、saltという項目を村と同一にしてしまっているからですね
(シード値のようなものです) pic.twitter.com/AS60cX1Bpw
オリジナルの建築物を呼び出せる状態であれば、少ない作業でワールド生成時に呼び出せるようになるので、ぜひ参考にしてもらえると嬉しいです。
さっそく見ていきましょう!
オリジナルの構造物をワールドに生成する方法
オリジナルの構造物を生成させるには、ただ構造物のデータを用意するだけでなく「ワールド生成時に生成させるもの」として認識させなくてはなりません。
そのためにデータをパックを作っていくのですが、詳しくは以下の記事から構造物を呼び出せる状態まで進めてください。
ボリュームのある記事ですが、まずは構造物のデータを認識させるところまで作業しなくては生成どころではありません。
ここからは、オリジナルの建造物をplaceコマンドを用いて生成できる状態だとして話を進めていきます。
structure_setとjsonファイルの作成
ワールド生成時にオリジナルの構造物を生成するには、structure_setというフォルダに適切な内容で書かれたjsonファイルが必要になります。
ファイル構造としては以下のようになります。
- datapack本体
- data
- フォルダ
(今回はntmと命名したとする)- structures
- 各nbtファイル
- worldgen
- template_pool
- jsonファイル
- structure
- jsonファイル
(今回はdungeon01と命名したとする)
- jsonファイル
- structure_set
- jsonファイル
- template_pool
- structures
- フォルダ
- pack.mcmeta
- data
橙文字の部分が追加するフォルダとファイルです。
structure_setについては、その名前でフォルダを作成するだけなので難しいことはありません。
jsonファイルは下記の内容をコピペして、一部を変更します。
{
"placement": {
"type": "minecraft:random_spread",
"salt": 10387333,
"separation": 8,
"spacing": 34
},
"structures": [
{
"structure": "ntm:dungeon01",
"weight": 1
}
]
}
saltの部分に記載されている数字は、構造物が生成されるためのシード値のようなものです。
なので数字を転用してしまうと、saltの値が同じ構造物同士が重なるように生成されてしまいます。
適当な数字で良いので、変更するようにしましょう。
次にstructureの部分です。
これは”フォルダ名:structureの中に含まれているjsonファイル名”と記述します。
なので今回は”ntm:dungeon01”となりました。
これで準備OKです。
あとはデータパックを適用させたワールドを生成します。
データパックを適用する
作成したデータパックは、ワールド生成時に適用しなければなりません。
ワールド生成後に適用したところで、既に生成する段階を過ぎているので当然ですね。
ワールド作成時に表示される「その他の設定」というタブからデータパックを見つけてクリック。
開いた画面の「パックフォルダーを開く」をクリックして開かれたフォルダーにデータパックを投入すればOKです。
追加することができたら「選択中」に移動して、「完了」を押しましょう。
データパックに不備がある場合は、適用できない旨が表示されるのでデータパックを見直す必要があります。
「選択中」に移動させること出来れば、あとはワールドを生成すればOKです。
きちんとできていれば、以下のコマンドで探すことができます。
/locate structure ntm:dungeon01
末尾にある”ntm:dungeon01″の部分は各自で異なります。
フォルダ名などから候補を絞ったうえで、追加した構造物を検索するようにしましょう。
生成されるバイオームを変更する
生成されるバイオームを設定するには、structuresの中にあるjsonファイルに記述します。
つまり、structure_setのjsonファイルで指示しているファイルを弄るわけですね。
生成できる状態であれば、以下のようなものが記載されているはずです。
{
"type": "minecraft:jigsaw",
"biomes": "minecraft:warm_ocean",
"max_distance_from_center": 80,
"project_start_to_heightmap": "WORLD_SURFACE_WG",
"size": 6,
"spawn_overrides": {},
"start_height": {
"absolute": 0
},
"start_pool": "ntm:01_dungeon",
"step": "surface_structures",
"terrain_adaptation": "beard_thin",
"use_expansion_hack": true
}
橙文字の部分が、生成されるバイオームを指定している場所です。
単一のバイオームを指定しても良いですし、タグによってまとめられたものを指定しても問題ありません。
タグにまとめられているものは#から始まるものです。
#minecraft:has_structure/village_taigaなどが挙げられます。
もちろん自作したバイオームを指定すれば、そのバイオームに生成されるようになります。
今回は説明しませんが、バイオーム以外の項目もこのファイルから設定できます。
まとめ
というわけで、今回のまとめです。
今回はオリジナルの構造物をワールド生成した時点で生成されるようにする方法を解説しました。
- 構造物をワールド生成と同時に生成させるには、structure_setというフォルダに適切なjsonファイルを設置する必要がある。
- 生成されるバイオームなどの設定は、structureに保存されているjsonファイルから設定できる。
この記事は以上になります。
2016年からマイクラを楽しんでおり、最近はクリエイティブモードでコマンドを駆使して遊んでいます!