UDN
Search public documentation:
ProceduralBuildingsJP
English Translation
中国翻译
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
中国翻译
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
プロシージャルビルディング
ドキュメントの概要:このドキュメントでは、Unreal Engine 3における、プロシージャルビルディング(手順に沿った建造物の作成)とFacade(ファサード)について説明します。 ドキュメントの変更ログ:作成および更新者:James Golding および Joshua Marlow概要
美しい建造物を作成するのは、大変な労力を要する仕事です。なぜなら、多くの場合、多数のメッシュを1つ1つ配置しなければならないからです。UE3におけるProcBuilding(プロシージャルビルディング)システムは、都市のビルを美しく素早く作成編集できるように設計されています。またこのシステムは、シンプルなメッシュとレンダーツーテクスチャを使用して、自動的に低LODバージョンのビルを作成することもできるため、大きな都市を作ることが可能になります。 このツールは、1回のクリックで都市全体を作成するようには設計されて*いません*。街路や都市のブロックを設計者に代わって設計してくれるわけではないのです。建造物の形状やレイアウトを設計しなければならないのはレベル設計者です。その際にこのツールは、メッシュを素早くシェープに適用するために使用することができるのです。 このシステムに関する講演は2010年のGDCで行われました。またUnreal Technology site には、スライドも用意されています。 注意: この作業はまだ進行中です。そのため、この機能は現時点で未サポートとなっています。どうぞ、フィードバックをお待ちしております。建造物の定義
ProcBuildings(プロシージャルビルディング)は、ボリュームの特殊なタイプにすぎません。このため、他のボリュームと同じように配置することができます。これを行うには、ビルダーブラシを調整し、Volume(ボリューム)リストからProcBuilding(プロシージャルビルディング)を選択します。次に、パッケージの中に ProcBuildingRuleset を作成します。このとき、Facade(ファサード)など、Kismet JP に似た新しいエディタを使用します。これによって、メッシュの適用の仕方が分かります。これによって、さまざまなルールセットをさまざまな建造物に試したり、建造物の形を変えられるようになります。また、メッシュも更新されます。ルールセットを適用するために必要なことは、ボリュームのRuleset(ルールセット)プロパティを設定する、またはContentBrowser(コンテンツブラウザ)からルールセットをドラッグアンドドロップするだけです。 手順例は、Procedural Buildings Tutorial JP (プロシージャルビルディングのチュートリアル)のページで見ることができます。建造物のグループ
単純ではない形の建造物を扱う場合、通常、複数のボリュームを使うのがよいでしょう。ただし、パフォーマンス上の理由で、これら複数のボリュームをグループにまとめる必要があります。そのためには、1つのボリュームをBase(ベース)ボリュームとして選び、その他のボリュームをBaseプロパティを使ってBaseボリュームに付属させます。これをきわめて簡単に実行するには、Attachments Editor JP (アタッチメントエディタ)を使用するか、コンテクストメニューでProcBuilding(プロシージャルビルディング) -> Group Building(建造物のグループ化)オプションを使用します。エディタのツールバー上にあるPrefab Lock(Prefabロック)ボタン(Pという文字)を使用して、ProcBuildingのgroups(グループ)全体を選択するか、特定グループ内の個々のProcBuildingボリュームを選択するかを決定することもできます。グループ内のBase ProcBuildingボリュームは、ワイヤーフレームが、通常の黄色ではなく緑色で表示されます。ワイヤーフレームは、ProcBuilding -> Select Base Building(ベースとなる建造物の選択)を使用して素早く選択することができます。 Baseとなる建造物に Ruleset (ルールセット)を設定するだけで、子建造物にもこれが適用されます。しかし目的に応じて、子ProcbuildingボリュームにRulesetを設定することも可能で、それによって、同一ProcBuildingグループにおける特定のエリアでの設定を優先させることができます。なお、1つの建造物グループに使用されるメッシュはすべて、Base ProcBuildingボリュームのものとなります。したがって、それらのメッシュをクリックした場合は、Base ProcBuildingボリュームを選択したことになります。建造物のプロパティ
ProcBuildingボリュームのプロパティは下記のとおりです。これらプロパティのうち多くのものに関しては、詳細が本ドキュメントで後述されます。Ruleset | このボリュームに適用されるProcBuildingRuleset |
---|---|
bGenerateRoofMesh | この建造物に対してルーフ(屋根)ポリゴンが生成されるかどうかを制御する。 |
bGenerateFloorMesh | この建造物に対してフロアポリゴンが生成されるかどうかを制御する。 |
bApplyRulesToRoof | 壁だけではなく建造物のルーフにもRulesetを適用する場合 |
bApplyRulesToFloor | 壁だけではなく建造物のフロアにもRulesetを適用する場合 |
bSplitWallsAtRoofLevels | 建造物グループ全体を、それぞれのルーフのレベル(高さ)で水平に分割する場合 |
bSplitWallsAtWallEdges | 他の建造物のフェースが交差しているときに、建造物の表面を垂直に分割する場合 |
SimpleMeshMassiveLODDistance | 建造物を低LODバージョンに移行する距離 |
RenderToTexturePullBackAmount | LOD向けレンダーツーテクスチャを生成する場合、建造物からプルバックする距離(および詳細度を削減する距離) |
RoofLightmapRes | 建造物のルーフをライティングする際に使用する解像度 |
NonRectWallLightmapRes | 四角形以外の壁ポリゴンをライティングする際に使用する解像度 |
LODRenderToTextureScale | LOD向けレンダーツーテクスチャの解像度を制御する |
BuildingMaterialParams | 特定の建造物のメッシュに適用されるMaterialInstances(マテリアルインスタンス)に設定する追加パラメータ。着色された壁などに使用することができる。 |
bBuildingBrushCollision | 建造物のボリューム自体にコリジョンを有効にする場合 |
Rulesets(ルールセット)
建造物システムではまず、設計者指定のボリュームから1組の四角形 スコープ が抽出されます。これらのスコープによって、メッシュシステムにとって基本となる作業ユニットが形成されます。各スコープは、空間において、ロケーションとローテーションを持つとともに、X-Z次元を持ちます(Xは横方向、Zは上方向)。しかし、建造物のすべての壁が四角形になるとは限りません。そのような場合、システムは2つの平行なエッジ(縁)を検出し、残りのエリアを埋める平坦なポリゴンを生成することによって、四角形を抽出します。
- 1つのスコープを、より小さなスコープに分割する。
- スコープのスペース全体にメッシュを配置する。

