Language:
Page Info
Skill Level:
Engine Version:

フォリッジ インスタンス化メッシュ

Foliage Tool

フォリッジ システムによって、ランドスケープ アクタ、他のスタティックメッシュ アクタ、BSP ジオメトリ上でスタティックメッシュをすばやくペイントまたは消去することができるようになります。 これらのメッシュは、ハードウェア インスタンシングを使用してレンダリングされるバッチに自動的に統合されます。つまり、1 回のドローコールで多数のインスタンスのレンダリングが可能になります。

Foliage ツールの使用例は、ランドスケープのコンテンツ サンプルフォリッジ のコンテンツ サンプルをご覧ください。

フォリッジ編集モード

Foliage ツールを使用するには、アンリアル エディタの左上隅にある [Modes] パネルの [Foliage] ボタン (Shift+4) をクリックします。

FoliageMode.png

[Modes] パネルに [Foliage Edit Mode (フォリッジ編集モード)] ウィンドウが表示されます。

FoliageWindowInitial.png

メッシュ リスト

メッシュ リストはフォリッジの配置時に使用するスタティックメッシュのエリアです。 スタティックメッシュをメッシュ リストに追加するには、コンテンツ ブラウザ からスタティックメッシュを Drop Foliage Here (フォリッジをここへドラッグ) と表示されている領域にドラッグします。

正しいアクタ タイプを追加しようとする場合のみ、フォリッジ タイプが黄色く表示されます。黄色く表示されない場合は、追加することはできません。

フォリッジとして使用しているスタティックメッシュのプロパティを調整するには、メッシュ リストからスタティックメッシュを選びます。次に、フォリッジ右下角にある小さな 虫眼鏡 のアイコンをクリックします。選択したスタティックメッシュの詳細が表示されます。

アイコンを押すと、以下のような画面が表示されます。

メッシュ リストでフォリッジ メッシュを選択する

メッシュ リストのフォリッジ メッシュは、リストのメッシュにマウスを当てて四角の左上のチェックマーク ボックスにチェックを入れる、または外すことで、有効と無効の切り替えができます。

Foliage_Selecting_Meshes.png

メッシュ リストでそれらをクリックしても、フォリッジ メッシュを選択することができます。 選択するとボックスがオレンジで囲まれて、以下のオプション パネルで各種プロパティの調整が可能になります。

ブラシの設定

Foliage_Brush_Settings.png

(上図の) メッシュ リストでは、Mesh Edit ツールが現在選択中の Foliage ツールに関連するプロパティを表示します。 (全ての設定に Foliage ツールが付いているわけではありません。)

アイテム

説明

Brush Size

ブラシのサイズをアンリアル単位で決定します。

Paint Density

マウスの左ボタン を使ってインスタンス追加する際の目標密度です。

  • この範囲は、 0 から 1 までです。値が 1 の場合は、各メッシュの Mesh プロパティ (下記参照) にある最大密度でメッシュ インスタンスをペイントします。

  • ブラシ内にあるメッシュの密度がすでにこの値を超えている場合は、メッシュがまったく追加されません。

Erase Density

Ctrl+Shift+ クリック でインスタンスを消去する場合に狙うターゲット密度です。

  • この範囲は、0 から 1 までで、0 はメッシュなし、1 は各メッシュの Mesh プロパティ (下記参照) にある最大密度でのメッシュ インスタンスを表します。この目標となる消去密度よりもメッシュが少ない場合は、メッシュがそれ以上消去されることはありません。

  • この設定項目によって、すべてのインスタンスを完全に除去することなく、すでにペイントされているメッシュを間引くことができます。

[Landscape (ランドスケープ)][Static Meshes (スタティックメッシュ)][BSP (バイナリ空間分割)][Translucent (透過)] のチェックボックスは、ツール使用時に設置するフォリッジ メッシュのアクタ タイプを決定するためのものです。 ここにチェックを入れると、アクタ タイプ上でツールを使用した時にフォリッジ メッシュが追加されることを表します。 チェックが外れていると、そのアクタ タイプ上にはフォリッジ メッシュが追加されないことを表します。

