この記事では、Minecraft Java Edition(バージョン1.20.2)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
こんにちは!
マインクラフターのなつめ(@natsume_717b)です。
この記事では、こんな疑問を解決します!
- processor_listでカスタムストラクチャーを装飾する
- processor_listの使いかた
processor_listを使うことで、以下のツイートのようにカスタムストラクチャーを生成する際に特殊な加工を施せます。
processor_listを使うことで、生成時に既存のブロックを保護したり、カスタムストラクチャーの一部を欠損させることが可能です。 pic.twitter.com/yXBVf0044e
— 夏メ│Natsume (@natsume_717b) November 14, 2023
ぜひこの記事を参考にトライしてみてくださいね。
以下は目次になります。
processor_listでカスタムストラクチャーを装飾する
processor_listとは、カスタムストラクチャーの生成時に装飾を行うためのものになります。
装飾とは言いましたが、生成時に指定した加工や処理を行うイメージですね。
ランダムに古びさせたり、周囲の特定のブロックを守ったりすることなどが可能となっています。
実際にやってみたものが以下のものです。
1枚目は泥レンガの生成が生成されないようにしたため、所々に穴が空いています。
2枚目は古びるようにしたので、所々苔むした石レンガ由来のブロックに置き換わっています。
こういったことができるようになるので、自然な風に生成させたい場合はprcessor_listは重要と言えますね。
processor_listの使いかた
processer_listはデータパックに作成します。
適切な位置に適切な内容を書きこむことで機能し、templete_poolに格納されているjsonファイルにて、作成したprocessor_listを指示します。
データパックの構造
まずはファイル構造から見ていきましょう。
- datapack本体
- data
- フォルダ
(今回はntmと命名したとする)- structures
- 各nbtファイル
- worldgen
- processor_list
- jsonファイル
- template_pool
- jsonファイル
- structure
- jsonファイル
- structure_set
- jsonファイル
- processor_list
- structures
- フォルダ
- pack.mcmeta
- data
pack.mcmetaとjsonファイル、nbtファイル以外は全てフォルダになります。
橙文字がprocessor_listに関する部分で、緑文字の部分がprocessor_listを指示するjsonファイルになります。
processor_listに格納されているjsonファイル
processor_listに格納されているjsonファイルの中身の一例を見ていきましょう。
{
"processors": [
{
"processor_type": "minecraft:block_age",
"mossiness": 0.5
}
]
}
上記は生成物の一部を古びさせるための記述となっています。
minecraft:block_ageを選択することで、石や階段、塀などが一定の確率で別のブロックになります。
詳しくは構造物のカスタマイズを参考にしてください。
processor_typeで古びさせるよう指示しており、他の項目を指示すれば別の処理がされます。
また、mossinessは置き換えたブロックを苔むしたものにするかどうかの確率です。
上記は0.5とあるので、50%の確率で苔むしたものになります。
操作できる設定は項目ごとに異なるので、生成サイトを使うことをおすすめします。
processor_typeで指示できる各項目の説明は、以下の表をどうぞ。
項目名 | 説明 |
---|---|
minecraft:rule | 複雑な設定をしつつ、ブロックの置き換えが可能。 要検証。 |
minecraft:block_rot | 指定したブロックを指定した確率で生成されないようにする。 生成されるものとしては、壊れかけな建造物のようなイメージ。 |
minecraft:block_age | 石系のブロックや塀、階段などを石レンガや苔むした石レンガなどの各種ブロックに一定確率で置き換える。 |
minecraft:block_ignore | 指定したブロックをないものとして生成する。 |
minecraft:gravity | 指定した高度マップに則って、カスタムストラクチャーを生成する。 |
minecraft:protected_blocks | カスタムストラクチャー生成時に、指定したブロックを上書きしない(壊さない)よう生成する。 |
minecraft:blackstone_replace | 石レンガを深層岩レンガに、鉄格子を鎖に置き換える。 |
minecraft:lava_submerged_block | 要検証。 |
minecraft:jigsaw_replacement | 要検証。 |
minecraft:capped | 指定した数までブロックを置き換える。 置き換えるブロックの設定はruleの時と同様だと思われる。 |
minecraft:nop | 何の処理もしない。 必要なのかはよく分からない。 |
template_poolに格納されているjsonファイル
template_poolに格納されているjsonファイルは以下のようになっています。
ファイル構造などを同じにする必要があるため、基本的にはコピペして使うことはできません。
{
"elements": [
{
"element": {
"element_type": "minecraft:legacy_single_pool_element",
"location": "ntm:entrance",
"processors": "minecraft:empty",
"projection": "rigid"
},
"weight": 50
},
{
"element": {
"element_type": "minecraft:legacy_single_pool_element",
"location": "ntm:corridor_short01",
"processors": "ntm:test",
"projection": "rigid"
},
"weight": 5
},
{
"element": {
"element_type": "minecraft:legacy_single_pool_element",
"location": "ntm:corridor_short02",
"processors": "ntm:test",
"projection": "rigid"
},
"weight": 5
},
{
"element": {
"element_type": "minecraft:legacy_single_pool_element",
"location": "ntm:corridor_short03",
"processors": "ntm:test",
"projection": "rigid"
},
"weight": 5
},
{
"element": {
"element_type": "minecraft:legacy_single_pool_element",
"location": "ntm:corridor_sp01",
"processors": "minecraft:empty",
"projection": "rigid"
},
"weight": 5
},
{
"element": {
"element_type": "minecraft:legacy_single_pool_element",
"location": "ntm:tshaped02",
"processors": "ntm:test",
"projection": "rigid"
},
"weight": 5
}
],
"fallback": "minecraft:empty"
}
橙文字の部分がprocessor_listに格納されているjsonファイルを指示しています。
項目名がprocessorsとなっているので、分かりやすいですね。
ここまでカスタムストラクチャーを作成出来れば説明も不要かと思いますが、ntmというフォルダのprocessor_listに格納されているtest.jsonを指示しています。
minecraft:emptyという記述の場合は、何もしない処理をするときに指示するものです。
このtemplete_poolの作成方法は【マイクラ】ジグソーブロックの使い方!オリジナルの構造物を呼び出そう!という記事で説明していますので、よければ参考にしてください。
ともあれ、これで生成時にprocessor_listを適用させて加工処理をすることができるようになります。
まとめ
というわけで、今回のまとめです。
- processor_listを用いることで、カスタムストラクチャーを生成する際に指示した加工をしながら生成できる。
- processor_listはデータパック内にあり、作成後template_poolの中にあるjsonファイルで指示してあげる必要がある。
この記事は以上になります。
2016年からマイクラを楽しんでおり、最近はクリエイティブモードでコマンドを駆使して遊んでいます!