Rulesetのプロパティ
新しいRulesetを(コンテントブラウザを使用して通常の方法で)作成した後は、Facadeエディタで開くことができます。ルールノードが選択されていない場合は、Ruleset自体がプロパティウインドウに表示されます。DefaultRoofMaterial | 建造物のルーフポリゴンに適用されるマテリアル |
---|---|
DefaultFloorMaterial | 建造物のフロアポリゴンに適用されるマテリアル |
DefaultNonRectWallMaterial | 壁スコープのまわりの穴を埋めるために作られるポリゴンに使用するマテリアル |
RoofZOffset | ルーフポリゴン(建造物全体の最上部に位置する)に対してZ軸方向に適用されるオフセット。多くの場合、ルーフのまわりの壁を作るには、 RoofEdgeScopeRaise (ルーフのエッジスコープを上げる)がより適切な方法となります。 |
NotRoofZOffset | ルーフポリゴン(建造物全体の最上部以外のすべてのボリューム)に対してZ軸方向に適用されるオフセット。多くの場合、ルーフのまわりの壁を作るには RoofEdgeScopeRaise (ルーフのエッジスコープを上げる)がより適切な方法となります。 |
FloorZOffset | フロアポリゴン(建造物全体の底部に位置する)に対してZ軸方向に適用されるオフセット |
NotFloorZOffset | フロアポリゴン(建造物全体の底部以外のすべてのボリューム)に対してZ軸方向に適用されるオフセット |
RoofPolyInset | ルーフポリゴンの頂点にプル「イン」する距離 |
FloorPolyInset | フロアポリゴンの頂点にプル「イン」する距離 |
BuildingLODSpecular | 建造物の低LODバージョンのスペキュラ全体を制御する |
RoofEdgeScopeRaise | 建造物のルーフのわまりに低い壁を作り、ルーフを修正するすべてのスコープをこの分量だけ拡張する |
LODCubemap | 建造物の低LODバージョン上にあるキューブマップエリア(通常はガラス)に使用するキューブマップテクスチャ |
bLODOnlyRoof | 値がTRUEの場合、建造物の低LODバージョン用にのみルーフポリゴンが作成される |
メッシュルール
これはきわめて重要なルールです。パスインされたスコープのサイズとロケーションを使用することによって、実際に建造物にメッシュを追加します。メッシュは常に左下コーナーが原点で、上がZ軸、右がX軸になるように作成する必要があります。メッシュが占る予想スペースの大きさも指定しなければなりません。これはその後、与えられたスペースを埋めるメッシュの大きさを調整するために使用されます。これによって、パスインされるスコープの区域外に拡張する機能(たとえば、レーリングまたはトリム)を利用できるようになります。 メッシュのノードはそれぞれ、_BuildingMeshes_ という名の固有のStaticMeshes配列に対応し、そのリストからランダムに選択されます。次の設定は、その配列内にある各メッシュに対して使用できます。Mesh | 使用するStaticMesh(静的メッシュ) |
---|---|
DimX | メッシュのX軸(幅) |
DimZ | メッシュのZ軸(高さ) |
Chance | このメッシュが配列から選択される可能性 |
Translation | 配置時にメッシュに適用するオプションのトランスレーション(またはトランスレーション範囲) |
Rotation | 配置時にメッシュに適用する、オプションのローテーション角度(またはローテーション範囲) |
bMeshScaleTranslation | 値がTRUEの場合、指定されたTranslation(トランスレーション)が、メッシュに適用された任意のスケール設定でスケールされる |
bOverrideMeshLightMapRes | 値がTRUEの場合、メッシュ上に設定された解像度のかわりに、OverriddenLightMapResを使用する |
OverriddenMeshLightMapRes | bOverrideMeshLightMapResがTRUEの場合、このメッシュのライティングに使用する解像度 |
SectionOverrides | このメッシュのセクションそれぞれに対して、ランダムなオーバーライドとして適用するマテリアルの範囲を指定する |
オクルージョンテスト
メッシュルールには重要な機能がもう1つあります。それは、パスインされたスコープが建造物の他の部分と交差するかどうかを検証する機能です。次の画像を検討してみましょう。

