Procedural Foliage ツール クイックスタート

Procedural Foliage ツールの設定および使用方法を説明します。

Windows
MacOS
Linux

このクイックスタート チュートリアルでは、 Procedural Foliage ツール がどのように動作するのかを説明します。このチュートリアルでは、Procedural Foliage ツールのみを使って UE4 内に森ひとつ分の木を作成、設定、スポーンします。仮想の森がプロジェクトのニーズを満たすために必要な主要プロパティと設定も紹介します。

T_PF_QS_Final_Product.png

正確に機能し、求めている結果を出すために、Procedural Foliage ツールに必要なアセットとプロパティはすべて公開されます。このクイックスタートを完了すると、上のようなレベルが出来あがります。

前提条件

プロジェクトで Procedural Foliage ツールを使う前に、以下の手順でプロジェクトの [Procedural Foliage] を有効にしなければなりません。

  1. メイン メニュー[Edit] オプションをクリックし、次に [Editor Preferences (エディタの環境設定)] をクリックします。

    PFS_EditorPrefs.png

  2. Editor Preferences の [Experimental] セクションを 右クリック します。

  3. Experimental セクションの「Procedural Foliage」の文字の横にあるチェックマーク ボックスをクリックして、[Procedural Foliage] オプションを有効にします。

    PFS_EditorPreferences.png

コレクションのコンテンツの中には以下のクイックスタートで使うものもあるので、Unreal Engine Marketplace から Open World Demo Collection コンテンツ パックもダウンロードしてください。Open World Demo Collection をダウンロードしたら、このクイックスタートで使用するプロジェクトに追加してください。

  1. Epic Games ランチャーでマーケットプレイスでを探し Open World Demo Collection をダウンロードします。

    T_OWT_OWDC.png

  2. ランチャーの [Library] セクションの [Vault] セクションで Open World Demo Collection を見つけてください。

    T_OWT_Add_Content_00.png

  3. [Add to Project (プロジェクトを追加)] ボタンをクリックします。

    T_OWT_Add_To_Project.png

  4. このクイックスタートで使用するプロジェクトが表示されるので、このクイックスタートで使用するプロジェクトを選択して、[Add to Project (プロジェクトへ追加)] を押してコンテンツを追加します。

    T_OWT_ATP.png

1 - Foliage Type アクタを作成する

このステップでは、Procedural Foliage ツールが必要とするレベル、ランドスケープ テレイン、すべてのアセットを新規作成します。

  1. Default Template をベースに使ってレベルを作成します。

    T_New_Level.png

  2. まず [Landscape] パネル を開くために [Modes] ドロップダウンで [Landscape] を選択してレベルに新しい Landscape アクタを追加し、次に[Create (作成)] ボタンを押してその Landscape アクタをレベルに追加します。

    Modes_Landscape.png

    Landscape Terrain アクタを使用すると、多数のスタティックメッシュをスポーンする広い領域がすぐに与えられます。

    Placed_Landscape.png

    ランドスケープ テレインを使った作業に慣れていない、もしくは詳しく知りたい場合は、「

    [ランドスケープ屋外テレイン](Engine/Landscape)
    」を参照してください。

  3. コンテンツ ブラウザ右クリック して [Foliage] セクションを展開して [Procedural Foliage Spawner] をクリックして新しい Procedural Foliage Spawner を作成します。

    T_Create_PFS.png

  4. このサンプルでは、Procedural Foliage Spawner に 「PFS_Example」 という名前を付けます。

    T_Name_PFS.png

  5. Procedural Foliage Spawner を コンテンツ ブラウザ からレベルにドラッグし、レベルの中央もしくは X、Y、Z が 0,0,200 になるように配置します。

    PFS_PlacePFS.png

  6. 森をスポーンするための広い領域を作成するために、X、Y、Z 軸が 100,100,10 になるように Procedural Foliage Spawner をスケールします。

    PFS_ExampleDetails.png

  7. スポーナーができたので、スポーンするためにフォリッジを決める必要があります。コンテンツ ブラウザ右クリック し、[Foliage] セクションを展開して [Static Mesh Foliage] をクリックします。 Static Mesh Foliage に「Tree_00」などの名前を付けます。

    T_Create_FT.png

  8. そうならなかった場合は、[Save All (すべて保存)] ボタンでコンテンツを、[Save (保存)] ボタンでレベルと保存して、作業とレベルを保存してください。レベル名を求められたら、PFT_00 としてください。この時点では、以下のようになります。

    T_Save_All.png