また、タブレットの圧力感受性がサポートされています。ペンの圧力によって、追加 / 削除されるフォリッジ メッシュ インスタンスの数を制御することができます (これは、他のパラメータがすべて考慮された上で実行されます)。

Foliage ツール

[Foliage] ウインドウの上部にあるツールバーから適切なボタンを選択すると、5 つのツールを使用することができます。

アイテム

説明

Paint Tool

Paint ツール は、フォリッジ インスタンスをワールドに追加したり、ワールドから削除するために使います。

Reapply Tool

Reapply ツール は、既にワールドにペイントされたインスタンスのパラメータの変更に使用します。

Select Tool

Selection ツール は、移動、削除などのために個々のインスタンスを選択するために使用します。

Paint Select Tool

Lasso ツール は、ペイントブラシを使って多数のインスタンスを選択するためのツールです。

Fill Tool

Fill ツール は、Paint ツールを使って配置するメッシュ数を決定するためのツールです。

Paint ツール

Paint Tool

Paint ツールは フォリッジ編集モードのデフォルトのツールです。レベル内のメッシュ リストのスタティック メッシュのインスタンスをペイントするためのツールです。フォリッジ編集モードがアクティブな場合、透明な球体ブラシがレベル内で描画され、フォリッジ ブラシが機能する場所を示します。以下の画像は、フォリッジのペイント ブラシのサンプルです。

Foliage_Paint_Tool_Gimzo.png

フォリッジのペイントは、 VR エディタでも機能します。VR でのフォリッジのペイントの制御については、VR エディタの調節 をご覧ください。

フォリッジをブラシの領域に追加する方法

  • マウスの左ボタン を押しながら、フォリッジを追加したい場所を クリック します。 メッシュ リストで現在選択されている全てのメッシュが、それぞれの現在のパラメータと設定に合わせて追加されます。

メッシュをペイントする場合、エンジンは、視線に平行に多数のライントレースを球体内部で実行します。つまり、球体内部に見えるサーフェスはどこもフォリッジ インスタンスの潜在的なターゲットになり得るということになります。

ブラシの領域からフォリッジを消去する方法

  • Shiftマウスの左ボタン を押しながら、フォリッジを削除したい場所を クリック します。

ペイントの設定項目

メッシュ リスト内にある各メッシュには、選択したスタティックメッシュのペイント時のインスタンスの配置、スケール、回転を制御するプロパティが多数あります。 これらのプロパティは、メッシュ リストに欲しいスタティックメッシュを 1 つ以上選択してアクセスし、以下のプロパティを調整します。

各セクションの使用目的の概要です。

プロパティ

説明

Mesh

使用するスタティックメッシュのタイプを入力します。

Painting

フォリッジ メッシュ間の最短距離、メッシュ追加時の密度、フォリッジ メッシュをスケールするか否かなどのプロパティを調整します。

Placement

レベルにペイントする際のフォリッジ メッシュの配置を制御します。

Instance Settings

このインスタンスのビヘイビアを調整し、コンテンツブラウザのスタティックメッシュから派生したプロパティを使用しないようにします。

Reapply (再適用) ツール

Reapply Tool

ワールド内に配置済みのフォリッジ メッシュのパラメータを選んで変更することができるツールです。 Reapply ツールを有効にしてフォリッジ メッシュ上をペイントすると、メッシュ リストで選択されたフォリッジ メッシュが更新されて、Reapply ツールで作成された変更が反映されます。

チェックボックスにチェックを入れると、既存のインスタンスの上をブラシでペイントしながら、そのチェックボックスに対応するパラメータを再適用することができます。 ほとんどの設定項目は、Paint ツールの場合と同様に使用できますが、相違点もいくつかあります。

アイテム

説明

Mesh

使用するスタティックメッシュのタイプを入力します。

Painting

フォリッジ メッシュをレベルに追加する時に何が起こるかをオーバーライドします。

Placement

レベル内でのフォリッジ メッシュの配置の仕方をオーバーライドします。

Select (選択) ツール

Select Tool

Select ツールが有効になっている場合は、個々のインスタンスをクリックすることによって選択が可能になります。 レベル内でフォリッジ メッシュをクリックしながら [Ctrl] ボタンを押すと、一度に複数のフォリッジ メッシュを選択することができます。