コリジョン
デフォルトでは、ProcBuildingの一部として使用されるメッシュには、非ゼロ範囲のプレイヤーコリジョンがありません(ゼロ範囲の武器コリジョンだけがある)。プレイヤーコリジョンは、ボリューム自体(ブロッキングボリュームなど)があるときにしか発生しません。これには、次のような利点があります。- コリジョンがスムーズで速い。
- ProcBuildingのルールセットが変更されても、コリジョンが変化しない。
反復ルール
このルールは、スコープを軸方向に分割して多数の小さなスコープにします。

分割ルール
このノードは、スコープを定義済みの _SplitAxis_ に基づいて小さなスコープに分割するという点で、反復ルールに似ています。ただし、反復ルールが、入力スコープのサイズに従って多様な数のスコープを生成するのに対して、分割ルールの方は、(入力が小さすぎない限り)常に同一数の出力スコープを生成します。
bFixSize | 値がTRUEの場合、このアウトプットは _FixedSize_ に固定される。FALSEの場合、この出力は入力スコープと同様に拡張される。 |
---|---|
FixedSize | bFixSizegaがTRUEの場合にのみ使用され、出力スコープの大きさを正確に定める。 |
ExpandRatio | 複数のエントリでbFixSizeがFALSEに設定されている場合に、拡張の程度を制御する。大きな数は、入力が大きくになるにつれ拡張性が増すことを意味する。 |
SplitName | ルールノードで作られた出力にラベルをつける。 |
代替ルール
建造物には、常に同じフィーチャー(外見)の間に他のフィーチャーが存在する部分があります。これを反復ルールと分割ルールだけで処理するのは難しいため、このような場合は代替ルールを使用します。

