生成物(英:Feature)は生成されたチャンクを中心に最大3×3チャンク程度のサイズの小規模な装飾物をワールドに生成する機構である。ワールド生成の際にチャンク毎に配置される。例えば木や鉱石の塊、砂漠の井戸やダンジョンが生成物に該当する。
この記事では、データパックを介して自由に生成物をカスタマイズするための情報について解説する。
概説[]
生成物の設定には2段階あり、その形状や使用するブロックなどを決定する「構成設定済みの生成物」(Configured feature)と、これにさらに配置の条件を規定する配置修飾子を組み込んだ「配置設定済みの生成物」(Placed feature)がある。
配置された生成物は、バイオームの featuresや構成要素プールの elementsで指定することで実際にバイオームや構造物内に生成させることができる。
また構成された生成物も/place
を用いて配置することができる。
生成物の種類[]
生成物の種類(英:Feature type)は、生成物がどのように生成されるかを規定している。生成物の種類によって、構成された生成物のJSONフォーマットや必要なプロパティが、生成物の大まかな形状が異なる。
生成物の種類一覧[]
生成物の種類のIDは以下の通り。
no_op
- 何もしない。既存の構成された生成物を上書きするのに使用できる。bamboo
basalt_columns
- 玄武岩の三角州に見られるような、玄武岩の足場を生成する。basalt_pillar
- ソウルサンドの谷に見られるような、玄武岩の柱を生成する。block_column
- ブロックの柱を生成する。block_pile
- ブロックの塊を生成する。blue_ice
bonus_chest
chorus_plant
coral_claw
coral_mushroom
coral_tree
delta_feature
- 玄武岩の三角州に見られるような、小さな池を生成する。desert_well
disk
- 現在のブロックが水である場合に限り、指定された半径と厚さで円形にブロックを配置する。dripstone_cluster
end_gateway
end_island
end_spike
- ジ・エンドの中心部で見られる、黒曜石の柱を生成する。fill_layer
- 広さ16×16・高さ1のブロックの層を生成して空気を置換する。スーパーフラットのワールドで使用される。flower
forest_rock
- 苔石の岩のような生成物を生成する。fossil
- 構造物テンプレートを配置できる。freeze_top_layer
- 氷雪バイオームおよび冷帯バイオームの一定気温以下の領域の地表に雪や氷を生成する。geode
- ジオードを生成する。glowstone_blob
huge_brown_mushroom
- 巨大キノコの形の生成物を生成する。huge_fungus
- ネザー版巨大キノコの形の生成物を生成する。huge_red_mushroom
- 巨大赤キノコの形の生成物を生成する。iceberg
ice_spike
kelp
lake
large_dripstone
monster_room
multiface_growth
- ヒカリゴケ あるいは スカルクヴェインを生成する。nether_forest_vegetation
netherrack_replace_blobs
- 対象のブロック内に、与えられた半径で別のブロックの塊を生成する。対象のブロックがその位置で検出されなかった場合には、発見できるまで降下する。no_bonemeal_flower
ore
- 鉱石の塊を生成する。pointed_dripstone
random_boolean_selector
- 2種類の生成物のうちどちらかを等確率で選択する。random_selector
- リスト内から、指定された確率で生成物を選択する。random_patch
- 指定した範囲にランダムに配置設定済みの生成物を散開させる。replace_single_block
-target
に該当する単一のブロックを、リスト内のstates
で指定したブロックで置換する。root_system
- 別の生成物の下に根を生成する。生成の起点は根の下側である。scattered_ore
- やや散らばった鉱石の塊を生成させる。sculk_patch
seagrass
sea_pickle
simple_block
- ブロックを1つ設置する。simple_random_selector
- リスト内から等確率で生成物を選択する。spring_feature
- 滝を生成する。tree
twisting_vines
underwater_magma
vegetation_patch
- 植物の生えた領域を生成する。vines
void_start_platform
waterlogged_vegetation_patch
- 植物の生えた領域を生成する。設置部のブロックを水没させる場合もある。weeping_vines
生成物の構成[]
生成物の生成形式は生成物の種類によって大まかに決定されるが、実際に形状が定まるには詳細の構成が必要である。構成された後の生成物は、構成設定済みの生成物または単に生成物と呼ばれる。
構成された生成物は、データパック内のdata/<namespace>/worldgen/configured_feature内にJSONファイルとしてそれぞれ保存する。
JSONフォーマット[]
構成された生成物は、以下のJSONフォーマットで保存されている。
- : 最上位のオブジェクト。
- type: 生成物の種類のID.
- config: この構成された生成物の構成内容。プロパティの内容は typeで指定した生成物の種類によって異なり、その内容は以下に記載した通りである。なお以下に記載されていない生成物の種類に関しては構成内容を持たないが、空の
config
は必須である。
basalt_columns
の場合:- reach: 玄武岩の柱の塊の最大半径。0以上3以下の整数で指定する。
- 整数プロバイダー
- height: 柱の最大高さを指定する。
height + 1
が実際の最大高さとなり、1以上10以下の整数で指定する。- 整数プロバイダー
- reach: 玄武岩の柱の塊の最大半径。0以上3以下の整数で指定する。
block_column
の場合:- direction: ブロックの柱の方向。
up
、down
、north
、east
、south
、west
から指定する。 - allowed_placement: この生成物を生成するために通過が必要なブロックの述語条件(プレディケート)。
- ブロックプレディケート
- prioritize_tip: 空間が制限されている際に、ブロックを省略するかどうかを指定する。
true
に設定されている場合は、ブロックの柱の起点から層を削除し始める。 - layers:(必須だが空白でも可)この柱の部分部分を列挙したリスト。ここで指定した部分部分が順に重なって柱となる。
- : 一つの部分。
- height: この部分の長さ。非負整数でなければならない。
- 整数プロバイダー
- provider: この部分に使用するブロックのデータ。
- ブロック状態設定
- height: この部分の長さ。非負整数でなければならない。
- : 一つの部分。
- direction: ブロックの柱の方向。
block_pile
の場合:- state_provider: 使用するブロック
- ブロック状態設定
- state_provider: 使用するブロック
delta_feature
の場合:disk
の場合:- state_provider: 使用するブロック。
- fallback: rulesの述語条件(プレディケート)全てに該当しなかった際に生成するブロック。
- ブロック状態設定
- rules:(必須だが空でも可)この生成物の種類は「この条件を満たす場合はこのブロックを生成する」という方式で使用するブロックを決定する。このリストは、その条件とブロックの組のリストである。
- : それぞれの組。
- if_true: thenで指定したブロックが使用されるための条件。
- ブロックプレディケート
- then: 条件を通過した際に生成するブロックのデータ。
- ブロック状態設定
- if_true: thenで指定したブロックが使用されるための条件。
- : それぞれの組。
- fallback: rulesの述語条件(プレディケート)全てに該当しなかった際に生成するブロック。
- radius: このディスクの半径。整数生成子の結果は0以上8以下の値でなければならない。
- 整数プロバイダー
- half_height: このディスクの半分の高さ。整数生成子の結果は0以上4以下の値でなければならない。
- target: この生成物が生成されるために通過が必要な述語条件(プレディケート)。
- ブロックプレディケート
- state_provider: 使用するブロック。
dripstone_cluster
の場合:- floor_to_ceiling_search_range: 生成物の生成の際に天井や床を探す範囲。1以上512以下の値で指定する。
- height: 鍾乳石クラスターの範囲の高さ。整数生成子の結果の値は1以上128以下でなければならない。
- 整数プロバイダー
- radius: 鍾乳石クラスターの範囲の半径。整数生成子の結果の値は1以上128以下でなければならない。
- 整数プロバイダー
- max_stalagmite_stalactite_height_diff: 石筍と鍾乳石の高さの差の最大値。0以上64以下の整数で指定する。
- height_deviation: 一本一本の鍾乳石・石筍の高さの偏差。1以上64以下の整数で指定する。
- dripstone_block_layer_thickness: 地面や天井を置換する鍾乳石ブロックの層の厚さ。整数生成子の結果の値は0以上128以下でなければならない。
- 整数プロバイダー
- density: 鍾乳石の密度。単精度浮動小数点数生成子の結果の値は0.0以上2.0以下でなければならない。
- 単精度浮動小数点数生成子
- wetness: 鍾乳石ブロックの層の部分に水が生成する確率に関係する値だと思われる。単精度浮動小数点数生成子の結果の値は0.0以上2.0以下でなければならない。
- 単精度浮動小数点数生成子
- chance_of_dripstone_column_at_max_distance_from_center:0.0以上1.0以下の値で指定する。
- max_distance_from_edge_affecting_chance_of_dripstone_column: 1以上64以下の整数で指定する。
- max_distance_from_center_affecting_height_bias: 1以上64以下の整数で指定する。
end_gateway
の場合:- exact: ゲートウェイの転送先が特定の座標か否か。バニラのゲーム内では、エンダードラゴン討伐時に生成されるゲートウェイは
false
、外縁部に自然生成されるゲートウェイはtrue
となっている。 - exit: (任意) exactが
true
の際のゲートウェイの転送先。- : X座標。
- : Y座標。
- : Z座標。
- exact: ゲートウェイの転送先が特定の座標か否か。バニラのゲーム内では、エンダードラゴン討伐時に生成されるゲートウェイは
end_spike
の場合:- crystal_invulnerable:(任意、デフォルトは
false
)頂部のエンドクリスタルを破壊不能にするかどうか。 - crystal_beam_target:(任意)生成時のビームの先の座標。
- : X座標。
- : Y座標。
- : Z座標。
- spikes:各柱の設定。必須だが空でも良く、空の場合はランダムな設定で柱を生成する。
- :一つ一つの柱の設定。
- centerX:(任意、デフォルトは0)柱の中心のX座標。
- centerZ:(任意、デフォルトは0)柱の中心のZ座標。
- radius:(任意、デフォルトは0)柱の半径。
- height:(任意、デフォルトは0)柱の高さ。
- guarded:(任意、デフォルトは0)エンドクリスタルの周囲に鉄格子を生成するかどうか。
- :一つ一つの柱の設定。
- crystal_invulnerable:(任意、デフォルトは
fill_layer
の場合:- state:置換に使用するブロック。
- ブロック状態
- height:ワールドの底から起算した、この生成物が置換する層。0以上4096以下の整数で指定する。
- state:置換に使用するブロック。
flower
、no_bonemeal_flower
、random_patch
の場合:- tries:(任意、デフォルトは128)生成試行回数。正整数でなければならない。
- xz_spread:(任意、デフォルトは7)水平方向の範囲。非負整数でなければならない。
- y_spread:(任意、デフォルトは3)垂直方向の範囲。非負整数でなければならない。
- feature:どの配置された生成物を生成するか。配置された生成物のIDまたは配置された生成物のオブジェクトで指定する。
forest_rock
の場合:- state:使用するブロック。
- ブロック状態
- state:使用するブロック。
fossil
の場合:- fossil_structures:(空白不可)化石の構造物テンプレートのリスト。この中から一つ選んで生成する。
- : 一つ一つの化石の構造物テンプレートのパス。data\<名前空間>\structureより下から記述する。
- overlay_structures:(空白不可)オーバーレイの構造物テンプレートのリスト。この中から一つ選んで使用する。 fossil_structuresの上に使用され、重なる部分は上書きされる。 fossil_structuresと長さを揃える必要がある。
- : 一つ一つのオーバーレイの構造物テンプレートのパス。data\<名前空間>\structureより下から記述する。
- fossil_processors:化石の構造物テンプレートに使用するプロセッサーのリスト。プロセッサーのID、リスト、またはプロセッサーリストのオブジェクトで指定する。
- overlay_processors:オーバーレイの構造物テンプレートに使用するプロセッサーのリスト。プロセッサーのID、リスト、またはプロセッサーリストのオブジェクトで指定する。
- max_empty_corners_allowed: 構造体の角が幾つまで空白となってよいかを指定する。これは、化石が空中に生成されるのを防ぐとともに、化石の露出確率を調整するために使用できる。
- fossil_structures:(空白不可)化石の構造物テンプレートのリスト。この中から一つ選んで生成する。
geode
の場合:- blocks: 使用するブロック。
- filling_provider: 中心部(アメジストジオードの空気の部分)に使用するブロック。
- ブロック状態設定
- inner_layer_provider: 内殻(アメジストブロックの部分)に使用するブロック。
- ブロック状態設定
- alternate_inner_layer_provider: 内殻を一定確率で置換するブロック(芽生えたアメジストの部分)。
- ブロック状態設定
- middle_layer_provider: 中間殻(方解石の部分)に使用するブロック。
- ブロック状態設定
- outer_layer_provider: 外殻(滑らかな玄武岩の部分)に使用するブロック。
- ブロック状態設定
- inner_placements:(空白不可)晶洞の内部表面に設置されるブロックのリスト(アメジストの芽、塊の部分)。
- それぞれのブロック名とブロック状態。
- ブロック状態
- それぞれのブロック名とブロック状態。
- cannot_replace: この生成物の生成時に置換できないブロックのブロックタグ。
- invalid_blocks: 無効なブロックのブロックタグ。現在バグにより、何の値を使用しても
#minecraft:geode_invalid_blocks
を入力したものとして扱われる。ここで指定しているものに加え、空気はデフォルトで無効なブロックである。
- filling_provider: 中心部(アメジストジオードの空気の部分)に使用するブロック。
- layers: 各層の最大半径を指定する値。単位はブロックはないが、指定した値と最大半径は正の連関にある。
- filling:(任意、デフォルトは1.7)中心部の半径。0.01以上50以下の値で指定する。
- inner_layer: (任意、デフォルトは2.2)内殻の半径。0.01以上50以下の値で指定する。
- middle_layer:(任意、デフォルトは3.2)中間殻の半径。0.01以上50以下の値で指定する。
- outer_layer: (任意、デフォルトは4.2)外殻の半径。0.01以上50以下の値で指定する。
- crack: 晶洞の亀裂の設定。
- generate_crack_chance:(任意、デフォルトは1.0)亀裂を生成する確率。0.0以上1.0以下の値で指定する。
- base_crack_size:(任意、デフォルトは2)亀裂のサイズに関連する値。0.0以上5.0以下の値で指定する。
- crack_point_offset:(任意、デフォルトは2)亀裂の場所のズレに関連する値。0以上10以下の整数で指定する。
- noise_multiplier:(任意、デフォルトは0.05)生成に使用するノイズの倍率。0.0以上1.0以下の値で指定する。
- use_potential_placements_chance:(任意、デフォルトは0.35) inner_placementsで指定したブロックの生成確率。0以上1以下の値で指定する。
- use_alternate_layer0_chance:(任意、デフォルトは0.0) alternate_inner_layer_providerで指定したブロックの生成確率。0以上1以下の値で指定する。
- placements_require_layer0_alternate:(任意、デフォルトはtrue) inner_placementsで指定したブロックが、 alternate_inner_layer_providerで指定したブロック上にのみ生成されるようにするかどうか。
- outer_wall_distance:(任意、デフォルトでは4以上5以下の範囲で等確率に整数を生成)生成物の起点からのズレ。1以上20以下の整数で指定する。
- 整数プロバイダー
- distribution_points:任意、デフォルトでは3以上4以下の範囲で等確率に整数を生成)1以上20以下の整数で指定する。
- 整数プロバイダー
- invalid_blocks_threshold: 生成時に
distribution_points
回だけ晶洞生成予定地の周囲のブロックを確認するが、その際にこれ以上無効なブロックが検出されたら生成を破棄する、というように使用される閾値。 - point_offset: (任意、デフォルトでは1以上2以下から均一確率で整数を生成)1以上10以下の整数値。
- 整数プロバイダー
- min_gen_offset:(任意、デフォルトでは-16)ブロックと中心のチェビシェフ距離の最小値。
- max_gen_offset: (任意、デフォルトでは16)ブロックと中心のチェビシェフ距離の最大値。
- blocks: 使用するブロック。
huge_brown_mushroom
or huge_red_mushroom
の場合:- cap_provider: 笠の部分に使用するブロック。
- ブロック状態設定
- stem_provider: 茎の部分に使用するブロック。
- ブロック状態設定
- foliage_radius: (任意、デフォルトでは2)笠のサイズ。
- cap_provider: 笠の部分に使用するブロック。
huge_fungus
の場合:- hat_state: 笠(ネザーウォートの部分)に使用するブロック。
- ブロック状態
- decor_state: 装飾(シュルームライトの部分)に使用するブロック。
- ブロック状態
- stem_state: 幹に使用するブロック。
- ブロック状態
- valid_base_block: この生成物が生えることのできる地面のブロック。
- ブロック状態
- planted: (任意、デフォルトでは
false
)このネザーの巨大キノコが、人為的に植えられたものかどうか。false
の場合はネザーの天井を超えて伸びることはできず、材質がplant
であるブロックのみを置換でき、ブロックを置換した際にそのブロックからアイテムをドロップさせない。 - replaceable_blocks: この生成物がブロックを置換する際に、そのブロックが置換されうるために必要な述語条件(プレイディケート)。
- ブロックプレディケート
- hat_state: 笠(ネザーウォートの部分)に使用するブロック。
iceberg
の場合:- state: 使用するブロック。
- ブロック状態
- state: 使用するブロック。
lake
の場合:- fluid: 湖の液体部に使用するブロック。下記のブロック状態の設定のように、複数のブロックを指定することができるが、その中から1つのみが使用される。
- ブロック状態設定
- barrier: 湖の縁に使用するブロック。下記のブロック状態の設定のように、複数のブロックを指定することができるが、その中から1つのみが使用される。
- ブロック状態設定
- fluid: 湖の液体部に使用するブロック。下記のブロック状態の設定のように、複数のブロックを指定することができるが、その中から1つのみが使用される。
large_dripstone
の場合:- floor_to_ceiling_search_range:(任意、デフォルトは30)生成の起点から洞窟の床や天井となる地点を捜索する最大範囲。1以上512以下の整数で指定する。
- column_radius: 柱の半径の最大値・最小値を与える整数生成子。有効な値の範囲は1以上60以下。詳細のグラフはこちらを参照。
- 整数プロバイダー
- height_scale: 柱の高さを与える値。実際のブロック数とは値が異なるが正の連関を持つ。有効な値の範囲は0.0以上20.0以下。
- 単精度浮動小数点数生成子
- max_column_radius_to_cave_height_ratio: 洞窟の高さに対する最大半径の比。有効な値の範囲は0.0以上1.0。
- stalactite_bluntness: 鍾乳石の先端をどの程度切除するか。有効な値の範囲は0.1以上10.0以下。
- 単精度浮動小数点数生成子
- stalagmite_bluntness: 石筍の先端をどの程度切除するか。有効な値の範囲は0.1以上10.0以下。
- 単精度浮動小数点数生成子
- wind_speed: 鍾乳石・石筍の傾きの程度。有効な値の範囲は0.0以上2.0以下。
- 単精度浮動小数点数生成子
- min_radius_for_wind: 傾きが適用されるための最小の柱の半径。有効な値の範囲は0以上100以下。
- min_bluntness_for_wind: 傾きが適用されるための最小の切除程度の値。有効な値の範囲は0.0以上5.0以下。
multiface_growth
の場合:- block:(任意、デフォルトでは
glow_lichen
)使用するブロックの種類。現在は、glow_lichen
からsculk_vein
のみが使用できる。 - search_range:(任意、デフォルトでは10)有効な値の範囲は1以上64以下。
- chance_of_spreading:(任意、デフォルトでは0.5)ブロックが増えて生成する確率。0.0以上1.0以下の値で指定する。
- can_place_on_floor:(任意、デフォルトではfalse)ブロックの上面に設置されうるかどうか。
- can_place_on_ceiling:(任意、デフォルトではfalse)ブロックの下面に設置されうるかどうか。
- can_place_on_wall:(任意、デフォルトではfalse)ブロックの側面に設置されうるかどうか。
- can_be_placed_on:設置されうるブロックのIDやタグ、およびそのリスト。
- block:(任意、デフォルトでは
nether_forest_vegetation
の場合:- state_provider:使用するブロック。
- ブロック状態設定
- spread_width:生成範囲の水平方向の広さ。最大幅は
spread_width * 2 -1
となり、正整数で指定する。 - spread_height:生成範囲の垂直方向の広さ。最大幅は
spread_height * 2 -1
となり、正整数で指定する。
- state_provider:使用するブロック。
netherrack_replace_blobs
の場合:- state:使用するブロック。
- ブロック状態
- target:置換するブロック。
- ブロック状態
- radius:塊の半径。有効な値の範囲は0以上12以下。
- 整数プロバイダー
- state:使用するブロック。
ore
or scattered_ore
の場合:pointed_dripstone
の場合:- chance_of_taller_dripstone:(任意、デフォルトは0.2)鍾乳石が2ブロックとなる可能性。有効な値の範囲は0.0以上1.0以下。
- chance_of_directional_spread:(任意、デフォルトは0.7)鍾乳石が水平方向に広がる確率。有効な値の範囲は0.0以上1.0以下。
- chance_of_spread_radius2:(任意、デフォルトは0.5)鍾乳石が2ブロック水平方向に広がる確率。有効な値の範囲は0.0以上1.0以下。
- chance_of_spread_radius3:(任意、デフォルトは0.5)鍾乳石が3ブロック水平方向に広がる確率。有効な値の範囲は0.0以上1.0以下。
random_boolean_selector
の場合:random_selector
の場合:- features:(必須だが空でも可)選択候補となる配置された生成物のリスト。リストの一番目からそれぞれ指定された確率に従って生成試行を行い、生成が成功するかリストの最後に達するまで続ける。
- 生成物とその生成確率のデータ。
- feature:生成したい配置された生成物。配置された生成物のIDか、配置された生成物のオブジェクトで記述する。
- chance: 順番が回ってきた際にこの生成物が生成される確率。
- 生成物とその生成確率のデータ。
- default: リスト内の全ての生成物が生成に失敗した際に生成する配置された生成物。配置された生成物のIDか、配置された生成物のオブジェクトで記述する。
- features:(必須だが空でも可)選択候補となる配置された生成物のリスト。リストの一番目からそれぞれ指定された確率に従って生成試行を行い、生成が成功するかリストの最後に達するまで続ける。
replace_single_block
の場合:- targets:(必須だが空でも可)置換元のブロックの条件と、それに対応する置換先のブロックの組。
- : それぞれの組。
- target: 置換元のブロックの条件。
- ruleの条件
- state: targetを満たした際に生成するブロック。
- ブロック状態
- target: 置換元のブロックの条件。
- : それぞれの組。
- targets:(必須だが空でも可)置換元のブロックの条件と、それに対応する置換先のブロックの組。
root_system
の場合:- required_vertical_space_for_tree:根の上に必要な空間に関係していると思われる[情報提供依頼]。有効な値の範囲は1以上64以下。
- root_radius:有効な値の範囲は1以上64以下。
- root_placement_attempts:生成試行回数。有効な値の範囲は1以上256以下。
- root_column_max_height:根の柱の最大長さ。有効な値の範囲は1以上4096以下。
- hanging_root_radius: hanging_root_state_providerで指定したブロックの生成されうる範囲の半径。有効な値の範囲は1以上64以下。
- hanging_roots_vertical_span: hanging_root_state_providerで指定したブロックの生成されうる垂直方向の範囲。起点は根の柱の先端から。有効な値の範囲は0以上16以下。
- hanging_root_placement_attempts:有効な値の範囲は1以上256以下。
- allowed_vertical_water_for_tree:有効な値の範囲は1以上64以下。
- root_replaceable: この根の柱が置換可能なブロックを含むタグ。
#
を前置して表記したブロックタグ。 - root_state_provider: この根の柱を構成するブロックを指定する。
- ブロック状態設定
- hanging_root_state_provider: この根の下に垂れるブロックを指定する。
- ブロック状態設定
- allowed_tree_position: 木の生成位置が有効かどうかを検査する述語条件(プレディケート)。
- ブロックプレディケート
- feature: 根の柱の上に生成される配置された生成物。配置された生成物のIDか、配置された生成物のオブジェクトで指定する。
sculk_patch
の場合:- charge_count: スカルク系ブロックの伝播に使用するための泡沫の個数。有効な値の範囲は1以上32以下。
- amount_per_charge: ひとつひとつの泡沫が持つ力の初期量。有効な値の範囲は1以上500以下。
- spread_attempts: 伝播の試行回数。有効な値の範囲は1以上64以下。
- growth_rounds: 生成の回数。有効な値の範囲は0以上8以下。
- spread_rounds: 伝播の回数。有効な値の範囲は0以上8以下。
- extra_rare_growths: 追加でスカルクシュリーカーが生成される個数。
- 整数プロバイダー
- catalyst_chance: スカルクカタリストの生成確率。有効な値の範囲は0.0以上1.0以下。
sea_pickle
の場合:- count: シーピクルスブロックの数。シーピクルス一個一個ではなくブロック単位でカウントする為、一つのブロックに複数重なっていてもこれには計上されない。有効な値の範囲は0以上256以下。
- 整数プロバイダー
- count: シーピクルスブロックの数。シーピクルス一個一個ではなくブロック単位でカウントする為、一つのブロックに複数重なっていてもこれには計上されない。有効な値の範囲は0以上256以下。
seagrass
の場合:- probability: 普通の海草の代わりに、背の高い海草が生成される確率。有効な値の範囲は0.0以上1.0以下。
simple_block
の場合:- to_place: 使用するブロック。
- ブロック状態設定
- to_place: 使用するブロック。
simple_random_selector
の場合:- features:(リストの場合は空は不可)選択元の生成物の一覧。配置された生成物のID、オブジェクト、および配置された生成物のIDかオブジェクトのリスト。
spring_feature
の場合:- state: 生成する液体。
- ブロック状態
- rock_count: (任意、デフォルトで4)源泉の生成に必要な、源泉と接する
valid_blocks
に属するブロックの数の必要要件。 - hole_count:(任意、デフォルトで1)源泉の生成に必要な、源泉と接する空気ブロックの数の必要要件。
- requires_block_below:(任意、デフォルトでtrue)
valid_blocks
に属するブロックが源泉の下面に接しているかどうかを確認するか否か。 - valid_blocks: ブロックのIDないしブロックタグのリスト。
- state: 生成する液体。
tree
の場合:- ignore_vines:(任意、デフォルトでfalse)木の生成時に邪魔なツタを無視できるかどうか。
- force_dirt:(任意、デフォルトでfalse)
true
の場合、木の下のブロックが土系のブロックであろうとなかろうと強制的に dirt_providerで指定したブロックを生成する。 - dirt_provider: 幹の下に生成するブロック。
force_dirt
がtrue
の場合、もしくは幹の下のブロックが有効な土系のブロックでない場合にこのブロックが幹の下に生成される。- ブロック状態設定
- trunk_provider: 幹に使用するブロック。 trunk_placerの typeが
fancy_trunk_placer
の場合には、ここで指定するブロックは原木など、ブロック状態axis
を持つブロックでなければならない。- ブロック状態設定
- foliage_provider: 葉に使用するブロック。
- ブロック状態設定
- minimum_size: 木の生成に必要な最低限の空間の広さを指定しているオブジェクト。
- min_clipped_height:(任意)生成しようとしている木の幹の高さがその場所で可能な高さの上限を超えてしまっていても、高さ上限がこの値より大きければ強制的に木を生成する、という値。この値を指定しない場合は、木の幹の高さがその場所で可能な高さ上限を超えている場合は必ず木は生成されない。またこの値よりも高さ上限が下回る場合にも、木は生成されない。有効な値の範囲は0以上80以下。
- type: 木の水平方向の空間要件を指定する際に、木を何層に分けて指定するかを決定する値。
two_layers_feature_size
かthree_layers_feature_size
が使用できる。type
がtwo_layers_feature_size
の場合、追加フィールドは次の通り。
- limit:(任意、デフォルトで1)木の幹の一番下のブロックから起算した、上層と下層の分かれ目となる高さ。この値未満の高さの場所では
lower_size
が、この値以上の場所ではupper_size
が使用される。有効な値の範囲は0以上81以下。 - lower_size:(任意、デフォルトで0)
limit
未満の高さにおける、木の必要空間の正方形の一辺の長さ。有効な値の範囲は0以上16以下。 - upper_size:(任意、デフォルトで1)
limit
以上の高さにおける、木の必要空間の正方形の一辺の長さ。有効な値の範囲は0以上16以下。type
がthree_layers_feature_size
の場合、追加フィールドは次の通り。
- limit:(任意、デフォルトで1)木の幹の一番下のブロックから起算した、中層と下層の分かれ目となる高さ。この値未満の高さの場所では
lower_size
が、この値以上の場所ではmiddle_size
が使用される。有効な値の範囲は0以上80以下。 - upper_limit:(任意、デフォルトで1)木の幹の一番下のブロックから起算した、上層と中層の分かれ目となる高さ。この値未満の高さの場所では
middle_size
が、この値以上の場所ではupper_size
が使用される。有効な値の範囲は0以上80以下。 - lower_size:(任意、デフォルトで0)
limit
未満の高さにおける、木の必要空間の正方形の一辺の長さ。有効な値の範囲は0以上16以下。 - middle_size:(任意、デフォルトで1)
limit
以上upper_limit
未満の高さにおける、木の必要空間の正方形の一辺の長さ。有効な値の範囲は0以上16以下。 - upper_size:(任意、デフォルトで1)
upper_limit
以上の高さにおける、木の必要空間の正方形の一辺の長さ。有効な値の範囲は0以上16以下。
- root_placer:(任意)木の根の生成方式を規定するフィールド。
- type: 根の生成方式の種類。現在はマングローブの木の根のような形状を生成する
mangrove_root_placer
のみが使用できる。 - root_provider: 根に使用するブロック。
- ブロック状態設定
- trunk_offset_y: 幹に対する根の垂直方向のズレ。
- 整数プロバイダー
- above_root_placement:(任意)根の上面に生成されるブロック(例:苔のカーペット)を規定するフィールド。
- above_root_provider: 使用するブロック。
- ブロック状態設定
- above_root_placement_chance: 根の上にそのブロックが生成される確率。有効な値の範囲は0.0以上1.0以下。
type
がmangrove_root_placer
の場合、以下の追加のフィールドを持つ。
- above_root_provider: 使用するブロック。
- mangrove_root_placement: マングローブの支柱根を設置するためのパラメータ。
- max_root_width: 根の水平方向への広がりの最大値。有効な値の範囲は1以上12以下。
- max_root_length: 根の鉛直方向への長さの最大値。有効な値の範囲は1以上64以下。
- random_skew_chance: 根が斜めに曲がる(本来鉛直である根が途中で一ブロック横にずれる)確率。有効な値の範囲は0.0以上1.0以下。
- can_grow_through: 根が生成時に置換できるブロック。ブロックIDやブロックタグ、ないしブロックIDのリストで指定する。
- muddy_roots_in: 置換時に、根が muddy_roots_providerで指定したブロックとして生成されるブロック。ブロックIDやブロックタグ、ないしブロックIDのリストで指定する。
- muddy_roots_provider: muddy_roots_inで指定したブロックを置換した際に代わりに生成するブロック。
- ブロック状態設定
- type: 根の生成方式の種類。現在はマングローブの木の根のような形状を生成する
- trunk_placer: 木の幹の生成方式を規定するフィールド。
- base_height: 幹の高さの基底値。有効な値の範囲は0以上32以下。
- height_rand_a: 追加の幹の高さ。0以上この値以下のランダムな値が、基底値に上乗せされる。有効な値の範囲は0以上24以下。
- height_rand_b: 追加の幹の高さ。0以上この値以下のランダムな値が、基底値にさらに上乗せされる。有効な値の範囲は0以上24以下。
- type: 木の幹の生成方式。
straight_trunk_placer
、forking_trunk_placer
、giant_trunk_placer
、mega_jungle_trunk_placer
、dark_oak_trunk_placer
、fancy_trunk_placer
、bending_trunk_placer
、upwards_branching_trunk_placer
およびcherry_trunk_placer
の何れかが使用できる。type
がbending_trunk_placer
の場合、以下の追加のフィールドを持つ。これはバニラではazalea_tree
で使用される。
- bend_length:曲がった先の幹の長さ。有効な値の範囲は1以上64以下。
- 整数プロバイダー
- min_height_for_leaves:(任意、デフォルトで1)正整数で指定する。
type
がupwards_branching_trunk_placer
の場合、以下の追加のフィールドを持つ。これはバニラではmangrove
tall_mangrove
で使用される。
- extra_branch_steps: 追加の枝の生成する回数。正整数で指定する。
- 整数プロバイダー
- extra_branch_length: 追加の枝の長さを決定する。非負整数でなければならない。
- 整数プロバイダー
- place_branch_per_log_probability: 幹一ブロック当たりに枝が生成される確率。有効な値の範囲は0.0以上1.0以下。
- can_grow_through: 枝や幹が貫通できるブロックの一覧。ブロックIDやブロックタグ、ないしブロックIDのリストで指定する。
type
がcherry_trunk_placer
の場合、以下の追加のフィールドを持つ。
- branch_count: 生成される枝の個数。有効な値の範囲は1以上3以下。
- 整数プロバイダー
- branch_horizontal_length: 枝の水平方向への長さ。有効な値の範囲は2以上16以下。
- 整数プロバイダー
- branch_start_offset_from_top: 枝の先端と幹の先端との高さのズレ。整数生成子のタイプは
uniform
であり、-16以上0の範囲内で指定する。両方の枝に合わせるため枝の根元に2ブロック分の猶予が必要なので、max_inclusive
はmin_inclusive + 1
以上でなければならない。- 整数プロバイダー
- branch_end_offset_from_top: 枝の根元と幹の先端との高さのズレ。有効な値の範囲は-16以上16以下。
- 整数プロバイダー
- foliage_placer:葉の生成に関するデータ。
- radius: 葉の半径。
- 整数プロバイダー
- offset: 木の幹の先端から葉の最上部までの高さのズレ[要調査]。
- 整数プロバイダー
- type:
blob_foliage_placer
、spruce_foliage_placer
、pine_foliage_placer
、acacia_foliage_placer
、bush_foliage_placer
、fancy_foliage_placer
、jungle_foliage_placer
、mega_pine_foliage_placer
、dark_oak_foliage_placer
、cherry_foliage_placer
およびrandom_spread_foliage_placer
の何れかかから指定する。type
がblob_foliage_placer
、bush_foliage_placer
、fancy_foliage_placer
およびjungle_foliage_placer
の場合、以下の追加のフィールドを持つ。
- height: 葉の高さ。有効な値の範囲は0以上16以下。
- 整数プロバイダー
type
がpine_foliage_placer
の場合、以下の追加のフィールドを持つ。
- height:葉の高さ。有効な値の範囲は0以上24以下。
- 整数プロバイダー
type
がmega_pine_foliage_placer
の場合、以下の追加のフィールドを持つ。
- crown_height:樹幹の高さ。有効な値の範囲は0以上24以下。
- 整数プロバイダー
type
がrandom_spread_foliage_placer
の場合、以下の追加のフィールドを持つ。
- foliage_height:葉の高さ。有効な値の範囲は1以上512以下。
- 整数プロバイダー
type
がcherry_foliage_placer
の場合、以下の追加のフィールドを持つ。
- height: 4以上16以下の値。
- 整数プロバイダー
- corner_hole_chance: 0.0以上1.0以下の値。
- hanging_leaves_chance: 0.0以上1.0以下の値。
- hanging_leaves_extension_chance: 0.0以上1.0以下の値。
- wide_bottom_layer_hole_chance: 0.0以上1.0以下の値。
- leaf_placement_attempts:有効な値の範囲は0以上256以下。
- radius: 葉の半径。
- decorators:(必須だが空でも可)木の幹や葉に施される装飾。
- : それぞれの装飾に関するデータ。
- type: 装飾の種類。
trunk_vine
、leave_vine
、cocoa
、beehive
、alter_ground
およびattached_to_leaves
が使用できる。type
がtrunk_vine
、leave_vine
、cocoa
およびbeehive
の場合、以下の追加のフィールドを持つ。
- probability: 生成確率。有効な値の範囲は0.0以上1.0以下。
type
がalter_ground
の場合、以下の追加のフィールドを持つ。
- provider: 地面を置換するブロック。
- ブロック状態設定
type
がattached_to_leaves
の場合、以下の追加のフィールドを持つ。
- probability: 生成確率。有効な値の範囲は0.0以上1.0以下。
- exclusion_radius_xz: 装飾同士の水平方向への距離の最小値。有効な値の範囲は0以上16以下。
- exclusion_radius_y: 装飾同士の垂直方向への距離の最小値。有効な値の範囲は0以上16以下。
- required_empty_blocks: 装飾の生成に必要な空白ブロックの量。有効な値の範囲は0以上16以下。
- block_provider: 装飾として生成するブロック。
- ブロック状態設定
- directions:(空は不可)生成しうる方向のリスト。
- : 一つ一つの方向。
up
、down
、north
、south
、west
およびeast
の何れかを使用する。
- : 一つ一つの方向。
- type: 装飾の種類。
- : それぞれの装飾に関するデータ。
twisting_vines
の場合:- spread_width:生成範囲の水平方向の広さ。最大幅は
spread_width * 2 + 1
となり、正整数で指定する。 - spread_height:生成範囲の垂直方向の広さ。最大幅は
spread_height * 2 + 1
となり、正整数で指定する。 - max_height: ツタの最大長さ。最大長さは
max_height * 2
となり、正整数で指定する。
- spread_width:生成範囲の水平方向の広さ。最大幅は
underwater_magma
の場合:- floor_search_range: 生成可能な水底を捜索する範囲。有効な値の範囲は0以上512以下。
- placement_radius_around_floor: 有効な値の範囲は0以上64以下。
- placement_probability_per_valid_position: 有効な場所を発見したうえで、どの程度の確率でこの生成物を生成するか。有効な値の範囲は0.0以上1.0以下。
vegetation_patch
かwaterlogged_vegetation_patch
の場合:- surface: この生成物が生成される面の形態。
floor
かceiling
で指定する。 - depth: 深さ。有効な値の範囲は1以上128以下。
- 整数プロバイダー
- vertical_range: 垂直方向の範囲。有効な値の範囲は1以上256以下。
- extra_bottom_block_chance: 底に追加のブロックが生成される確率。有効な値の範囲は0.0以上1.0以下。
- extra_edge_column_chance: 端に追加のブロックが生成される確率。有効な値の範囲は0.0以上1.0以下。
- vegetation_chance: 生成範囲内のそれぞれのブロックに対する、植物を生成する確率。有効な値の範囲は0.0以上1.0以下。
- xz_radius: この生成物の半径。
- 整数プロバイダー
- replaceable: この生成物が置換可能なブロックを含むブロックタグ。
#
を前置して指定する。 - ground_state: この生成物の地面として使用するブロック。
- ブロック状態設定
- vegetation_feature: この生成物の上に生成する植物を決定する配置された生成物。配置された生成物のIDまたは配置された生成物のオブジェクトで指定する。
- surface: この生成物が生成される面の形態。
生成物の配置[]
構成された生成物は生成される生成物の構造や形状、使用するブロックなどを規定しているが、実際に生成物を生成するにはワールド生成にあたってどのように生成物を配置するのかを設定する「配置修飾子」(Placement modifier)が必要である。配置修飾子が設定された生成物は「配置設定済みの生成物」と呼ばれ、データパック内のdata/<名前空間>/worldgen/placed_featureにJSONファイルで保存されている。
JSONフォーマット[]
- : 最上位のオブジェクト。
- feature: この配置された生成物が生成する構成された生成物のID、ないしオブジェクト。
- placement: 配置修飾子のリスト。リストの順番に従って作用する。
- : それぞれの配置修飾子。
- type: 配置修飾子の種類。
- 以下、 typeの種類に対応したフィールドを持つ。種類とフィールドの組は次項に記載の通り。
- : それぞれの配置修飾子。
配置修飾子(Placement modifier)[]
配置修飾子は生成の初期位置を取り、単数または複数のブロックの位置を返す。ブロックの位置を返さないこともある。そしてその返された位置一つ一つに対して、生成物の生成が試行される。配置生成が何の位置も返さない場合には生成がキャンセルされ、また同じ位置が複数返された場合にはその場所が複数回試行され生成確率が上がる。ひとつの配置された生成物に対して、複数の配置修飾子を作用させることができ、リスト内の配置修飾子が順番に位置を取り込んで返すを繰り返して最終的に返された全て位置で生成試行が行われる。
配置された生成物を普通に生成する際の初期位置は生成先のチャンクの北西の一番下である。またrandom_selector
や構造物のプールで召喚された際には、元の生成物が生成されようとしていた場所が初期位置となる。
typeとフィールドの組み合わせは以下の通り。
- biome - 現在の位置のバイオームの featureにこの配置された生成物が含まれていれば現在の位置を返す。そうでなければ何も返さない。この配置設定は
random_selector
などの構成された生成物で参照された場合には使用できない。
- block_predicate_filter - プレディケートの条件を通過すれば現在の位置を返す。そうでなければ何も返さない。
- predicate: 現在の位置を検査するプレディケート。
- ブロックプレディケート
- predicate: 現在の位置を検査するプレディケート。
- carving_mask - 現在のチャンク内の、従来の洞窟の位置をすべて返す。ノイズ洞窟はこれに含まれない。
- step:
air
liquid
のいずれかで指定する。
- step:
- count - 生成の試行数を設定する。
- count: 返す個数。0以上256以下の値で指定する。
- 整数プロバイダー
- count: 返す個数。0以上256以下の値で指定する。
- count_on_every_layer - 空気、溶岩、水の境界で区切られた水平方向の層((0,0)~(16,16))から指定された数の地点を選択し、その上の位置を返す。
- count:一層当たりの選択数。0以上256以下の値で指定する。
- 整数プロバイダー
- count:一層当たりの選択数。0以上256以下の値で指定する。
- environment_scan - 現在の位置から条件にあうブロックを発見するまで上または下に移動し続ける。最初に見つかった条件に合うブロックを返す。上限回数までに条件に合うブロックが見つからなかった場合は、何も返さない。
- direction_of_search: 移動の方向。
up
かdown
で指定する。 - max_steps: 上限回数1以上32以下の値。
- target_condition: 検索するブロックの条件。
- ブロックプレディケート
- allowed_search_condition:(任意)この条件に合うブロックを発見した場合はそこで検索を終了とし、何も返さない。
- ブロックプレディケート
- direction_of_search: 移動の方向。
- height_range - 取り込んだ位置のY座標を高度用の共通設定で指定された値に変更し、その値を返す。
- height: 新しいY座標を与える高度用の共通設定。
- 高度プロバイダー
- height: 新しいY座標を与える高度用の共通設定。
- heightmap - 取り込んだ位置のY座標を、その位置の高度マップによって与えられる値に変更し、変更後の新しい位置を返す。
- heightmap: 使用する高度マップを指定する。
MOTION_BLOCKING
、MOTION_BLOCKING_NO_LEAVES
、OCEAN_FLOOR
、OCEAN_FLOOR_WG
、WORLD_SURFACE
、WORLD_SURFACE_WG
が使用できる。詳細は当該記事を参照。
- heightmap: 使用する高度マップを指定する。
- in_square - X座標とY座標に0~15(最小値、最大値を含む)のランダムな値を加え、その値を返す。これは、random_offsetの xz_spreadを16に、 y_spreadを0にしたものと同義である。追加のフィールドは無し。
- noise_based_count - ノイズによって試行数を変動させる。現在の位置のノイズの値が正の値の場合、生成の試行数を増やす。ただしこの試行数はノイズによって徐々に変化する。ノイズの値が正でない場合は、0とみなされ、何も返さない。式としては個数は次のように与えられる。
ceil((noise(x / noise_factor, z / noise_factor) + noise_offset) * noise_to_count_ratio)
- noise_factor: ノイズの横軸の値を割る数。この値が大きいほど、ノイズの分布が大きくなる。
- noise_offset: (任意、デフォルト値は0)ノイズの垂直変位。
- noise_to_count_ratio: 個数とノイズの比。
- noise_threshold_count - ノイズによって試行数を設定する。この設定の場合、elow_noiseかabove_noiseに基づく。
noise(x / 200, z / 200) < noise_level
ならばbelow_noise回、そうでなければabove_noise回、試行する。- noise_level: 閾値。
- below_noise: ノイズ値が閾値以下の場合の試行数。0以下の値は0として見做される。
- above_noise: ノイズ値が閾値以上のの際の試行数。0以下の値は0として見做される。
- random_offset - 現在の座標にランダムな変位を加えて新しい位置に変更する。XとZ座標の変位は同じフィールドによって規定されているが、変位の算出自体は別々に行われるのでそれぞれには別の変位が与えられうる。
- xz_spread: -16以上16以下の値。
- 整数プロバイダー
- y_spread: -16以上16以下の値。
- 整数プロバイダー
- xz_spread: -16以上16以下の値。
- rarity_filter - 生成量を減らす。
1/chance
の確率で元の値を返し、それ以外の場合は何も返さない。- chance: 確率の分母。正整数で指定する。
- surface_relative_threshold_filter - 高度マップによって取り込んだ位置の最高点のY座標を調べ、その値と現在の位置との高さの差が指定の範囲内にあれば元の位置を返す。逆に範囲外なら何も返さない。
- heightmap: 使用する高度マップ
MOTION_BLOCKING
、MOTION_BLOCKING_NO_LEAVES
、OCEAN_FLOOR
、OCEAN_FLOOR_WG
、WORLD_SURFACE
、WORLD_SURFACE_WG
の何れかが使用できる。 - min_inclusive: 最高点と現在の位置の許容最小値。
- max_inclusive: 最高点と現在の位置の許容最大値。
- heightmap: 使用する高度マップ
- surface_water_depth_filter - ワールドの表面からの、移動に干渉するブロックの数。 max_water_depthの数以下であれば現在の位置を返し、そうでなければ何も返さない。水深を測定するのに使用される。
- max_water_depth: 最大水深。
歴史[]
Java Edition | |||||
---|---|---|---|---|---|
1.16.2 | 20w28a | 構成された生成物がデータパックで設定できるようになった。 | |||
20w29a | 生成物の種類minecraft:decorated_flower がminecraft:no_bonemeal_flower に改名された。 | ||||
1.17 | 20w45a | 生成物の種類minecraft:geode が追加された。 | |||
20w49a | 生成物の種類minecraft:dripstone_cluster 、minecraft:large_dripstone 、 minecraft:small_dripstone が追加された。 | ||||
21w03a | 生成物の種類minecraft:glow_lichen が追加された。 | ||||
1.19 | 22w15a | 生成物の種類surface_disk とice_patch がdisk に統合された。
| |||
生成物の種類disk に、従来の二つの生成物に存在していたstate 、targets およびcan_origin_replace を置き換える形でstate_provider およびtargets が追加された。 | |||||
生成物の種類tree にフィールドtrunk_offset_y およびabove_root_placement が追加された。 | |||||
生成物の種類tree のmangrove_root_placer 下のy_offset が削除された。またmangrove_root_placer 以下のフィールドは mangroce_root_placementに移動された。 | |||||
1.19.4 | 23w07a | 生成物の種類minecraft:tree における構成された生成物の設定候補に、minecraft:cherry_foliage_placer およびminecraft:cherry_trunk_placer が追加された。 | |||
1.20 | 23w17a | 生成物の種類huge_fungus にフィールドreplaceable_blocks が追加された。 |
要素 |
| ||
---|---|---|---|
データパック |
| ||
チュートリアル |
デモ版 | |||||||
---|---|---|---|---|---|---|---|
開発 |
| ||||||
技術的情報 |
| ||||||
マルチプレイ | |||||||
ゲームのカスタマイズ |