UDungeonGenerateParameter ja - shun126/DungeonGenerator GitHub Wiki
UDungeonGenerateParameter ガイド
UDungeonGenerateParameter は、ダンジョン生成の中心になる設定アセットです。
レイアウト、開始位置、見た目、サブレベル、センサー、内装まで、多くの設定をここから参照します。
まず最初に設定する項目
DungeonRoomMeshPartsDatabase
部屋用のMesh set databaseです。未設定だと生成できません。DungeonAisleMeshPartsDatabase
通路用のMesh set databaseです。未設定だと生成できません。GridSize/VerticalGridSize
メッシュやサブレベルが合わせる基準サイズです。RandomSeed
0なら毎回ランダム、固定値なら再現用です。
最初の確認では、まず上の 4 つだけ押さえておけば十分です。
レイアウトを決める項目
RoomWidth/RoomDepth/RoomHeight
部屋サイズの最小 / 最大です。大きくすると広場寄り、小さくすると迷路寄りになります。NumberOfCandidateRooms
生成の試行に使う候補部屋数です。少なすぎると生成失敗しやすくなります。RoomMargin/VerticalRoomMargin
部屋同士の余白です。密度や上下の詰まり方を調整します。MergeRooms
隣接部屋を結合して大部屋を作りやすくします。有効にすると一部の余白設定は無効になります。ExpansionPolicy
横に広げるか、縦に広げるか、両方を許可するかを決めます。
単層にしたい場合はFlatではなくExpansionPolicy = Flatを使うのが新しい書き方です。NumberOfCandidateFloors
多層構造を試行するための候補数です。ExpansionPolicy = Flatのときは使いません。
開始位置と進行の項目
StartLocationPolicy
スタート部屋の選び方です。通常はUseSouthernMostかUseCentralPointから始めると分かりやすいです。MovePlayerStartToStartingPoint
旧設定です。新規設定ではStartLocationPolicyを優先してください。UseMissionGraph
鍵付きルートやミッション進行を使いたい場合に有効化します。
実運用ではMergeRooms = falseかつAisleComplexity = 0と合わせて使うのが安全です。AisleComplexity
通路の複雑さです。MissionGraph を使わない通常のダンジョンでは、1以上で調整してください。AisleCeilingHeightPolicy
通路の天井高を1 Grid/2 Grids/Randomで切り替えます。見た目の印象だけでなく、通路側装飾の余白にも影響します。
AisleCeilingHeightPolicy の選び方:
OneGrid
低い天井で圧迫感を出したいときに向いています。TwoGrids
開放感を優先したいときや、背の高い装飾を通路側で使いたいときに向いています。Random
低い通路と高い通路を混ぜて変化を出したいときに向いています。
通路の見た目は DungeonAisleMeshPartsDatabase 側の Mesh Set と合わせて調整してください。
シャンデリアなど天井側の演出を強くしたい場合は、UDungeonMeshSetDatabase.ja.md の設定も一緒に見直すと整理しやすいです。
部屋の雰囲気を変える項目
GenerateSlopeInRoom
部屋内スロープの生成を許可します。GenerateStructuralColumn
部屋内の構造柱生成を許可します。SkylightChancePercent
部屋内にスカイライト用ボクセルを作る確率です。
パーツ・フィクスチャ設定
PillarPartsSelectionPolicy/PillarPartsTorchPartsSelectionPolicy/TorchPartsDoorPartsSelectionPolicy/DoorParts
ここでは、柱・燭台・ドアの候補と選択ルールを設定します。
現在の編集対象は SelectionMethod ではなく SelectionPolicy です。
Random
ランダムに選びます。Grid Index/Direction/Identifier/Depth From Start
グリッドや進行度に応じて決定的に選びます。Custom Selector
独自セレクタを使います。
Custom Selector を使う場合は、Custom Dungeon Parts Selector に UDungeonPartsSelector 派生オブジェクトを指定します。
サンプル実装として UDungeonSamplePartsSelector が用意されています。
参照するデータベース
DungeonRoomMeshPartsDatabase
部屋の床 / 壁 / 天井 / シャンデリアなどを決める DBDungeonAisleMeshPartsDatabase
通路の床 / 壁 / 天井などを決める DBDungeonInteriorDatabase
家具や植生をタグで出し分ける DBDungeonSubLevelDatabase
スタート / ゴール / 特殊部屋サブレベルを登録する DBDungeonRoomSensorDatabase
部屋侵入センサーや通路演出を登録する DBDungeonRoomSensorClass
旧設定です。新規設定ではDungeonRoomSensorDatabaseを使ってください。
検証時に見られるポイント
エディタの Window > DungeonGenerator にある Verify は、主に次の問題を確認します。
- 部屋用 / 通路用 DB が未設定
- 部屋用 / 通路用 DB に床 / 壁 / 天井メッシュがない
- 部屋候補数が少なすぎる
- 参照アセットのパスが壊れている
生成前に Verify を通しておくと、初心者が詰まりやすいポイントをかなり減らせます。
迷ったときの初期設定
RandomSeed = 0NumberOfCandidateRooms = 10ExpansionPolicy = ExpandHorizontallyStartLocationPolicy = UseSouthernMostUseMissionGraph = falseAisleComplexity = 5
補足
PluginVersionはサポートや不具合報告時の確認用です。Flatは旧設定です。新規構成ではExpansionPolicy = Flatを使ってください。
次に読む
- UDungeonMeshSetDatabase.ja.md
見た目を変えるための Mesh Set の組み方を確認できます。 - UDungeonSubLevelDatabase.ja.md
特殊部屋や開始部屋サブレベルを使いたい場合の次の設定先です。