bInvertPatternOrder | 固定サイズのAにかわって、可変サイズのBで開始および終了することができる(ABABAからBABABに変更するということ)。 |
---|---|
bEqualSizeAB | 値がTRUEの場合は、強制的にAとBを同じ大きさにする。 |
オクルージョンルール
メッシュルールのノードで述べたように、スコープのオクルージョンテストを実施するのが望ましい場合があります。このルールノードでは、どのスコープに対してもこのテストを行うことができます。これは、メッシュを配置する直前に行うべきではありません。たとえば建造物のフロアは、分割して中央ドア用のスペースを作る前にテストします。トップ/ボトムルール
建造物ボリュームから抽出された各スコープは、同じルールセットに所属します。そのため、複雑な建造物の場合、外見が奇妙なものになることがあります。たとえば、ルールセットによって各スコープのボトム(底)部分に店が配置される場合、建造物の上部の正面が、意味もなく店になってしまうことがあります。これに対処する目的で、トップ/ボトムルールノードでは、スコープのトップまたはボトムが、ProcBuildingボリュームグループ全体のトップかボトムと同じかどうかを検証することができるようになっています。下の例は、このことを分かりやすく説明しています。
ランダムルール
メッシュルールでは、セットから1つのメッシュを選択することは可能ですが、もっと早い段階でルールセットの制御を行いたい場合もあります。たとえば、建造物の特定のフロアやフェースが全く異なる外見になるように選択したい場合などです。または、セットから2つ以上のオプションを選択したい場合も考えられます。これらは、ランダムルールによって可能になります。まず、 _NumOutputs_ プロパティを使用して必要な出力の数を指定します。次に、 _MinNumExecuted_ プロパティおよび _MaxNumExecuted_ プロパティを使って、それらの出力のうちいくつ適用されてよいかを決定します。このルールを使用すれば、複数のメッシュの上に相互にランダムで重ねることができます。たとえば、建造物の特定部分に、異なる空調装置、看板、ライトを選択することができます。下の図はその一例です。


四角形ルール
タイル状マテリアルをともなったフラットな四角形のメッシュが建造物の一部に最適な場合があります。このルールでは、そのようなことが可能になります。2つの三角形からなる四角形のメッシュを建造物に追加する場合と同様に、このルールではUVが調整されるため、スコープのサイズに基づいてタイル貼りを行うことできます。これを制御するには、反復ルールのときと同様に、 _RepeatMaxSizeX_パラメータおよび_RepeatMaxSizeZ_パラメータを使用します。なお、メモリには四角形メッシュのコピーが1つしかありません。また、UVインスタンス単位の調整は、マテリアルインスタンスを使用して行われます。以上は自動的に実行されますが、(_Material_パラメータを使用することによって)四角形に適用されるベースマテリアルが、必ず、U_Scale、U_Offset、V_Scale、V_Offsetの4つのパラメータに対応するようにしてください。また、四角形に適用されるマテリアルインスタンスの基礎として使用できる、_EngineBuildings.BuildingQuadMaterial_というマスターマテリアルというものもあります。以下は、建造物の1つのフェースに適用される四角形ルールの使用例です。
サブルールセット
ルールセットでは、非常に複雑な図式を作成することも可能です。また、他の複数のルールセットに使用する目的で、ルールセットの一部を作成する場合もあります(特定の詳細度のショップの前面エリアなど)。そのためには、サブルールセットのノードを作成し、_SubRuleset_プロパティを使用して他のルールセットをポイントすることができます。ノードにパスされるものであれば、どんなスコープでも、そのルールセットの開始個所にパスされます。このようにすることで、各ルールセットのサイズを小さく維持でき、不要な重複を避けることができます。なお、ルールセットどうしが参照しあう「ループ」を作らないように注意してください。サイズルール
このルールでは、スコープの次元に基づいて、選択が容易になります。まず、 SizeAxis プロパティを使って目的の軸を選びます。次に、決定対象のサイズを選択します。スコープの次元がこれよりも小さい場合は、Less(小)出力からパスされます。そうでない場合は、Greater/Equal(大/同)出力からパスされます。_bUseTopLevelScopeSize_オプションを利用すると、パスインされるスコープに基づく決定ではなく、トップレベルのスコープ(建造物全体のフェースのサイズ)に基づく決定が可能になります。 サイズルールは、メッシュが過度にスキッシュされることを防ぐ目的で使用できます。下の例では、3つの窓のメッシュがスキッシュされ、見栄えが悪くなっています。スペースが狭い場合は、サイズルールを利用して、2つ窓または1つ窓のバージョンを使用します。トリムについても同様のことが行われます。
コメント
この特殊なノードには何の機能もありませんが、ルールセットエリアのまわりにボックスを配置して、コメントを入れられるようになります。この方法は、Kismetと同様のものです。バリエーションルール
デフォルトでProcBuildingに適用されているルールセットは、すべてのフェースに適用されます。しかし、さまざまなフェースの上にさまざまな外観を持たせたいときもあります。これを実現するには、バリエーションルールを使います。ルールセットにバリエーションを追加するには、まず、Facade内でルールセット自体を選択する必要があります(すべてのノードを非選択状態にすることによって可能)。これで、要素を_Variations_ 配列に追加することができます。バリエーションには名前をつけます(「PlainBrickSide」など)。これによって、バリエーションルールのノードをFacadeにいつ配置しても、ルールセット用に作った新たな各バリエーションに対して、1つの出力ができることになります。それに加えて、トップにデフォルトの出力もあります。 レベル設計者が、建造物のフェースに特定のバリエーションを用いるには、次のようにするだけです。- ジオメトリエディティングモードにする。
- 変更したい建造物ボリュームのフェース(複数可)を選択する。
- 右クリックしてProcBuildingのメニューを選択する。
- リストから目的のバリエーションを選択する。


