Dungeon Architect
Links
日本語メモ
仕組み
- ダンジョンの作り方
- (A) UE4 Editor 上で作る
- (B) レベルロード時にランタイムで作る
- (C) プレイヤーのレベル操作によってランタイムで作る
- 仕組み
- 下図の左側の「レイアウト生成(Layout Generation)」と右側の「ビジュアル生成(Visuals Genreration)」に2フェーズから構成されている
- レイアウト生成(Layout Generation)について
- 「Dungeon Builder 」がメモリ上で下図のようなダンジョンのレイアウトを作る
- この時点でメッシュやアクターはない
- 「Dungeon Builder」がレイアウトに対してマーカーを配置する
- マーカーには 壁(Wall), 床(Ground), ドア(Door)などがある
- ビジュアル生成(Visuals Genreration)について
- 下図のように, マーカーの種類に該当するメッシュやアクターが配置される
- マーカーに対してどのメッシュやアクターを割り当てるか? についてまとめている規則の下図のようなものを テーマ(Thema)と言う
- テーマを切り替えることで, ダンジョンの見た目だけをがらっと変えることができる
ダンジョンを作る Dungeon Builder の種類
- Grid Builder
- グリッドベースのダンジョン生成, 部屋, 廊下
- Floor Plan Builder (開発中)
- 屋内の建物を作る
- Simple City Builder (開発中)
- 簡単な街を作る
- Snap Builder
- アーティストが用意した部屋のパーツ(Snap Module)を組み合わせてくれる仕組み
- Issac Builder
- ゲーム Binding of Issac 風のレベルを作る
- Custom Grid Builder
- 自分で Blueprint でレイアウトを作る
テーマについて
- テーマは「Dungeon Theme 」の作成を選んで, 自分で作ることができる
- テーマのノードは「マーカーノード」「ビジュアルノード」「マーカーエミッターノード」の 3 種類
- ビジュアルノードは下の6 種類
- メッシュノード
- ポイントライトノード
- スポットライトノード
- パーティクルノード
- アクターノード
- 破壊可能なメッシュノード
- 属性
- Affinity : 選ばれる確率
- Consume on Attach: このチェックが有効な場合には実行を終了, 無効の場合には兄弟のノードを実行
- ※ Ground マーカーからポイントライト(Consume on Attach 無効)の選択後に, さらに床メッシュ(Consume on Attach 有効)を選びたいときに
- Selection Logic : どのビジュアルノードを選ぶかのロジックは「Dungeon Selector Logic」を作ることでカスタマイズ可能
- Transform Logic : 「Dungeon Transform Logic」を作ることで, ビジュアルノードのスケールや位置をカスタマイズ可能
ペイントモード
- 自動生成後にペイントで修正可能
- 完全に手動のペイントで作りたい場合には NumCells=0 にする
ボリューム
- Dungeon Platform Volume
- ボリュームを配置して, セルタイプを指定できる
- Theme Override Volume
- ボリューム内のテーマを上書き
- Negation Volume
- ボリューム内のダンジョンを削除
- Mirror Volume
- 対称なダンジョンを作る
カスタマイズ
- DugeonMarkerEmitter クラスを実装することで, 自分でマーカーをエミットをカスタマイズできる
- Spatial Constraints を使うことで, メッシュの生成条件をしていできる ( 部屋の隅だけに像を配置など )
- Clusterd Theming : 複数のテーマを混ぜる
- クエリ ー:BP から生成されたダンジョンの情報にアクセスできる
- Spawn Logic : ビジュアルアイテム(メッシュなど)が生成されるときにして欲しい処理を DugeonSpawnLogic で実装して使える
- Event Listeners : ダンジョン生成時の各タイミングでイベントを受け取ることができる
- Landscape Transformer: ダンジョンの外側がすかすかなので, Terrain で埋めたい. そういうときにダンジョンレイアウト付近に合わせて Terrain の高さやテクスチャ(マテリアルの重み)を修正可能. 下図の赤矢印の土台部分は Unity の Terrain をダンジョンに合わせた例
- ランタイムのナビメーションメッシュ生成の機能も使える
- 複数のダンジョンを同時に使用可能, つなげることもできる