アルゴンUE4/UE5&アプリ開発日記

UE4/UE5の機能やプラグインを紹介します。初心者や中級者向けになってます!!

【UE5】PCGを活用して木に草を生やしてみる。

PCGでプロシージャルに草をはやす('ω')

今回はPCGを活用して木に草を生やしてみようかなと思います。

制作したものについてこちらのXのポストを見ていただければ幸いです。

◎参考資料

How to Add Moss into a Mesh using PCG in Unreal Engine 5 - YouTube

プロシージャル コンテンツ生成の概要 | Unreal Engine 5.2 ドキュメント

※UE5.3で検証しています。
※PCGの細かい基礎的な部分は省いて説明します。
※書き間違え等あればコメントください!

まずPCGとは何か?

まずPCGとは?となる方が多いかなと思いますので、

ここで軽く説明しておこうかなと思います。

PCGとは数値や処理を組み合わせて独自の、

コンテンツを作成するためのツールになります。

特定の領域でLandScapeに合わせて物を配置したり、

Splineに沿って壁を配置したりなどもできます。

今回はその中で指定した木のモデルに草を生やす方法を紹介します。

・目次に戻る

今回使用するモデルのダウンロード

まずは追加ボタンからQuixel Bridgeを選択して、

Quixel Bridgeのウィンドを選択します。

Quixel Bridgeを選択

続いて先ほど選択したウィンドウの上の方にある、

検索バーで「Rotten」から「BrokenTree」を選択してダウンロードします。

ダウンロードをしたらAddを押してプロジェクトに追加してあげます。

成功したらMegascansフォルダが生成されて追加されるはずです。

※左のドロップダウンリストのクオリティ「Quality」に合わせて、
 ファイルの重さが変わったりするので各自で調整してみてください。

木のモデルをMegascansからダウンロード

続いて同じような流れで草のモデルをダウンロードしていきます。

検索バーで「Archangel」から「YELLOW ARCHANGEL」を選択します。

ダウンロードを押してダウンロード後Addを押してプロジェクトに追加します。

成功したら草のモデルが複数あるフォルダが追加されるはずです。

Megascansで草のモデルをダウンロード

今回使用するモデルのダウンロードする準備は完了したので、

次は実際にPCGを活用して木に草を生やしてみることを行っていきます。

・目次に戻る

PCGで草を生やす処理の作成

では実際にPCGを制作していきますがその前に、

木のモデルを配置していきます。

木のモデルを配置して、位置をすべて0、回転もすべて0にします。

拡大も1に設定してあげてください。

※そうしないとうまく草の位置が設定されません。

木のモデルを指定の位置に配置

続いてPCGのファイルを作成していきます。

まずはPCG用のフォルダを作成します。

今回はMegascansフォルダに作成しています。

※今回はMegascansのフォルダに作成していますがどこでもOKです。

PCG用のフォルダを作成

実際にPCGファイルを作成していきます。

コンテンツブラウザで右クリックしてPCG→PCGグラフを選択します。

このPCGグラフ上で処理を作成していきます。

PCGファイルの作成

PCGファイルを作成したらレベル上に配置します。

位置をすべて0、回転もすべて0に指定します。

スケールは木が入る範囲で設定していただければOKです。

PCGの位置情設定

ここから実際に設定をしていきます。

ノードを追加して設定していくのですが、

他のBPなどと同様にノードを操作して作るという点は変わりません。

右クリックでノード検索を開いて検索します。

「mesh」で検索して「mesh sampler」を選択します。

meshで検索してmesh samplerを選択

つづいてmesh samplerの設定を行っていきます。

Static meshの部分に木のモデルを指定します。

木のモデルは「S_Broken_Tree_Trunk」になります。

またSampling Methodに「One Point Per Vertex」を選択しておきます。

meshsamplerノードの設定

一度Dキーを押してデバッグモードにすると、

どの箇所に配置されるのかが白い■で表示されます。

この位置に草のモデルが配置される想定になります。

Dキーを押してデバック表示で確認

続いて指定ポイントにStaticMeshを配置するようにします

「stati」を選択して「Static Mesh Spawner」を選択して追加します。

statiで検索してstatic mesh spawnerを指定する

StaticMeshSpawnerの設定を追加していきます。

→で隠れてしまっていますが「Mesh Entries」の⊕ボタンを押して、

Static Meshの項目に草のモデルを指定してあげます。

今回は「S_Yellow_Archangel_wcwmcfvia_Var6_lod1」を使用します。

Static Mesh Spawnerを設定

設定したら先ほどMeshSamplerと接続してDebug表示を解除します。

すると、木に草が覆われるような状態になるかと思います。

しかしこのままでは密度が高すぎて逆に不自然なので、

密度の変更を行うための設定を行っていきます。

実際に草を配置した設定

草の密度を変更するために「density」で検索して、

「Normal To Density」を選択してノードを追加します。

Normal To Densityを追加

もう一つ必要なノードがあります。「density」で検索して、

「Density Filter」を選択してノードを追加します。

Density Filterを検索して選択

上記2つのノードをそれぞれ追加したので設定していきます。

まずはNormal To Densityでそれぞれの設定項目である草のオフセットや、

密度の強さ・密度のモードを設定することができます。

設定項目は下記となっています。

1.Normal → 比較対象とするモデルの法線の設定
2.Offset → 法線の向きとは反対方向に向かう数値
3.Strength → 指定された計算に合わせて配置量の計算を変更
4.密度モード → 各密度のパターンを変更

Normal To Densityを選択して設定を行う。

続いてその右隣りに設定したノードのDensity Filterを選択します。

こちらは草の配置を下限・上限の範囲で指定して削減できます。

設定項目は下記になります。
1.Lower Bound → 配置する下限の数値
2.Upper Bound → 配置する上限の数値(上限と下限の間で配置する)

Density Filterを選択して配置ポイントの削減

上記二つのノードを活用して実際に密度を変更したものがこちらになります。

木に配置する草の密度を変更した場合

これでもなかなかいい感じなのかなと思いますが、

草が一定のサイズで一定の位置にあるのも味気ないので、

最後に草の位置・角度・大きさを変更していきます。

「tra」で検索して「Transform Points」を選択します。

traで検索してTransform Pointsを選択します。

Transform Pointsを選択してあげて、

草の位置・角度・大きさを変更するようにしてあげます。

こちらを変更することでランダムな位置・角度・大きさ・間隔を、

与えることが出来たりします。

Transform Pointsを選択して設定を変更する

こちらで草の角度や大きさを変更した結果がこちらになります。

簡単ではありますがランダム性を持たせられますかと思います。

今回は一つの草のモデルを配置してますが、

複数の草を配置するようにするとよりよく見えるかなと思います。

実際に草の大きさや位置にランダム性を与えた場合

最後に今回作成したノードを載せておきます。

流れとしては下記の流れとなっています。

1.Mesh Samplerで木のモデルを指定して、草の発生位置を設定。
2.Normal To DensityとDensity FilterとTransform Pointsで密度とランダム性を設定。
3.Static Mesh Spawnerをつなげて実際に草を配置。

今回作成したPCGのノード

以上で草の配置の説明については以上になりますが、

幾つか制約があるのでここで紹介しておきます。

・草を配置するモデルの倍率や角度が違うと位置がずれてしまう。
・位置指定を個々で指定しているわけではないので注意が必要。

・目次に戻る

最後に

今回はPCGで木に草を生やしてみましたが、

どこかのタイミングで他の方法なども紹介出来たらなと思います。

色々制約もあるのでそういった部分を気にしなくてもいいように、

なったらより使いやすくなるのかなと思います。

・目次に戻る

【UE5】State of Unreal 2024での紹介まとめ

State of Unrealやってましたね。

今回はState of Unreal 2024で紹介されていたものを、

少しだけまとめました。

※特に詳しい内容等は紹介しません。

※書き間違え等あればコメントください!

今回まとめた情報は既に公式さんのページでまとまってるので、

下記リンクで見た方が早いと思います。

https://www.unrealengine.com/ja/blog/all-the-big-news-from-the-state-of-unreal-at-gdc-24

また、UE5.4のPreviewの公開に合わせて、

UE5.4のRoadMapも追加されたのでこちらも見てみてください。

https://portal.productboard.com/epicgames/1-unreal-engine-public-roadmap/tabs/46-unreal-engine-5-0

紹介された内容について

今回発表された内容について紹介していきます。

まずはMarvel 1943 Rise of Hydra Gameという動画が、

紹介されていました。

urldefense.com

全体的にフォトリアルでとてもきれいな動画にまとまっていました。

2025年に追加情報があるかと思うので待っていようと思います。

続いて紹介されていたのが次のUE5.4のお話と、

UEFNでのレゴの紹介になります。

5.4ではNaniteやLumenで使用出来たりや適応範囲が増える?

ような感じなのかなと思います。

※上記に関しては私の翻訳ミスの可能性があるので間違っていたら申し訳ないです。

適応範囲の追加内容

またレンダリングタイムの短縮も発表されていました。

レンダリング時間の削減

そしてUE5.4からMotion marchingがProductionRadyになります。

それに伴いアニメーション制作が大幅に進化しているように感じました。

MotionMarchingの設定

モーションワープを試したい方はこちらの勉強用資料がおすすめですよ。

それに伴いアニメーションが500以上追加されるそうです。 

個人的にこれはとてもうれしい(*‘ω‘ *)

アニメーションの追加

それから個人的に一番気になった機能というか前からある機能なのか、

私がアニメーション周りに詳しくないのですが、

コントロールリグのプリセットみたいなものがあったので、

こちらも追加されるのか気になりました。

コントロールリグのプリセット化

そのほかPCGの更新やMetaSoundのリアルタイムデバッグなどもありました。

Metasoundのリアルタイムデバッグなど

それからPCG周りもBetaになったりPCGBlomeなども追加されます。

PCG Bloomなどの追加があります。

PCGのBeta対応

そのほか開発関係以外だとEpicGameStoreがiOSAndroidで追加です。

EpicGameStoreの追加

UEFNではMetahumanが使えるようになるそうです。

Metahumanの追加

それからLEGOのFortnightも紹介されていました。

動画ももうあるので良ければ見てみてください。

レゴ® の要素とレゴ スタイルがフォートナイト クリエイティブと UEFN に登場 - YouTube

他にもさまざまな紹介がありましたが一旦以上になります。

・目次に戻る

最後に

以上でStateOfUnrealの紹介でしたが、

本当に様々な紹介があったので色々試してみたいですね。