2 - スポーン対象をスポーナーに指示する

次のセクションでは、Procedural Foliage Spawnerで作業するために Foliage Type アクタ を設定する方法を説明します。前のステップで作成した PFT_00 レベルを引き続き使用します。

  1. まずコンテンツ ブラウザ内を ダブルクリック して Procedural Foliage Spawner を開きます。

    T_PFS_Opened.png

  2. [Foliage Types (フォリッジ タイプ)] メニュー オプションの右側にある [+] 記号の アイコンをクリックして、新規アイテムを Foliage Types 配列に追加します。

    T_PFS_Add_FT.png

  3. コンテンツ ブラウザで Tree_00 Static Mesh Foliage を選択し Foliage Type Object へドラッグする、または 矢印 アイコンを押して選択した Static Mesh Foliage を Procedural Foliage Spawner へロードします。

    PFS_AddFoliageMesh.png

  4. コンテンツブラウザで ダブルクリック して Tree_00 Foliage Type を開きます。

    T_PFT_Window.png

  5. Tree_00 Static Mesh Foliage の一番上の [Mesh] セクションの [None] というドロップダウン メニューをクリックします。

    T_PFT_Mesh_Section.png

  6. 検索用語に「HillTree_02」と入力するか、リストをスクロールして、Open World Demo Collection から HillTree_02 を見つけてクリックしてロードします。

    PFS_SelectHillTree_02.png

  7. ビューポートに戻ってレベルに置いた Procedural Foliage Spawner を選択し、[Details (詳細)] パネルの [Procedural Foliage] セクションを展開します。

    T_PFV_Select_In_Level.png

  8. [Procedural Foliage] セクションの [Resimulate (再シミュレーション)] ボタンをクリックすると、たくさんの木で埋め尽くされた Procedural Foliage Spawner が見えるようになっています。

    T_Final_Results.png

    正しい結果を表示するためには、メイン ツールバー[Build] をクリックして、[Resimulate] を使用するたびにライティングを再ビルドして Procedural Foliage を作成または変更する必要があります。膨大な数のスタティックメッシュを使用している場合、このプロセスには長時間かかる場合があります。

3 - Foliage Type のプロパティを調整する