エッジメッシュルール
各フェースのエッジをフラットにするルールセットを作れることがあります。その場合、コーナーもごく自然に機能します。そのような例を下に示します。

コーナールール
建造物のコーナーを最大限美しく見せるには、フェース間のさまざまな角度を処理できるカスタマイズされたコーナーメッシュを作成すべき場合がしばしばあります。コーナールールのノードは、この処理が簡単にできるように設計されています。コーナールールを使用した場合、各スコープは左側のエッジを「所有している」ものとして指定されます。パスインされたスコープの左側と右側の部分が分割されます。それとともに、左側で、フェース間角度に最も適合するアウトプットからスコープが作られ、パスされます。右側については、ギャップが放置されます。これは、建造物を右に回ったところのスコープによってフィルインされると想定されているためです。
FlatThreshold | 2つのスコープ間のアングルがこの量(角度)よりも小さい場合、メッシュは追加されない。 |
---|---|
bNoMeshForConcaveCorners | TRUEの場合、スペースが残らない、または凹面のコーナーにメッシュが挿入される。 |

ルーフルール
カーブのあるコーナーや斜めになっているコーナーを使う場合に起きる問題には、ルーフポリゴン(ProcBuildingボリュームフェースに基づいて生成される)が、実際のルーフの形と合わないというものがあります。これに対処するには、コーナーノードで情報をいくつか追加指定します。ルーフポリゴンのコーナーの形は、この情報に従って変更されます。なおシステムは、最も高いコーナーノードを特定することによってこの情報を得ます。

CornerType | コーナーの形。EPBC_Default (標準の四角いコーナー)、EPBC_Chamfer (斜めにカットされたコーナー)、EPBC_Round (丸いコーナー)のいずれか。 |
---|---|
RoundTesselation | コーナーの形がEPBC_Roundの場合、コーナーを丸めるのにどの程度細分化処理を行うか制御する。 |
RoundCurvature | 丸いコーナーの形を制御する。 |
CornerShapeOffset | カーブメッシュ領域開始からどのくらいの位置で、ルーフポリゴンの面取り/丸め調整を実際に行うかを制御する。 |
水平分割
建造物を作成するには、トップレベルのどのスコープが、それぞれのエッジの部分で整合するのかが、システムによって認識されなければなりません。これが難しくなるのは、3つ以上のエッジが1つのエッジで整合する場合です。次の画像をご覧ください。


LOD
ProcBuildingグループはすべて、レンダーツーテクスチャの技術を使うことによって、建造物の低詳細度StaticMeshバージョンを自動的に生成します。これによって、エンジンは低LODの建造物を1回の描画コールで描くことができます。フェースはすべて1つのマテリアルにアトラスされます。建造物のジオメトリとは、本質的に、使用されているボリュームの形状です。しかし、LODの建造物には_RoofEdgeScopeRaise_などの機能が使用されているため、LODにはルーフのまわりの小さな壁が依然として存在します。その結果、建造物のシルエットが変化しません。以下は、建造物のために生成された単一メッシュのLODの例です。
窓
建造物の窓の多くはガラスなので、通常は反射するキューブマップで処理します。そのためLODには、反射する窓のマスクが必要です。これを使用しない場合は、窓が反射しなくなるとともに、移行時に非常に目立つポップができてしまいます。これは自動的に実行されますが、メッシュに対して設定を行う必要があります。低LODテクスチャを生成する際は、建造物に対して以下の3つのレンダリングパスが実行されます。- Unlit(アンリット) ディフューズ色を集める
- Lighting Only(ライティングのみ)
- Window Mode(窓モード) 窓はすべて白くなり、窓以外の領域は黒くなる