インスタンスを選択したら、それらに対して以下のアクションを実行することができます。

動作

結果

ウィジェット軸をドラッグする

選択したインスタンスはウィジェットに従って移動し、ウィジェット モードに応じて回転またはスケールします。

Alt キーを押下しながらウィジェットの軸をドラッグする

選択されているインスタンスがまず複製され、さらに、ウィジェットに従って動きます。

Dlete キー

選択されているインスタンスが削除されます。

End キー

選択されているインスタンスが、フロアにスナップしようとします。この設定項目が最初から有効になっていると、インスタンスが法線に平行になります。

各種 [Select (選択)] ボタンを使って、すべての Foliage Mesh アクタを選択したり、無効のフォリッジ メッシュを選択したり、選択を解除することができます。

Foliage_Select_Options.png

Lasso (投げ縄) ツール

Lasso Tool

Lasso ツールによって、Paint ツールでも使用される球体ブラシを使って、多数あるいは少数のフォリッジメッシュを同時に選択することができます。 フィルタリング設定を使えば、特定のオブジェクトに設置されるフォリッジ メッシュが選択されないようになります。 フォリッジ メッシュを選択するには、マウスの右ボタン を押しながらシーンの周辺でマウスを動かします。 フォリッジ メッシュの選択を解除するには、ペイント中に [Shift] キーを長押しします。 選択が完了すると、通常の選択ツールに切り替えて、フォリッジ メッシュの複製、移動、削除などの操作を行うことができます。

Lasso Tool

Fill (塗りつぶし) ツール

Fill Tool

レベル内のスタティックメッシュ アクタ全体をカバーするために使用するツールです。 Paint ツールと非常によく似ていますが、決定的な違いは一度のクリックでフォリッジ内のアクタ全体をカバーできる点です。 Fill ツールを使うには、フォリッジでカバーしたいスタティックメッシュ上で マウスの左ボタン をクリックします。 マウスをクリックした分だけ、フォリッジが追加されます。 フォリッジを削除するには、Shift キーを押しながら マウスの左ボタン で削除したいフォリッジのあるスタティックメッシュをクリックします。

Fill ツールで消去したフォリッジ メッシュを選択できない場合は、追加したフォリッジ メッシュではなく配置したアクタ上をクリックしていることを確認してください。

カリング

フォリッジ インスタンスがクラスターとして単一のドローコールでレンダリングされるため、各クラスターは、オクルージョンに基づいてレンダリングの可否が決定されます。End Cull Distance パラメータに値が設定されていると、この距離を超えてもクラスターがカリングされます。ただし、クラスター全体が範囲外になると、メッシュのグループが突然消滅してしまうことになります。

Start Cull Distance パラメータを追加し、マテリアルを正しく設定すればこの現象を緩和することができます。 頂点シェーダーにおいて、インスタンス毎の係数が計算されます。係数は、距離の始点で 1.0 から始まり、終点で 0.0 となります。 PerInstanceFadeAmount ノードを使用することでマテリアル内でアクセスできます。 この係数をオパシティまたはマスクの値と接続することによって、インスタンスが Cull Distance End に達する前にフェードアウトさせ、レンダリングから除外できます。

次のサンプルマテリアルでは、フェード係数によってマテリアルのマスクが乗じられています。その結果、フォリッジ メッシュの葉が、完全に消えるまで間引かれていきます。

Culling Material Example

LOD

スタティック メッシュの LOD はフォリッジでサポートされています。以下は注意事項です。

  • スタティック メッシュは Elements 配列への入力は 1 つだけであることを確認してください (LOD0 で表示可能)。

  • すべての LOD レベルで光源とシャドウマップが共有されているため、すべての LOD で同一のアンラッピングを使用する必要があります。

  • 現在のところ、インスタンスのすべてのクラスタが LOD を同時に変更します。将来、インスタンスごとに距離ベースのフェーディングをサポートする可能性があります。

ライティング

