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

モジュラーダンジョンとは?

モジュラーダンジョンは、BetterStructures 2.0.0以降で導入されたダンジョンシステムです。 固定されたスキマティック1つとしてスポーンするのではなく、モジュラーダンジョンは手作業で作られた小さなモジュールから動的に組み立てられます。 このアプローチにより、バニラMinecraftにシームレスに溶け込みながらも、すべてのワールドでユニークに感じられる大規模で複数階層のダンジョンを実現できます。


モジュラーダンジョンはどのように生成されるか

  • モジュール 各モジュールは通常、設定可能なサイズ(デフォルト16x16x16ブロック、ただし一部のコンテンツパックでは32x16x32などの他の寸法を使用)で構築されます。モジュールは、ボーダータグシステムを使用した標準化された接続ポイントで設計されており、隙間や重なりなしに他のモジュールに接続できます。ダンジョンの寸法は、モジュールジェネレーター設定のmoduleSizeXZmoduleSizeY設定オプションを使用して設定されます。 モジュールには廊下、部屋、階段、または特別な遭遇空間が含まれることがあります。

  • 生成プロセス 新しいチャンクでモジュラーダンジョンが生成されると、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モブのみに依存していますが、一部のダンジョンにはボス遭遇が含まれます:

  • EliteMobsFreeMinecraftModelsの両方がインストールされている場合 → モデル付きの完全なカスタムボス戦。
  • 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設定です:

フィールドデフォルト説明
isEnabledtrueこのスポーンプールが有効かどうか
poolStrings[]このプールに該当するEliteMobsボスのファイル名リスト
minLevel-1このプールからスポーンするインスタンス化ボスの最小レベル(-1 = 未指定)
maxLevel-1このプールからスポーンするインスタンス化ボスの最大レベル(-1 = 未指定)

[pool: poolname]サインが処理されると、BetterStructuresはpoolname.yml(オプションでジェネレーターのspawnPoolSuffixが付加されたもの)を探し、プールのpoolStringsからランダムなボスを選択します。インスタンス化ボスの場合、スポーンレベルはダンジョン中心からのボスの距離に基づいてminLevelmaxLevelの間でスケールします。


MythicMobs統合

BetterStructuresは、モジュラーダンジョン内のカスタムモブ遭遇のためのMythicMobs統合もサポートしています。

MythicMobsがインストールされていると、構造物パックはダンジョン生成の一部としてカスタムMythicMobsをスポーンできます。これにより、バニラMinecraftやEliteMobsが提供する以上の、より洗練されたモブ遭遇やボス戦が可能になります。

MythicMobsがインストールされていない場合、プラグインは適切な権限を持つ管理者に通知し、ダウンロードリンクを提供します。


FMM統合

モジュラーダンジョンは、作成中にFreeMinecraftModels(FMM)プロップも活用できます。

  • FMMがインストールされていると、モジュール作成者またはビルダーによって配置されたプロップが生成されたダンジョンに表示されます。
  • プロップは純粋に装飾的であり、ゲームプレイには影響しませんが、環境の視覚的忠実度と没入感を高めます。
  • FMMがインストールされていない場合、ダンジョンは通常通り生成されますが、これらのカスタムプロップは表示されません。

これにより、作成者はFMMを持たないプレイヤーとの互換性を維持しながら、追加のディテールでダンジョンを設計できます。



モジュールの寸法

重要: モジュールサイズは固定ではなく、設定可能です。

各モジュールジェネレーターは、以下を使用して標準的なモジュールサイズを定義します:

  • moduleSizeXZ:ブロック単位の幅と奥行き(デフォルト:16)
  • moduleSizeY:ブロック単位の高さ(デフォルト:16)

デフォルトサイズ: 16×16×16ブロック 一般的な代替: 32×16×32ブロック(一部のコンテンツパックで使用)

モジュール作成者向け:

  1. ジェネレーター設定でmoduleSizeXZmoduleSizeYの値を確認します
  2. そのジェネレーター用のすべてのモジュールを、これらの正確な寸法に合わせて構築します
  3. サイズの不一致は接続失敗の原因になります

カスタム寸法の設定: モジュールジェネレーター設定ファイル内で:

moduleSizeXZ: 32  # 幅と奥行き
moduleSizeY: 16 # 高さ

注:ジェネレーター内のすべてのモジュールは同じ寸法を使用する必要があります。同じダンジョンシステム内で16×16×16と32×16×32のモジュールを混在させることはできません。


モジュールジェネレーターの設定フィールド

moduleSizeXZmoduleSizeYに加えて、モジュールジェネレーター設定は以下のフィールドをサポートします:

フィールドデフォルト説明
radius1チャンク単位のダンジョン半径
edgesfalseエッジモジュールを生成するかどうか
startModule生成の開始モジュールのリスト
minChunkY0最小垂直チャンク境界
maxChunkY0最大垂直チャンク境界
moduleSizeXZ16ブロック単位のモジュールの幅と奥行き
moduleSizeY16ブロック単位のモジュールの高さ
debugfalse生成のトラブルシューティングのためのデバッグモードを有効化
useGradientLevelsfalseスポーンするエンティティのグラデーションベースのレベルスケーリングを有効化
spawnPoolSuffixこのジェネレーターのスポーンプール名に付加されるサフィックス
isWorldGenerationfalseこのジェネレーターがワールド生成に使用されるかどうか
treasureFileこのダンジョン内のチェスト用のトレジャー設定ファイル
generateLootInBarrelstrueモジュール内の樽に戦利品を入れるかどうか
barrelTreasureFilenametreasure_barrel_food.ymlこのダンジョン内の樽を満たすために使用されるトレジャー設定ファイル
validWorldsダンジョンが生成可能な有効なワールド名のリスト
validWorldEnvironments有効なワールド環境のリスト
centerModuleAltitude0中心モジュールの高度

モジュール単位の設定フィールド

個別の各モジュールは、以下の設定フィールドを定義できます:

フィールドデフォルト説明
isEnabledtrueこのモジュールが有効かどうか
weight100生成時のこのモジュールの選択ウェイト
repetitionPenalty0このモジュールが複数回選択された場合に適用されるペナルティ
noRepeatfalseこのモジュールの繰り返しを防止
enforceVerticalRotationfalse垂直回転制約を強制
enforceHorizontalRotationfalse水平回転制約を強制
minY-4このモジュールの最小Yレベル
maxY20このモジュールの最大Yレベル
biomedefaultこのモジュールのバイオーム要件
minecraftBiomenullこのモジュールのMinecraftバイオーム要件
treasureFileこのモジュール内のチェスト用のトレジャー設定ファイル
generateLootInBarrelstrueこのモジュール内の樽に戦利品を入れるかどうか
barrelTreasureFilenametreasure_barrel_food.ymlこのモジュール内の樽を満たすために使用されるトレジャー設定ファイル
borders接続互換性を定義するボーダータグマップ
cloneConfig別のモジュール設定ファイルから設定を複製
compoundModuleこのモジュールを複合(複数パート)モジュールの一部としてリンク
isAutomaticallyPlacedtrue生成時にモジュールが自動的に配置されるかどうか

注:モジュールのどの面が隣接モジュールに接続できるかは、面ごとの「passable(通行可能)」トグルではなく、完全にbordersボーダータグマップによって制御されます。2つのモジュールは、対向するボーダータグが一致したときにその面で接続します。