ストリーミング
単一セクションのメッシュからなる低LODとは異なるサブレベルに、高詳細度の建造物(多数のメッシュインスタンスから作られる)を置くことが必要になる場合がしばしばあります。これは、システムによって自動的にサポートされます。ProcBuildingをストリーミングサブレベルに追加した場合は、自動的に新しいサブレベルが生成されます。high detail(高詳細度)レベルと同じ名前になりますが、_LODというサフィックスがつきます。たとえば、ProcBuildingをCityBlock_01に追加した場合、CityBlock_01_LODという名前の新たなストリーミングレベルが自動的に生成され、ProcBuilding_SimpleLODActor(StaticMeshActorの単なるサブクラス)がそこに追加されます。低LODを、_Pマップの中に持つのではなく、それ自身のサブレベルの中にもつ理由は、_Pマップをチェックアウトすることなく街エリアの作業が可能になるためです。高詳細度のProcBuildingを編集した際は、低詳細度バージョンも自動的に更新されます。多くの場合、高詳細度と低詳細度の両バージョンの街ブロックをチェックすることをお勧めします。 なお、ProcBuildingをサブレベルのないマップに追加した場合、LODマップは追加されません。ProcBuilding自体が低詳細度メッシュをもつことになります。付属
StaticMeshActorをProcBuildingに付属させる場合(通常のBaseプロパティを使用して)、建造物が低LODバージョンに切り替わるときにそのメッシュが隠されます。低LODバージョンには、テクスチャにレンダリングされたその静的メッシュのバージョンがあるため、これは通常望ましいことです。StaticMeshActor(空調装置など)をProcBuildingの上に配置した場合、自動的にその建造物に付属することになります。この機能は、StaticMeshActor上で_bDisableAutoBaseOnProcBuilding_プロパティを使用して無効にすることができます。移行
Unreal Engineでは、移行/LODに対してディザーアプローチをとっています。ただし、これを機能させるには、建造物メッシュ(または建造物に付属するStaticMeshActorsで使用されるメッシュ)に適用されるあらゆるマテリアルに対してい、_bUsedWithScreenDoorFade_プロパティをTRUEに設定します。その他の機能
建造物のステータス
エディタに新しいタブができました。街にある建造物についてのステータスを表示できます。建造物それぞれに1つの列が当てられており、コンポーネント、トライアングル、ライティング、LODテクスチャのメモリ使用状況についての情報が見れます。これは、ルールセットをもっと単純にすべき建造物を探す際に大いに役立ちます。そのような建造物は、サイズが非常に大きい、ルールセットでライティング設定を調整する必要がある、メッシュを単純化する必要がある、と考えられます。列をダブルクリックすると、それに対応する建造物が表示されます。
マテリアルのパラメータ
建造物メッシュのマテリアルにおいて、特定したパラメータを建造物単位で設定することが可能です。それには、ProcBuilding上の_BuildingMaterialParams_配列に要素を追加し、パラメータの名前と目的の色を入力します。これは、固有のルールセットを多数作らなくても街に視覚的バラエティをもたせることができる効果的な方法です。次は、この機能の利用例です。一並びになっている建造物は、同じルールセットを使いながらも、この機能を利用することによって壁の色が変化しています。
マテリアルのオーバーライド
生成されたルーフ、フロア、四角形の壁のポリゴンに使用されているマテリアルは、ProcBuilding単位でオーバーライド(設定変更)することができます。それには、ジオメトリモードに切り替え、代わりに使用したいマテリアルを選択し、フェース(複数可)を選び、右クリックしてProcBuilding -> Apply Material (MaterialName) To Face(マテリアル(マテリアル名)をフェースに適用)を選択します。マテリアルのオーバーライドをフェース単位ですべてクリアするには、建造物を右クリックしてProcBuilding -> Clear Material Face Assignments(マテリアルフェース割り当てをクリア)を選択します。ルーフとフロアのメッシュ
前述したように、デフォルトでは、メッシュルールは建造物のルーフやフロアに適用されません。しかし、橋のような建造物の下にそれを支える梁を付け加える場合などには、これが必要となる場合があります。これには2つのモードがあり、ProcBuilding 上で_bApplyRulesToFloor_ または _bApplyRulesToRoof_を設定すると、抽出されているスコープと実行されているルールが、ルーフとフロアのいずれかまたは両方に対して有効になります。ルールセットのバリエーション設定の内部には、_bMeshOnTopOfFacePoly_という名前の追加オプションがあります。これを有効にすると、システムによって、通常のフロアまたはルーフのポリゴンが生成されて、それにルールが適用されます。次の例をご覧ください。通路の下側が、これに該当します。