モジュラーダンジョンとは?
モジュラーダンジョンは、BetterStructures 2.0.0以降で導入されたダンジョンシステムです。 固定されたスキマティック1つとしてスポーンするのではなく、モジュラーダンジョンは手作業で作られた小さなモジュールから動的に組み立てられます。 このアプローチにより、バニラMinecraftにシームレスに溶け込みながらも、すべてのワールドでユニークに感じられる大規模で複数階層のダンジョンを実現できます。
モジュラーダンジョンはどのように生成されるか
-
モジュール 各モジュールは通常、設定可能なサイズ(デフォルト16x16x16ブロック、ただし一部のコンテンツパックでは32x16x32などの他の寸法を使用)で構築されます。モジュールは、ボーダータグシステムを使用した標準化された接続ポイントで設計されており、隙間や重なりなしに他のモジュールに接続できます。ダンジョンの寸法は、モジュールジェネレーター設定の
moduleSizeXZとmoduleSizeY設定オプションを使用して設定されます。 モジュールには廊下、部屋、階段、または特別な遭遇空間が含まれることがあります。 -
生成プロセス 新しいチャンクでモジュラーダンジョンが生成されると、BetterStructuresは波動関数崩壊(Wave Function Collapse, WFC)アルゴリズムを使用して、利用可能なプールからモジュールを手続き的に組み立てます。システムはボーダータグのマッチングに基づいて互換性のあるモジュールをランダムに選択し、完全なダンジョンに「縫合」します。 生成時間は、サーバーパフォーマンス、ダンジョンサイズ(半径)、垂直範囲、モジュール数、および制約の複雑さによって異なります。システムは生成中のサーバーラグを防ぐためにワークロード分散を使用します。
-
ダンジョンサイズ ダンジョンはradiusパラメーターを使用して様々なサイズで生成されるよう設定できます。より大きいradius値は、数百ブロックに及ぶ大幅に大きいダンジョンを作成します。 ほとんどのダンジョンには複数階層が含まれており、階段モジュールまたは垂直シャフトを通じて接続されています。階層間の垂直接続は、モジュールの
bordersボーダータグマップのup/downエントリによって実現されます。あるモジュールの上面は、対向するボーダータグが一致したとき、その上にある隣接モジュールに接続します。
バラエティとパック統合
-
無料パック Dungeoneering Modules Free Packには15個のモジュールが含まれています。これ単体でも完全にプレイ可能なダンジョンとして機能します。
-
プレミアムパック Dungeoneering Modules Premium Packはさらに38個のモジュールを追加します。無料パックと組み合わせると、両セットは1つのダンジョンシステムに絡み合い、はるかに大きなモジュールプールになります。 これにより繰り返しが減り、生成されるレイアウトのバラエティが増します。
-
プロップ統合 BetterStructures Prop Pack(FreeMinecraftModels経由)も併せてインストールすると、モジュラーダンジョンはショーケーススクリーンショットに示されているように、ビルド全体にカスタムモデルプロップを表示します。 プロップパックがなくても、ダンジョンは通常通り機能しますが、装飾モデルは表示されません。
EliteMobs統合
ダンジョンのほとんどはBetterStructuresとバニラMinecraftモブのみに依存していますが、一部のダンジョンにはボス遭遇が含まれます:
- EliteMobsとFreeMinecraftModelsの両方がインストールされている場合 → モデル付きの完全なカスタムボス戦。
- FreeMinecraftModelsのみがインストールされている場合 → ボスモデルは装飾プロップとして表示されます。
- どちらもインストールされていない場合 → ボス部屋は単に空になります。
システムは、指定エリアにエンティティとコンテナを配置するための特殊タグを持つサインベースのスポーンシステムを使用します。ボスレベルはダンジョン中心からの距離に基づいてスケールし、構造全体を通じて適切な難易度を提供します。
モジュールサインのタイプ
| サインタグ | 1行目 | 追加行 | 説明 |
|---|---|---|---|
[spawn] | [spawn] | 2行目にエンティティタイプ | サイン位置にバニラエンティティをスポーン |
[pool: poolname] | [pool: poolname] | — | 名前付きスポーンプールからランダムなボスをスポーン |
[chest] | [chest] | — | サイン位置にチェストを配置 |
[trapped_chest] | [trapped_chest] | — | サイン位置にトラップ付きチェストを配置 |
[barrel] | [barrel] | — | サイン位置に樽を配置 |
[exit] | [exit] | 2-3行目にエレベータースキマティックのファイル名 | 上下のエレベータースキマティックを持つ出口ポイントをマーク |
EliteMobsがインストールされていないがコンテンツパックがそれを必要とする場合、管理者は警告メッセージを受け取ります。
この設計により、モジュラーダンジョンはバニラスタイルのセットアップとの互換性を保ちながら、追加プラグインを持つユーザーにはより深い統合を提供します。
スポーンプール
[pool: poolname]サインは、spawn_pools/フォルダー内のスポーンプール設定ファイルを読み込みます。各スポーンプールファイルは、以下のフィールドを持つ小さなYAML設定です:
| フィールド | デフォルト | 説明 |
|---|---|---|
isEnabled | true | このスポーンプールが有効かどうか |
poolStrings | [] | このプールに該当するEliteMobsボスのファイル名リスト |
minLevel | -1 | このプールからスポーンするインスタンス化ボスの最小レベル(-1 = 未指定) |
maxLevel | -1 | このプールからスポーンするインスタンス化ボスの最大レベル(-1 = 未指定) |
[pool: poolname]サインが処理されると、BetterStructuresはpoolname.yml(オプションでジェネレーターのspawnPoolSuffixが付加されたもの)を探し、プールのpoolStringsからランダムなボスを選択します。インスタンス化ボスの場合、スポーンレベルはダンジョン中心からのボスの距離に基づいてminLevelとmaxLevelの間でスケールします。
MythicMobs統合
BetterStructuresは、モジュラーダンジョン内のカスタムモブ遭遇のためのMythicMobs統合もサポートしています。
MythicMobsがインストールされていると、構造物パックはダンジョン生成の一部としてカスタムMythicMobsをスポーンできます。これにより、バニラMinecraftやEliteMobsが提供する以上の、より洗練されたモブ遭遇やボス戦が可能になります。
MythicMobsがインストールされていない場合、プラグインは適切な権限を持つ管理者に通知し、ダウンロードリンクを提供します。
FMM統合
モジュラーダンジョンは、作成中にFreeMinecraftModels(FMM)プロップも活用できます。
- FMMがインストールされていると、モジュール作成者またはビルダーによって配置されたプロップが生成されたダンジョンに表示されます。
- プロップは純粋に装飾的であり、ゲームプレイには影響しませんが、環境の視覚的忠実度と没入感を高めます。
- FMMがインストールされていない場合、ダンジョンは通常通り生成されますが、これらのカスタムプロップは表示されません。
これにより、作成者はFMMを持たないプレイヤーとの互換性を維持しながら、追加のディテールでダンジョンを設計できます。
モジュールの寸法
重要: モジュールサイズは固定ではなく、設定可能です。
各モジュールジェネレーターは、以下を使用して標準的なモジュールサイズを定義します:
moduleSizeXZ:ブロック単位の幅と奥行き(デフォルト:16)moduleSizeY:ブロック単位の高さ(デフォルト:16)
デフォルトサイズ: 16×16×16ブロック 一般的な代替: 32×16×32ブロック(一部のコンテンツパックで使用)
モジュール作成者向け:
- ジェネレーター設定で
moduleSizeXZとmoduleSizeYの値を確認します - そのジェネレーター用のすべてのモジュールを、これらの正確な寸法に合わせて構築します
- サイズの不一致は接続失敗の原因になります
カスタム寸法の設定: モジュールジェネレーター設定ファイル内で:
moduleSizeXZ: 32 # 幅と奥行き
moduleSizeY: 16 # 高さ
注:ジェネレーター内のすべてのモジュールは同じ寸法を使用する必要があります。同じダンジョンシステム内で16×16×16と32×16×32のモジュールを混在させることはできません。
モジュールジェネレーターの設定フィールド
moduleSizeXZとmoduleSizeYに加えて、モジュールジェネレーター設定は以下のフィールドをサポートします:
| フィールド | デフォルト | 説明 |
|---|---|---|
radius | 1 | チャンク単位のダンジョン半径 |
edges | false | エッジモジュールを生成するかどうか |
startModule | — | 生成の開始モジュールのリスト |
minChunkY | 0 | 最小垂直チャンク境界 |
maxChunkY | 0 | 最大垂直チャンク境界 |
moduleSizeXZ | 16 | ブロック単位のモジュールの幅と奥行き |
moduleSizeY | 16 | ブロック単位のモジュールの高さ |
debug | false | 生成のトラブルシューティングのためのデバッグモードを有効化 |
useGradientLevels | false | スポーンするエンティティのグラデーションベースのレベルスケーリングを有効化 |
spawnPoolSuffix | — | このジェネレーターのスポーンプール名に付加されるサフィックス |
isWorldGeneration | false | このジェネレーターがワールド生成に使用されるかどうか |
treasureFile | — | このダンジョン内のチェスト用のトレジャー設定ファイル |
generateLootInBarrels | true | モジュール内の樽に戦利品を入れるかどうか |
barrelTreasureFilename | treasure_barrel_food.yml | このダンジョン内の樽を満たすために使用されるトレジャー設定ファイル |
validWorlds | — | ダンジョンが生成可能な有効なワールド名のリスト |
validWorldEnvironments | — | 有効なワールド環境のリスト |
centerModuleAltitude | 0 | 中心モジュールの高度 |
モジュール単位の設定フィールド
個別の各モジュールは、以下の設定フィールドを定義できます:
| フィールド | デフォルト | 説明 |
|---|---|---|
isEnabled | true | このモジュールが有効かどうか |
weight | 100 | 生成時のこのモジュールの選択ウェイト |
repetitionPenalty | 0 | このモジュールが複数回選択された場合に適用されるペナルティ |
noRepeat | false | このモジュールの繰り返しを防止 |
enforceVerticalRotation | false | 垂直回転制約を強制 |
enforceHorizontalRotation | false | 水平回転制約を強制 |
minY | -4 | このモジュールの最小Yレベル |
maxY | 20 | このモジュールの最大Yレベル |
biome | default | このモジュールのバイオーム要件 |
minecraftBiome | null | このモジュールのMinecraftバイオーム要件 |
treasureFile | — | このモジュール内のチェスト用のトレジャー設定ファイル |
generateLootInBarrels | true | このモジュール内の樽に戦利品を入れるかどうか |
barrelTreasureFilename | treasure_barrel_food.yml | このモジュール内の樽を満たすために使用されるトレジャー設定ファイル |
borders | — | 接続互換性を定義するボーダータグマップ |
cloneConfig | — | 別のモジュール設定ファイルから設定を複製 |
compoundModule | — | このモジュールを複合(複数パート)モジュールの一部としてリンク |
isAutomaticallyPlaced | true | 生成時にモジュールが自動的に配置されるかどうか |
注:モジュールのどの面が隣接モジュールに接続できるかは、面ごとの「passable(通行可能)」トグルではなく、完全にbordersボーダータグマップによって制御されます。2つのモジュールは、対向するボーダータグが一致したときにその面で接続します。