各メッシュインスタンスでは、Lightmass によってそれぞれのシャドウまたはライトマップ (またはその両方) が生成されます。これらは、事前計算されたバッチごとにまとめてタイル処理されます。事前計算された光源処理をインスタンス化したフォリッジで正しく機能させるために、スタティックメッシュの設定項目をいくつか確認します。インスタンス化されたメッシュ用にシャドウマップを生成する場合、Lightmass はより厳格です。不適切な設定を行うと、光源処理を再ビルドした後にメッシュが黒くなる場合があります。

  • Light Map Coordinate Index (ライトマップ座標インデックス) - ユニークな UV ラッピングを有する有効な UV チャンネルに設定されなければなりません。スタティックメッシュ エディタの Generate Unique UVs (一意のUV を生成) は、[Window] メニューから使用することができ、ユニークなラッピングをすばやく作成することができる機能です。

  • Lightmap Resolution (ライトマップ解像度) - この値を充分に小さくすることによって、 (デフォルトでは 100 である) 単一のクラスター内にあるインスタンスのための全シャドウマップが、最大テクスチャ解像度 (4094x4096) を超えることなくタイル処理されるようにしなければなりません。

フォリッジの拡張

フォリッジ スタティック メッシュは 拡張システム を使って、画面でレンダリング中のフォリッジ インスタンス数を増減できます。この機能を追加するには、以下の手順に従います。

Foliage Painting モードを使用するには、レベルにコリジョンが有効にされたランドスケープ テレインまたはスタティック メッシュが含まれていなければなりません。

  1. コンテンツ ブラウザの中を右クリックします。[Create Advanced Asset (詳細アセットを作成)] セクションの [Miscellaneous (その他)] セクションを展開して、[Foliage Type] オプションを選択します。

  2. Foliage Type の名前 (このサンプルでは FT_Box を使います) を入力して FT_Box Foliage Type をダブル クリックして開きます。

  3. FT_Box が開いたら、[Mesh] セクションと [Scalability] セクションを展開します。

  4. [コンテンツ ブラウザ] からスタティック メッシュを選びます (このサンプルではスターター コンテンツに入っている Shape_Cube を使います)。次に [FT_Box Foliage Type] の [Mesh] セクションで、コンテンツ ブラウザから [Shape_Cube][Mesh] オプションへドラッグします。

  5. [FT_Box] フォリッジ タイプの [Scalability] セクションで、[Enable Density Scaling (密度のスケールを有効にする)] の横のボックスをクリックすると、Scalability System がこのスタティックメッシュにアクセスすることができます。

    [Enable Density Scaling (密度のスケールを有効にする)] オプションは、通常は岩や低木などのコリジョンを持たない「詳細な」フォリッジに対してのみ 有効 にされます。インスタンスを除去してもコリジョンはゲーム中ずっと有効のままなので、コリジョンをもつ木などのフォリッジには 無効 にしておきます。

  6. [Modes] パネルの [Foliage Tool] を選択します。[FT_Box Foliage Type] を選んでコンテンツ ブラウザから [Drop Foliage Here (フォリッジをここへドロップ)] と表示されたエリアへドラッグします。

  7. Foliage Type リストに追加された [FT_Box] フォリッジ タイプを選択しします。ビューポートで FT_Bo Foliage Type メッシュのペイントを開始する位置で マウスの左ボタン を長押しします。

  8. ツールバー[Play (プレイ)] ボタンをクリックしてレベルを起動します。フォリッジの追加位置へ遷移します。

    Foliage_Scalability_07.png

  9. Backtick キー (`) を押して Console を開き、以下のコマンドに続けて 0 から 1 の間の小数を入力すると、フォリッジのレンダリング密度を制御することができます。

    • foliage.DensityScale

    Foliage Density Scale 設定の調整と結果の更新のリアルタイムの確認は、エディタ ビューポートでは機能しません。リアルタイムでフォリッジ密度を確認する唯一の方法は、プロジェクトが PIE、Simulate、Standalone などのゲームモードになっている間にコマンドを入力することです。

foliage.DensityScale を 0.1、0.2、0.3、0.4、0.5、0.6、0.7、0.8、0.9、1.0 に設定すると、フォリッジ密度は以下のように変化します。

スライダーをドラッグすれば foliage.DensityScale 設定を 0.1 から 1.0 の間で調整します。