Foliage Type Objects (Static Mesh Foliage と Actor Foliage の両方) に付いている様々なプロパティを調整することで、レベル内のオブジェクト上での配置の仕方から、フォリッジ スポーナー中への増やして広がらせる方法まで、フォリッジスポーなーのすべての項目を制御できます。次のセクションでは、Foliage Type Objects で使用できるプロパティ、およびそれらを使って期待通りの結果を出す方法について説明します。前のステップで作成した PFT_00 レベルを引き続き使用します。

  1. Tree_00 Static Mesh Foliage を開きます。

  2. [Placement (配置)] を展開して、[Align to Normal (法線に合わせる)][Random Yaw (ランダムなヨー)] の両方が有効になっていることを確認してください。

    T_Placement_Options.png

    [Placement (配置)] セクションは、レベルのオブジェクト上に置かれた Foliage Type Object へのメッシュの使用方法を調整します。

  3. Static Mesh Foliage の [Procedural] セクションの [Collision] セクションを展開して、[Shade Radius (シェードの半径)]50 に設定します。

    T_Shade_Radius.png

    [Collision] セクションは、2 つの Foliage Type Object が同じスポーン位置あるいは関連空間に対して競合した場合、どちらを削除するか決定します。Virtual Seed のコリジョン半径が、別の Foliage Type Object の Virtual Seed からの既存コリジョンまたはシェードの半径にオーバーラップすると、どちらの Foliage Type Object が優先されるかによって Virtual Seed は置き換えらるか、またはキルされます。

  4. 次にレベルに配置した Procedural Foliage Spawner をビューポートから選択し、[Procedural Foliage] セクションを拡張して、[Resimulate (再度シミュレーション)] ボタンをクリックします。

    T_Press_ReSimulate.png

  5. Static Mesh Foliage で、[Collision] セクションを折り畳み [Clustering] セクションを展開します。次に、[Num Steps]0 に設定してすべての木のサイズと年齢がが同じになるようにします。そして [Resimulate (再度シミュレーション)] ボタンを押します。入力すると、以下のようになります。

    T_Num_Steps_0.png

    [Clustering] セクションは、密度 (density)、存在時間 (age)、近接度 (proximity) など様々なプロパティを使って、指定した Foliage Type Object のメッシュ インスタンスが Procedural Foliage Spawner の内部でどのように配置、グループ化、広げられるかを決定しやすくします。

  6. 木の間にいくらか空間はありますが、全体的にまだ密度が高すぎます。これを修正するために、[Initial Seed Density (初期シード密度)]0.25 に設定して、[Resimulate (再度シミュレーション)] ボタンをクリックします。

    T_Num_ISD_0.125.png

  7. ご覧の通り、[Initial Seed Density (初期シード密度)] を 0.25 に設定すると、森の密度が大幅に下がってしまいました。これは、木の成長と拡散を 1 年分しか行っていないからです。これを修正するために、[Num Steps] を 3 に戻すことで木を 3 年分成長および拡散させます。そして [Resimulate (再度シミュレーション)] ボタンをクリックします。

    T_Num_Steps_3.png

  8. [Growth] セクションを展開して、以下のパラメータを以下の設定値にします。

    • Max Age:20.0

    • Procedural Scale Max:10.0

    T_Set_Growth.png

    [Growth] セクションは、レベルに表示される Foliage Type Objec のメッシュ インスタンスの時間経過に伴う成長方法の調整をします。

  9. 最後に [Instance Settings (インスタンス設定)][Cull Distance (カリング距離)] で、Max 値を 20,000 に設定して、[Resimulate (再度シミュレーション)] ボタンをクリックします。入力すると、以下のようになります。

    T_Cull_Distance.png

    Instance Settings は、レベルに表示される Foliage Type Objec のメッシュ インスタンスの使用方法を調整します。Instance Settings で、Cull Distance、Shadowing、Collision などの様々なプロパティの設置や調整ができます。

4 - 複数のフォリッジ タイプを使う

木の種類を追加すると、架空の森がよりリアルになり、全体的な見た目と質感がぐんと増します。幸運にも Procedural Foliage Spawner を使えば、1 つの Procedural Foliage Spawner が複数の Foliage Type Object をスポーンして、多種多様な木で構成される森をスポーンできるようになります。次のセクションでは、複数のフォリッジ タイプで作業するための Procedural Foliage Spawner の設定方法を説明します。前のステップで作成した PFT_00 レベルを引き続き使用します。

  1. まずコンテンツ ブラウザの Tree_00 Static Mesh Foliage を選択し、キーボードの Ctrl + W を押して複製し 「Tree_01」と名付けます。

    T_Dup_FT.png

  2. 新規作成した Tree_01 Static Mesh Foliage を開き、[Mesh] セクションでメッシュを ScotsPineTall_01 スタティックメッシュに変更します。

    T_New_Mesh.png

  3. コンテンツ ブラウザ から Procedural Foliage Spawner を開き、[Foliage Types] セクションを展開します。

    T_Expand_FT.png

  4. [+] 記号のアイコンをクリックして、別の Foliage Type Object を入力するオプションを追加します。

    T_Add_New_FT.png

  5. コンテンツ ブラウザで Tree_01 Static Mesh Foliage を選択し Foliage Type Object へドラッグする、または 矢印 アイコンを押して選択した Static Mesh Foliage を Procedural Foliage Spawner へロードします。

    PFS_AddFoliageMesh2.png

  6. レベル内に置いた Procedural Foliage Spawner を選択し、[Resimulate (再度シミュレーション)] ボタンをクリックします。完了すると以下の画像のようになります。

    T_2_FT_In_Level.png

  7. さらに森を自然に見せるために、Tree_01 Static Mesh Foliage を開いて、パラメータと値を以下のように変更します。以下の数値とオプションを使うと、既に使用した Static Mesh Foliage とインタラクションして、森の群がり方と成長の様子が興味深いものになります。オプション、オプション項目ご自分のニーズにぴったり合うものが見つかるまで、これらの値とオプションであれこれ試してみてください。

    • Num Steps (階段数): 4

    • Initial Seed Density: 0.125

    • Average Spread Distance: 100

    • Can Grow in Shade: Enabled

    • Spawns in Shade: Enabled

    • Max Age: 15

    • Overlap Priority: 1

    • Procedural Scale: Max 5.0

  8. 設定を変更したら、Procedural Foliage Spawner 上の [Resimulate (再度シミュレーション)] ボタンをクリックします。以下の画像のようになります。

    クリックしてフルサイズで表示

