統合版マイクラで、ジグソーブロック使って自作ダンジョンを作りました
すーみそー
sumiso_c0db8cだ
統合版マイクラ1.21.50でジグソーブロックが使えるようになった
ので使ってみた
- 統合版のジグソーブロックが使えるようになった
- ジグソーブロックとは
- ストラクチャーとは
- ジグソーブロックの置き方
- ジグソーブロックの設定
- ジグソーブロックの使い方
- インストール
- アンインストール
- デバッグ
- ビヘイビアーパックの使い方
- 生成確認
- 配布
- 参考文献
統合版のジグソーブロックが使えるようになった
長らく、統合版マイクラに存在はしているけど
機能は無かった謎のブロック
ジグソーブロック
統合版マイクラ1.21.50
ペールガーデン追加のアップデートと共に
ついに使えるようになりました
まだ実験的機能ですが
さっそく使ってみます
ジグソーブロックとは
ジグソーブロックは
ダンジョンの生成で利用されます
現在統合版で対応しているのは
トレイル遺跡と、トライアルチャンバー
例えばトライアルチャンバー
トライアルチャンバーは生成される場所によって
部屋の構成が異なります
様々な種類の部屋が用意されていて
それらがランダムに選ばれ
生成されています
ランダムに部屋(ストラクチャー)を選んで繋ぎ合わせる
繋ぎ合わせの部分にジグソーブロックが利用されています
ストラクチャー(構造)を繋ぎ合わせて、ひとつのダンジョンを生成しています
ジグソーブロックを使って、自作のダンジョンを自然生成させることができます
ストラクチャーとは
ジグソーブロックは常にストラクチャーブロックとセットで利用します
ストラクチャーブロックはマイクラのブロックの塊
構造を保存、呼び出しできるブロックです
ストラクチャーブロックはコマンドで入手できます
/give @s structure_block
保存したい場所の北西の角にストラクチャーブロックを設置
適当な名前を設定
範囲を調整して
保存します
エクスポートより.mcstructure
ファイルとして
任意の場所に保存できます
.mcstructure
ファイルを使う、のですが
まだジグソーブロックの設定をしていないのでこのままで
ジグソーブロックの置き方
ジグソーブロックはコマンドで入手できます
/give @s jigsaw
ジグソーブロックには向きがあります
ピストンと同じように、置くときの角度によって設置向きが変わります
ジグソーパズルのピースが描かれている面に、次のストラクチャーが生成されます
ストラクチャーの端に
ピースの面を外側にして
設置します
ジグソーブロック同士が繋がって、良い感じのダンジョンになるように
ストラクチャーをいくつか作ります
- 直線
- 十字路
- T字路
- 曲がり角
- 階段
辺りのパーツを作っておくと
ダンジョンっぽくなります
あとは建築力次第
ジグソーブロックの設定
ジグソーブロックの画面はこのようになっています
ターゲットプールにはこのジグソーブロックが接続する
テンプレートプール(template_pool)を指定します
テンプレートプール(template_pool)は
複数のストラクチャーのグループの定義です
実体はビヘイビアーパックで作成するjsonファイルです
詳細は ジグソーブロックの使い方で説明します
グループ(抽選プール)の中から、このジグソーブロックに接続する
ストラクチャーが選ばれます
名前はこのジグソーブロックが所属する
テンプレートプール(template_pool)の名前
ターゲット名は
このジグソーブロックが接続する
テンプレートプール(template_pool)を指定します
変化は
ジグソーブロックがワールドに読み込まれて
ダンジョンが生成完了するとき
ジグソーブロックが置き換わるブロックを指定します
ここでは周りのブロックに合わせて
磨かれた安山岩を指定しています
ジグソーブロックの使い方
ジグソーブロックを使うにはアドオン、ビヘイビアーパックを作成します
ビヘイビアーパックを作るにはVScodeでjsonファイルを編集する必要があります
ファイル構成
各ファイルに記載されているsumiso:
は名前空間です
作成するときはご自身の名前に変えてください
sumiso_jigsaw/ ├ manifest.json アドオンの定義ファイル ├ pack_icon.png アドオンの画像 │ ├ structures/ エクスポートしたストラクチャーを入れる │ └ sky_ruins/ │ ├ end/ │ │ ├ cube.mcstructure │ │ ├ cube3chest.mcstructure │ │ └ cube3r.mcstructure │ │ │ └ stone/ │ ├ corner.mcstructure │ ├ crooked_road.mcstructure │ ├ cross.mcstructure │ ├ pathway.mcstructure │ ├ stairs.mcstructure │ ├ t.mcstructure │ ├ tower.mcstructure │ └ wave.mcstructure │ └ worldgen/ ダンジョン生成の定義 ├ jigsaw_structures/ ダンジョンの生成場所を決める │ └ sky_ruins.json │ ├ structure_sets/ ワールドにどれぐらい生成するか決める │ └ sky_ruins.json │ ├ processors/ ストラクチャーを読み込んだ後におこなう加工 │ └ stone_replacement.json │ └ template_pools/ 読み込むストラクチャーの定義 └ sky_ruins/ ├ end.json └ stone.json
manifest.json
アドオンの定義ファイル
ファイル全体
{ "format_version": 2, "header": { "description": "タイガ天空に遺跡生成", "name": "sumiso sky_ruins", "uuid": "54aeec22-89a9-4a43-9320-90792f7e8ec2", "version": [ 1, 1, 0 ], "min_engine_version": [ 1, 21, 51 ] }, "modules": [ { "type": "data", "uuid": "b4e240e7-d989-4b6a-9213-605970cdb466", "version": [1, 1, 0] } ] }
header
アドオンの概要を定義します
名前(name)や説明文(description)がマイクラで表示されます
uuidはこのアドオンを一意に識別するための番号です
uuid 生成
などでググると生成サイトがいろいろ出てくるので
適当なサイトで生成してコピペしてください
versionはお好みで
min_engine_versionは動作するマイクラのバージョンを指定します
作ったときのバージョンに合わせます
"header": { "description": "タイガ天空に遺跡生成", "name": "sumiso sky_ruins", "uuid": "54aeec22-89a9-4a43-9320-90792f7e8ec2", "version": [ 1, 1, 0 ], "min_engine_version": [ 1, 21, 51 ] }
modules
アドオンの種類を定義します
ジグソーブロックを利用するにはビヘイビアーパックになるため
typeにdata
を指定します
uuidはheaderとは別のモノを生成してコピペしてください
versionはお好みで
"modules": [ { "type": "data", "uuid": "b4e240e7-d989-4b6a-9213-605970cdb466", "version": [1, 1, 0] } ]
pack_icon.png
アドオンに表示される画像です
正方形のpng画像を用意します
ファイル名をpack_icon.png
にします
jigsaw_structures
ダンジョンをどのように生成するか定義します
ファイル全体
sky_ruins.json
{ "format_version": "1.21.20", "minecraft:jigsaw": { "description": { "identifier": "sumiso:sky_ruins" }, "biome_filters": [ { "test": "has_biome_tag", "value": "taiga" } ], "step": "surface_structures", "terrain_adaptation": "none", "start_pool": "sumiso:sky_ruins/stone", "max_depth": 5, "start_height": 80, "heightmap_projection": "world_surface" } }
identifier
ダンジョンの名前を決めます
:
の左は名前空間
右側はダンジョンの名前です
"identifier": "sumiso:sky_ruins"
この名称がlocateコマンドの対象となります
biome_filters
どのバイオームに生成されるか決めます
sumisoといえばトウヒが特徴的なタイガバイオーム
"biome_filters": [ { "test": "has_biome_tag", "value": "taiga" } ],
詳細
ダンジョンがどのように生成されるか定義します
surface_structures 地表に生成される
"heightmap_projection": "world_surface"
地表を基準に
"start_height": 80,
地表から高さ80ブロックに生成
"max_depth": 5,
ジグソーブロックで接続されるストラクチャーの数
"start_pool"
最初に生成するストラクチャーを選ぶテンプレートプール
"step": "surface_structures", "terrain_adaptation": "none", "start_pool": "sumiso:sky_ruins/stone", "max_depth": 5, "start_height": 80, "heightmap_projection": "world_surface"
structure_sets
ダンジョンがワールドにどれぐらいの間隔で生成されるか定義します
{ "format_version": "1.21.20", "minecraft:structure_set": { "description": { "identifier": "sumiso:sky_ruins" }, "placement": { "type": "minecraft:random_spread", "salt": 192219140, "separation": 8, "spacing": 64, "spread_type": "linear" }, "structures": [ { "structure": "sumiso:sky_ruins", "weight": 1 } ] } }
生成割合
どれぐらいのスペース(spacing)を使い
どれぐらいの間隔(separation)で
生成されるか定義します
saltはシード値のようなものです
ランダムな数字を指定します
c0db8cにしてみた
"salt": 192219140, "separation": 8, "spacing": 64,
processors
ひとつひとつのストラクチャーを生成したとき
どんな加工をするか定義します
identifierはこのプロセッサーの名前です
template_poolsで利用します
ここでは磨かれた安山岩を、ランダムに
苔むした石レンガ、ひび割れた石レンガ、丸石に置換して
古びた遺跡感、エイジング加工しています
なお石ブロックが鉱石ブロックに変わるのは
自然の摂理のようです
ここでは定義できません
stone_replacement.json
{ "format_version": "1.21.20", "minecraft:processor_list": { "description": { "identifier": "sumiso:stone_replacement" }, "processors": [ { "processor_type": "minecraft:rule", "rules": [ { "input_predicate": { "predicate_type": "minecraft:random_block_match", "block": "minecraft:polished_andesite", "probability": 0.2 }, "output_state": { "name": "minecraft:mossy_stone_bricks" } }, { "input_predicate": { "predicate_type": "minecraft:random_block_match", "block": "minecraft:polished_andesite", "probability": 0.2 }, "output_state": { "name": "minecraft:cracked_stone_bricks" } }, { "input_predicate": { "predicate_type": "minecraft:random_block_match", "block": "minecraft:polished_andesite", "probability": 0.1 }, "output_state": { "name": "minecraft:cobblestone" } } ] } ] } }
template_pools
ジグソーブロックで指定していた
ストラクチャーのグループを定義するファイル本体です
{ "format_version": "1.21.20", "minecraft:template_pool": { "description": { "identifier": "sumiso:sky_ruins/stone" }, "elements": [ { "element": { "element_type": "minecraft:single_pool_element", "location": "sky_ruins/stone/corner", "processors":"sumiso:stone_replacement" }, "weight": 1 }, { "element": { "element_type": "minecraft:single_pool_element", "location": "sky_ruins/stone/t", "processors":"sumiso:stone_replacement" }, "weight": 1 }, { "element": { "element_type": "minecraft:single_pool_element", "location": "sky_ruins/stone/wave", "processors":"sumiso:stone_replacement" }, "weight": 1 }, { "element": { "element_type": "minecraft:single_pool_element", "location": "sky_ruins/stone/stairs", "processors":"sumiso:stone_replacement" }, "weight": 3 }, { "element": { "element_type": "minecraft:single_pool_element", "location": "sky_ruins/stone/tower", "processors":"sumiso:stone_replacement" }, "weight": 1 }, { "element": { "element_type": "minecraft:single_pool_element", "location": "sky_ruins/stone/cross", "processors":"sumiso:stone_replacement" }, "weight": 1 }, { "element": { "element_type": "minecraft:single_pool_element", "location": "sky_ruins/stone/pathway", "processors":"sumiso:stone_replacement" }, "weight": 5 }, { "element": { "element_type": "minecraft:single_pool_element", "location": "sky_ruins/stone/crooked_road", "processors":"sumiso:stone_replacement" }, "weight": 1 } ], "fallback":"sumiso:sky_ruins/end" } }
identifier
テンプレートプールの名前です
ジグソーブロックに指定します
jigsaw_structures
のstart_pool
の指定でも利用します
element
読み込むストラクチャーを指定します
ストラクチャーの数だけ作成します
locationは読み込む.mcstructure
ファイルの場所
processorsにブロックの加工を定義します
weightはこのストラクチャーが読み込まれる重みづけです
他の要素に比べて数が大きいと
より生成されやすくなります
{ "element": { "element_type": "minecraft:single_pool_element", "location": "sky_ruins/stone/corner", "processors":"sumiso:stone_replacement" }, "weight": 1 }
fallback
これ以上構造が生成されなくなったとき
最後に読み込まれるストラクチャーの
テンプレートプールを指定します
テンプレートプールとしては構造は同じです
"fallback":"sumiso:sky_ruins/end"
end.json
端に生成されるストラクチャーをまとめたテンプレートプールです
重みづけを調整し、お宝チェストのあるストラクチャーは
生成確率を低くしています
{ "format_version": "1.21.20", "minecraft:template_pool": { "description": { "identifier": "sumiso:sky_ruins/end" }, "elements": [ { "element": { "element_type": "minecraft:single_pool_element", "location": "sky_ruins/end/cube", "processors":"sumiso:stone_replacement" }, "weight": 3 }, { "element": { "element_type": "minecraft:single_pool_element", "location": "sky_ruins/end/cube3r", "processors":"sumiso:stone_replacement" }, "weight": 2 }, { "element": { "element_type": "minecraft:single_pool_element", "location": "sky_ruins/end/cube3chest", "processors":"sumiso:stone_replacement" }, "weight": 1 } ] } }
インストール
作成したファイル群をエクスプローラーで全て選択
zipに圧縮します
ファイルの拡張子を.mcpack
に変えると
アイコンが草ブロックになります
草ブロックアイコンの.mcpack
ダブルクリックでマイクラが起動してインストールされます
アンインストール
マイクラの設定→ストレージより
インストール済みのビヘイビアーパックを確認できます
消したいビヘイビアーパックを選択し
ゴミ箱ボタンで
ビヘイビアーパックをアンインストールできます
インストールに使用したmcpackファイルで再インストールできます
デバッグ
ビヘイビアーパックを作成してインストールしても
まず1発では動きません
9割どこかでスペルミス、誤字があります(当社比)
あとありがちなのはジグソーブロックの設置の向きが違う
ストラクチャーを作り変えたけのにファイル更新忘れ
なにか一つでも誤植があると、ビヘイビアーパックが動きません
エラーメッセージを確認してください
エラーメッセージの表示は
マイクラの設定→クリエイターから有効化できます
エラーが発生したとき
画面の表示は一瞬です
履歴もクリエイターから確認できます
エラー履歴を見て、誤字があるファイルを特定してください
ビヘイビアーパックの使い方
ビヘイビアーパックをインストールしたら
ワールド生成時に読み込むように指定します
ワールドの新規作成画面で
ビヘイビアーパックを有効化します
また、実験的機能の
データ駆動のジグソー構造物
を有効化します
この記事執筆時点では、実験的機能としてジグソーブロックは利用できます
生成確認
あとはワールドに入って、ダンジョンがが生成されていれば成功です
うまく読み込めているとlocateコマンドに表示されるようになっています
/locate structure sumiso:sky_ruins
生成されていました
配布
ビヘイビアパックはこちらで配布しています。ご利用は自己責任でお願いします。