メインコンテンツまでスキップ

ジェネレーターの作成

ジェネレーター

ジェネレーターはBetterStructuresの設定システムの中で最も強力な部分です。デフォルトで29個のジェネレーターがあり、現在BetterStructuresで配布されている建築物を共同で管理しています。独自のジェネレーターを作成することも、既存のものをショートカットとして使用することもできます。

ジェネレーターはプラグインに正確なスポーン位置を伝え、ルートテーブルを定義します。デフォルトのジェネレーターは、その機能が容易に推測できるように名付けられています。

ジェネレーター設定オプション

キーデフォルト必須説明
isEnabledtrueジェネレーターが有効かどうか。false にすると、このジェネレーターを参照しているすべてのスキマティックも登録されなくなるため、構造物のセット全体をまとめてオフにする最も手軽な方法です。
structureType-構造物がスポーンする場所(下の表を参照)
lowestYLevel-59スポーンの最小Yレベル
highestYLevel320スポーンの最大Yレベル
validWorldsすべて許可構造物がスポーンできるワールドのリスト
validWorldEnvironmentsすべて許可NORMAL, NETHER, THE_END, CUSTOM
validBiomesV2すべてのバイオーム有効なバイオームのリスト(namespace:key形式)
treasureFilename-チェストの戦利品用トレジャーファイル
generateLootInBarrelstrueこのジェネレーターのスキマティック内にある樽に戦利品を入れるかどうか
barrelTreasureFilenametreasure_barrel_food.ymlこのジェネレーターで樽を満たす際に使用するトレジャーファイル

structureType

建築物の構造タイプを設定します。単一のジェネレーターに複数の構造タイプを指定できます!

タイプオーバーワールド/カスタムネザーエンド説明
SURFACE地表地表のようなポイント地表ワールドの地表にスポーン
SKY最も高いブロックの80-120ブロック上Y 45からY 100の間で見つかった空気の空間最も高いブロックの80-120ブロック上空中にスポーン(config.ymlで設定可能)
UNDERGROUND_SHALLOWY 0-50Y 60-120Y 0-80浅い地下構造物
UNDERGROUND_DEEPY -53から0Y 5-60Y 0-80深い地下構造物
LIQUID_SURFACE水(海洋)Y 31の溶岩の海液体チェックは適用されません液体の表面にスポーン
DUNGEONモジュラーダンジョンの配置に使用

空の範囲は、絶対的なYレベルではなく、その列における最も高いブロックからの上方向のオフセットです。

複数構造タイプの例
structureType:
- SURFACE
- UNDERGROUND_SHALLOW

これにより、同じジェネレーターが地表と浅い地下の両方など、複数の場所に構造物をスポーンできます。

注意:Minecraftには広大な地下空間があるため、2つの地下設定があります。両方があることで、深さ全体にわたって均等に分配され、プレイヤーが構造物を見逃すことを防ぎます。


ディメンション別Yレベル範囲

ディメンションごとのデフォルト高度範囲(config.ymlで設定可能):

ディメンションデフォルト範囲設定
オーバーワールド/カスタムY=-60からY=320lowestYNormalCustom / highestYNormalCustom
ネザーY=4からY=120lowestYNether / highestYNether
エンドY=0からY=320lowestYEnd / highestYEnd
空(オーバーワールド/カスタム)最も高いブロックの80から120ブロック上normalCustomAirBuildingMinAltitude / normalCustomAirBuildingMaxAltitude
空(エンド)最も高いブロックの80から120ブロック上endAirBuildMinAltitude / endAirBuildMaxAltitude

これらのデフォルトは、lowestYLevelhighestYLevelを使用してジェネレーターごとに上書きできます。

空に関する2行は、絶対的なYレベルではなく、その列の最も高いブロックに加算されるオフセットです。オーバーワールド/カスタムとエンドのどちらの空オフセットも、配置のたびに最小値と最大値の間でランダムに抽選されます。

ネザーはこれらのオフセットを完全に無視します。最も高いブロックの上に建てる代わりに、BetterStructuresはY 45からY 100の間の列をスキャンして高さ20ブロック以上の空気の空間を探し、その内部に構造物を配置します。そのような空間が存在しない場合、そのチャンクには何もスポーンしません。


カスタムバイオームサポート

BetterStructuresはTerralith、Iris、Terra、TerraformGeneratorなどのワールドジェネレーターからのカスタムバイオームを自動的にサポートします。

validBiomesV2でバニラバイオームを指定すると、プラグインは自動的に互換性のあるカスタムバイオームを含めます:

validBiomesV2:
- minecraft:plains
- minecraft:forest

これにより、バニラバイオームと、これらのタイプにマッピングされたすべてのカスタムバイオーム(例:terralith:blooming_plains)に構造物がスポーンされます。

マッピングが実際に置かれている場所

カスタムバイオームとバニラバイオームの対応表は、BetterStructuresには保存されていません。BetterStructuresに同梱されている共有ライブラリMagmaCoreの内部にある単一のハードコードされたテーブルであり、それを必要とする他のMagmaGuyプラグインとも共有されています。

これには実務上2つの帰結があります:

  1. 配布されている generator_surface_*.yml に見られる長いバイオームのリストは、真実の出所ではなく生成された出力です。 読み込み時にBetterStructuresは validBiomesV2 を読み、minecraft: の各エントリをMagmaCoreのテーブルで参照し、それに対応するカスタムバイオームを追加したうえで、展開後のリストをジェネレーターファイルへそのまま書き戻します。そのため、2行で書いたジェネレーターが100行になって返ってくることがあります。展開後のリストを編集しても、その1つのジェネレーターにしか影響せず、残したままの minecraft: エントリは次回の読み込み時に再び展開されます。
  2. 新しいカスタムバイオームのサポートを全体に追加するのは、設定変更ではなくMagmaCoreの変更です。 ワールドジェネレーターがBetterStructuresの認識しないバイオームを提供している場合、それをジェネレーターの validBiomesV2 に追加するのは、その1つのジェネレーターに対するローカルな回避策にすぎません。正しくマッピングさせるにはMagmaCoreのマッピングテーブルに追加する必要があり、これはコードの変更です — ymlファイルで解決しようとするのではなく、リクエストを出してください。

validBiomesV2 にカスタムバイオームを直接書くこともできます(すでに : を含むものはそのまま扱われ、それ以上展開されません)。特定の1つのカスタムバイオームだけにスポーンさせたい一点物のジェネレーターには、これが正しい方法です。

MagmaCoreが nothing にマッピングしているバイオームは意図的に除外されます — 構造物に適さないと判断されたカスタムバイオームであり、どのバニラバイオームからも引き込まれることはありません。


treasureFilename

チェストの戦利品用のトレジャーファイルを設定します。これはスキマティック設定で上書きされない限り、このジェネレーターを使用するすべての建築物に適用されます。


generateLootInBarrels と barrelTreasureFilename

BetterStructuresでは、樽もチェストと並ぶ第二の戦利品コンテナとして扱われるようになりました。

  • generateLootInBarrels(デフォルトtrue)は、このジェネレーターによって配置された構造物内の樽を満たすかどうかを切り替えます。falseに設定すると、樽は手付かずのままになります。
  • barrelTreasureFilename(デフォルトtreasure_barrel_food.yml)は、それらの樽を満たす際にロールされるトレジャーファイルを選択します。デフォルトでは軽量な食料中心のルートテーブルが提供されますが、任意のトレジャーファイルを指定できます。

両方のオプションは、スキマティック設定内の対応するbarrelTreasureFilenameフィールドによってスキマティック単位で上書きできます。