5 - Procedural Foliage Blocking Volume を実装する

Procedural Foliage Blocking Volume は、好きなサイズでレベル内に配置することができる Volume アクタです。これにより Procedural Foliage Spawner が Procedural Foliage Blocking Volume の内部の Foliage Type Object をスポーンすることを防ぎます。次のセクションでは、 Procedural Foliage Blocking Volume のレベルへの追加方法および Foliage meshes のスポーンを防ぐための使用方法について説明します。前のステップで作成した PFT_00 レベルを引き続き使用します。

  1. まず「Proc」という単語で [Place Actors] パネル内を検索して Procedural Foliage Blocking Volume を探します。

    T_Find_ProcF_Blocking_Volume.png

  2. Procedural Foliage Blocking Volume を選択して、[Place Actors] パネルからレベルへドラッグします。

    PFS_BlockingVolume.png

  3. フォリッジ メッシュが Procedural Foliage Spawner の黒い部分にスポーンされないように、Procedural Foliage Blocking Volume を以下の値を使って移動およびスケールします。

    • Location X: 5430.0 cm

    • Location Y: -3900.0 cm

    • Location Z: 200.0 cm

    • Scale X: 41.75

    • Scale Y: 65.5

    • Scale X: 41.75

    T_PFBV_Postion.png

  4. 次にレベルで [Procedural Foliage Spawner] を選択して、[Details (詳細)] の [Resimulate (再シミュレーション)] ボタンをクリックします。再シミュレーションが完了すると、Procedural Foliage Blocking Volume と交わる部分の木がすべて消えています。

    T_PFV_Before_After.png

    以下の画像で、設定前と後の違いが分かります。

    画像番号

    結果

    1:

    Procedural Foliage Blocking Volume 追加前

    2:

    Procedural Foliage Blocking Volume 追加後

6 - 応用編

Procedural Foliage ツールに備わったパワーがお分かりになったと思います。Procedural Foliage について学習したことと併せて以下のツールを使って、次の画像のようなレベルを作ってみましょう。

T_On_Your_Own.jpg

  • Static Mesh Foliage の代わりに Foliage アクタを使用します。

  • [Grass ツール](Engine/OpenWorldTools/Grass/QuickStart)
    で、ランドスケープが草と花を茂みに深く覆われているように見せます。

  • [Landscape Sculpt](Engine/Landscape/Editing/SculptMode)
    ツールで、丘、山、湖などを追加し、ランドスケープ テレインの外見と質感を定義します。

  • ランドスケープ上にペイント可能な複数のテクスチャのある

    [ランドスケープ マテリアル](Engine/Landscape/Materials)
    を作成し、ランドスケープのサーフェスのビジュアルをさらに多彩で詳細にします。

  • 指向性ライト を調節して、レベル ライティングを早朝や夕方に生じる光源のように見せます。

  • ダイナミック シャドウだけでなく レイトレース ディスタンス フィールド シャドウ も利用する完全に動的ベースなライティング ソリューションを利用するように、レベル ライティングを設定します。

  • [Foliage System](Engine/Foliage)
    ツールで、Procedural Foliage ツールで配置されたフォリッジ メッシュの位置、回転、スケールを削除または微調整して、望み通りの外見になるようにします。

  • レベルの動画を世界に発信するために シーケンサーカメラ を一緒に使って、完成したレベルを動画で世界にお披露目しましょう。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback