このクイックスタート チュートリアルでは、 Procedural Foliage ツール がどのように動作するのかを説明します。このチュートリアルでは、Procedural Foliage ツールのみを使って UE5 内に森ひとつ分の木を作成、設定、スポーンします。仮想の森がプロジェクトのニーズを満たすために必要な主要プロパティと設定も紹介します。
正確に機能し、求めている結果を出すために、Procedural Foliage ツールに必要なアセットとプロパティはすべて公開されます。このクイックスタートを完了すると、上のようなレベルが出来あがります。
前提条件
プロジェクトで Procedural Foliage ツールを使う前に、以下の手順でプロジェクトの [Procedural Foliage] を有効にしなければなりません。
メイン メニュー の [Edit] オプションをクリックし、次に [Editor Preferences (エディタの環境設定)] をクリックします。
画像をクリックするとフルサイズで表示されます。
Editor Preferences の [Experimental] セクションを 右クリック します。
Experimental セクションの「Procedural Foliage」の文字の横にあるチェックマーク ボックスをクリックして、[Procedural Foliage] オプションを有効にします。
画像をクリックするとフルサイズで表示されます。
コレクションのコンテンツの中には以下のクイックスタートで使うものもあるので、Unreal Engine Marketplace から Open World Demo Collection コンテンツ パックもダウンロードしてください。Open World Demo Collection をダウンロードしたら、このクイックスタートで使用するプロジェクトに追加してください。
Epic Games ランチャーでマーケットプレイスでを探し Open World Demo Collection をダウンロードします。
画像をクリックするとフルサイズで表示されます。
ランチャーの [Library] セクションの [Vault] セクションで Open World Demo Collection を見つけてください。
画像をクリックするとフルサイズで表示されます。
[Add to Project (プロジェクトを追加)] ボタンをクリックします。
画像をクリックするとフルサイズで表示されます。
このクイックスタートで使用するプロジェクトが表示されるので、このクイックスタートで使用するプロジェクトを選択して、[Add to Project (プロジェクトへ追加)] を押してコンテンツを追加します。
画像をクリックするとフルサイズで表示されます。
1 - Foliage Type アクタを作成する
このステップでは、Procedural Foliage ツールが必要とするレベル、ランドスケープ テレイン、すべてのアセットを新規作成します。
Default Template をベースに使ってレベルを作成します。
画像をクリックするとフルサイズで表示されます。
まず [Landscape] パネル を開くために [Modes] ドロップダウンで [Landscape] を選択してレベルに新しい Landscape アクタを追加し、次に[Create (作成)] ボタンを押してその Landscape アクタをレベルに追加します。
画像をクリックするとフルサイズで表示されます。
Landscape Terrain アクタを使用すると、多数のスタティックメッシュをスポーンする広い領域がすぐに与えられます。
画像をクリックするとフルサイズで表示されます。
ランドスケープ テレインを使った作業に慣れていない、もしくは詳しく知りたい場合は、「ランドスケープ屋外テレイン」を参照してください。
コンテンツ ブラウザ を 右クリック して [Foliage] セクションを展開して [Procedural Foliage Spawner] をクリックして新しい Procedural Foliage Spawner を作成します。
画像をクリックするとフルサイズで表示されます。
このサンプルでは、Procedural Foliage Spawner に 「PFS_Example」 という名前を付けます。
画像をクリックするとフルサイズで表示されます。
Procedural Foliage Spawner を コンテンツ ブラウザ からレベルにドラッグし、レベルの中央もしくは X、Y、Z が 0,0,200 になるように配置します。
画像をクリックするとフルサイズで表示されます。
森をスポーンするための広い領域を作成するために、X、Y、Z 軸が 100,100,10 になるように Procedural Foliage Spawner をスケールします。
画像をクリックするとフルサイズで表示されます。
スポーナーができたので、スポーンするためにフォリッジを決める必要があります。コンテンツ ブラウザ を 右クリック し、[Foliage] セクションを展開して [Static Mesh Foliage] をクリックします。 Static Mesh Foliage に「Tree_00」などの名前を付けます。
画像をクリックするとフルサイズで表示されます。
そうならなかった場合は、[Save All (すべて保存)] ボタンでコンテンツを、[Save (保存)] ボタンでレベルと保存して、作業とレベルを保存してください。レベル名を求められたら、PFT_00 としてください。この時点では、以下のようになります。
画像をクリックするとフルサイズで表示されます。
2 - スポーン対象をスポーナーに指示する
次のセクションでは、Procedural Foliage Spawnerで作業するために Foliage Type アクタ を設定する方法を説明します。前のステップで作成した PFT_00 レベルを引き続き使用します。
まずコンテンツ ブラウザ内を ダブルクリック して Procedural Foliage Spawner を開きます。
画像をクリックするとフルサイズで表示されます。
[Foliage Types (フォリッジ タイプ)] メニュー オプションの右側にある [+] 記号の アイコンをクリックして、新規アイテムを Foliage Types 配列に追加します。
画像をクリックするとフルサイズで表示されます。
コンテンツ ブラウザで Tree_00 Static Mesh Foliage を選択し Foliage Type Object へドラッグする、または 矢印 アイコンを押して選択した Static Mesh Foliage を Procedural Foliage Spawner へロードします。
画像をクリックするとフルサイズで表示されます。
コンテンツブラウザで ダブルクリック して Tree_00 Static Mesh Foliage を開きます。
画像をクリックするとフルサイズで表示されます。
Tree_00 Static Mesh Foliage の一番上の [Mesh] セクションの [None] というドロップダウン メニューをクリックします。
画像をクリックするとフルサイズで表示されます。
検索用語に「HillTree_02」と入力するか、リストをスクロールして、Open World Demo Collection から HillTree_02 を見つけてクリックしてロードします。
画像をクリックするとフルサイズで表示されます。
ビューポートに戻ってレベルに置いた Procedural Foliage Spawner を選択し、[Details (詳細)] パネルの [Procedural Foliage] セクションを展開します。
画像をクリックするとフルサイズで表示されます。
[Procedural Foliage] セクションの [Resimulate (再シミュレーション)] ボタンをクリックすると、たくさんの木で埋め尽くされた Procedural Foliage Spawner が見えるようになっています。
画像をクリックするとフルサイズで表示されます。
正しい結果を表示するためには、メイン ツールバー で [Build] をクリックして、[Resimulate] を使用するたびにライティングを再ビルドして Procedural Foliage を作成または変更する必要があります。膨大な数のスタティックメッシュを使用している場合、このプロセスには長時間かかる場合があります。
3 - Foliage Type のプロパティを調整する
Foliage Type Objects (Static Mesh Foliage と Actor Foliage の両方) に付いている様々なプロパティを調整することで、レベル内のオブジェクト上での配置の仕方から、フォリッジ スポーナー中への増やして広がらせる方法まで、フォリッジスポーナーのすべての項目を制御できます。次のセクションでは、Foliage Type Objects で使用できるプロパティ、およびそれらを使って期待通りの結果を出す方法について説明します。前のステップで作成した PFT_00 レベルを引き続き使用します。
Tree_00 Static Mesh Foliage を開きます。
[Placement (配置)] を展開して、[Align to Normal (法線に合わせる)] と [Random Yaw (ランダムなヨー)] の両方が有効になっていることを確認してください。
画像をクリックするとフルサイズで表示されます。
[Placement (配置)] セクションは、レベルのオブジェクト上に置かれた Foliage Type Object へのメッシュの使用方法を調整します。
Static Mesh Foliage の [Procedural] セクションの [Collision] セクションを展開して、[Shade Radius (シェードの半径)] を 50 に設定します。
画像をクリックするとフルサイズで表示されます。
[Collision] セクションは、2 つの Foliage Type Object が同じスポーン位置あるいは関連空間に対して競合した場合、どちらを削除するか決定します。Virtual Seed のコリジョン半径が、別の Foliage Type Object の Virtual Seed からの既存コリジョンまたはシェードの半径にオーバーラップすると、どちらの Foliage Type Object が優先されるかによって Virtual Seed は置き換えらるか、またはキルされます。
次にレベルに配置した Procedural Foliage Spawner をビューポートから選択し、[Procedural Foliage] セクションを拡張して、[Resimulate (再度シミュレーション)] ボタンをクリックします。
画像をクリックするとフルサイズで表示されます。
Static Mesh Foliage で、[Collision] セクションを折り畳み [Clustering] セクションを展開します。次に、[Num Steps] を 0 に設定してすべての木のサイズと年齢がが同じになるようにします。そして [Resimulate (再度シミュレーション)] ボタンを押します。入力すると、以下のようになります。
画像をクリックするとフルサイズで表示されます。
[Clustering] セクションは、密度 (density)、存在時間 (age)、近接度 (proximity) など様々なプロパティを使って、指定した Foliage Type Object のメッシュ インスタンスが Procedural Foliage Spawner の内部でどのように配置、グループ化、広げられるかを決定しやすくします。
木の間にいくらか空間はありますが、全体的にまだ密度が高すぎます。これを修正するために、[Initial Seed Density (初期シード密度)] を 0.25 に設定して、[Resimulate (再度シミュレーション)] ボタンをクリックします。
画像をクリックするとフルサイズで表示されます。
ご覧の通り、[Initial Seed Density (初期シード密度)] を 0.25 に設定すると、森の密度が大幅に下がってしまいました。これは、木の成長と拡散を 1 年分しか行っていないからです。これを修正するために、[Num Steps] を 3 に戻すことで木を 3 年分成長および拡散させます。そして [Resimulate (再度シミュレーション)] ボタンをクリックします。
画像をクリックするとフルサイズで表示されます。
[Growth] セクションを展開して、以下のパラメータを以下の設定値にします。
Max Age:20.0
Procedural Scale Max:10.0
画像をクリックするとフルサイズで表示されます。
[Growth] セクションは、レベルに表示される Foliage Type Objec のメッシュ インスタンスの時間経過に伴う成長方法の調整をします。
最後に [Instance Settings (インスタンス設定)] の [Cull Distance (カリング距離)] で、Max 値を 20,000 に設定して、[Resimulate (再度シミュレーション)] ボタンをクリックします。入力すると、以下のようになります。
画像をクリックするとフルサイズで表示されます。
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 レベルを引き続き使用します。
まずコンテンツ ブラウザの Tree_00 Static Mesh Foliage を選択し、キーボードの Ctrl + W を押して複製し 「Tree_01」と名付けます。
画像をクリックするとフルサイズで表示されます。
新規作成した Tree_01 Static Mesh Foliage を開き、[Mesh] セクションでメッシュを ScotsPineTall_01 スタティックメッシュに変更します。
画像をクリックするとフルサイズで表示されます。
コンテンツ ブラウザ から Procedural Foliage Spawner を開き、[Foliage Types] セクションを展開します。
画像をクリックするとフルサイズで表示されます。
[+] 記号のアイコンをクリックして、別の Foliage Type Object を入力するオプションを追加します。
画像をクリックするとフルサイズで表示されます。
コンテンツ ブラウザで Tree_01 Static Mesh Foliage を選択し Foliage Type Object へドラッグする、または 矢印 アイコンを押して選択した Static Mesh Foliage を Procedural Foliage Spawner へロードします。
画像をクリックするとフルサイズで表示されます。
レベル内に置いた Procedural Foliage Spawner を選択し、[Resimulate (再度シミュレーション)] ボタンをクリックします。完了すると以下の画像のようになります。
画像をクリックするとフルサイズで表示されます。
さらに森を自然に見せるために、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
設定を変更したら、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 レベルを引き続き使用します。
まず「Proc」という単語で [Place Actors] パネル内を検索して Procedural Foliage Blocking Volume を探します。
画像をクリックするとフルサイズで表示されます。
Procedural Foliage Blocking Volume を選択して、[Place Actors] パネルからレベルへドラッグします。
画像をクリックするとフルサイズで表示されます。
フォリッジ メッシュが 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
画像をクリックするとフルサイズで表示されます。
次にレベルで [Procedural Foliage Spawner] を選択して、[Details (詳細)] の [Resimulate (再シミュレーション)] ボタンをクリックします。再シミュレーションが完了すると、Procedural Foliage Blocking Volume と交わる部分の木がすべて消えています。
画像をクリックするとフルサイズで表示されます。
以下の画像で、設定前と後の違いが分かります。
画像番号
結果
1:
Procedural Foliage Blocking Volume 追加前
2:
Procedural Foliage Blocking Volume 追加後
6 - 応用編
Procedural Foliage ツールに備わったパワーがお分かりになったと思います。Procedural Foliage について学習したことと併せて以下のツールを使って、次の画像のようなレベルを作ってみましょう。
Static Mesh Foliage の代わりに Foliage アクタを使用します。
Grass ツール で、ランドスケープが草と花を茂みに深く覆われているように見せます。
Landscape Sculpt ツールで、丘、山、湖などを追加し、ランドスケープ テレインの外見と質感を定義します。
ランドスケープ上にペイント可能な複数のテクスチャのある ランドスケープ マテリアル を作成し、ランドスケープのサーフェスのビジュアルをさらに多彩で詳細にします。
ディレクショナル ライト を調節して、レベル ライティングを早朝や夕方に生じる光源のように見せます。
ダイナミック シャドウだけでなく レイトレース ディスタンス フィールド シャドウ も利用する完全に動的ベースなライティング ソリューションを利用するように、レベル ライティングを設定します。
Foliage System ツールで、Procedural Foliage ツールで配置されたフォリッジ メッシュの位置、回転、スケールを削除または微調整して、望み通りの外見になるようにします。
レベルの動画を世界に発信するために シーケンサー と カメラ を一緒に使って、完成したレベルを動画で世界にお披露目しましょう。