-
-
Notifications
You must be signed in to change notification settings - Fork 6
4_5_内装を生成する
編集中の記事です。
InteriaDecorator
システムはベータ版の機能です。基本的なアルゴリズムはできていますが、パラメータの持ち方はデザイナーの方々のご意見を反映したいと思っています。
HOW TO PROCEDURALLY GENERATE AND DECORATE 3D DUNGEON ROOMS IN UNITY C#を参考にした内装を自動生成するシステムです。
このシステムはデザイナーやアーティストの意見を取り入れるためのベータ版です。仕様は予告なく変更する可能性があります。 我々はデザイナーやアーティストの助言を求めています。ぜひディスカッションにご記入ください。
DungeonInteriorDatabase
はインテリアになるアクターの属性を定義したDungeonInteriorParts
を抽選します。
図のようにDungeonInteriorParts
を複数登録する事ができ、入力されるInqueryInteriorTags
が一致するアクターをスポーンします。
InqueryInteriorTags
が複数のアクターで一致した場合は、パーツの属性に応じて抽選されます。
DungeonInteriorParts
はインテリアになるアクターの属性を定義します。
スポーンするアクターのクラスを指定して下さい
アクターを象徴するタグ名を設定して下さい。InteriorTags
のタグにInqueryInteriorTags
のタグがすべて含まれていると、このパーツがスポーンの候補として選択されます。
DungeonRoomSensor
クラスのInqueryInteriorTags
に'kitchen'を指定すると、kitchen
タグのあるアクターがスポーンされ、
その後DungeonInteriorLocationComponent
のInteriorTags
にcup
が設定されている場合、タグにcup
があるパーツがDungeonInteriorLocationComponent
の位置にスポーンされます。この繰り返しによって部屋には台所にふさわしい内装が生成されます。
InteriorSystemTags
はDungeonInteriorDecoratorシステムが設定するInteriorTags
です。以下のタグを予約しています。
- 優先度 :
major
- 部屋の種類 :
aisle
,slope
,hall
,hanare
,start
,goal
- 位置 :
center
,wall
major
を有効にすると優先的にスポーンの対象に選ばれます。center
は部屋の中央付近に置きたいときに、wall
は壁沿いに置きたいときに使います。
生成するアクターのメッシュの範囲に他のアクターがいる場合はスポーンをしません。このパラメータはメッシュの範囲に配置を禁止する範囲を追加します。
配置後、重なりチェックが行われ、重なりがあればアクタは破棄される。
このパラメータが有効になると、アクターのメッシュとその他のアクターがオーバーラップしているならスポーンをしません。
このパラメータはスポーンの頻度を1%から100%で指定できます。 InteriorTagsを含むクエリの後、スポーンが可能か抽選が行われます。
スポーンするアクターの位置の誤差です。 コリジョンの中心からコリジョンの端までの位置を比率で指定します。 0%はコリジョンの中心、100%はコリジョンの端を意味します。 このパラメータは高さには影響しないので、スポーンする高さはコリジョンの中心になります。
配置時にアクタを回転させるタイプです。
回転しない(None
)、180度毎の回転(Every180Degrees
)、90度毎の回転(Every90Degrees
)、自由な回転(Free
)から選んでください。
スポーンする内装アクターがDungeonInteriorLocationComponent
を持っていると、DungeonInteriorDecoratorシステムが再帰的にアクターをDungeonInteriorLocationComponent
の位置にスポーンを試みます。
DungeonInteriorLocationComponent
の位置にスポーンしたいアクターのタグを設定して下さい。InqueryInteriorTags
内のタグがすべて一致したアクターがDungeonInteriorDatabase
から抽選されます。
例えばテーブルの上に古風なコップが置いてある場合、テーブルアクターのDungeonInteriorLocationComponent
のInqueryInteriorTags
にcup
とantique
を設定すると、DungeonInteriorDatabase
内にcup
とantique
が登録されたアクターがスポーン対象に選ばれます。
生成するStaticMeshを指定して下さい
1平方メートル当たりの密度を指定して下さい
地形を検出するコリジョンチャンネルを指定します。 通常はPawnとして他のコリジョンに衝突するか調べます。必要に応じて変更して下さい。
葉のインスタンスが、描かれている面の法線に合わせて垂直から角度を調整するかどうか。 AlignToNormalが有効でRandomYawが無効の場合、インスタンスは+X軸が斜面下を向くように回転します。
選択した場合、葉のインスタンスは垂直軸を中心にランダムに回転する。
フォリッジ・インスタンスは、水平から指定された角度範囲で傾斜している面にのみ設置される。
PerInstanceFadeAmountマテリアルノードを使用した場合に、インスタンスがフェードアウトし始める距離。0は無効。 クラスタ全体がこの距離を超えると、クラスタは完全にカリングされ、まったくレンダリングされなくなります。
- How to install DungeonGenerator plugin
- How to use DungeonGenerator plugin
- Prepare mesh parts
- Prepare DungeonGenerateParameter
- Generate a dungeon
- Applications
- Change log
- ダンジョン生成プラグインのインストール方法
- ダンジョン生成プラグインの使用方法
- メッシュパーツを用意する
- DungeonGenerateParameterを用意する
- ダンジョンを生成する
- 応用
- 変更履歴