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 ツール

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

アイテム

説明

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 はより厳格です。不適切な設定を行うと、光源処理を再ビルドした後にメッシュが黒くなる場合があります。

  • 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 の間で調整します。