【Unreal Engine】PCG機能を使ってみた①~アセットの上面に植物を生成する~

こんにちは!
今回はPCG機能を使用してアセットの上面に植物を生成する方法を紹介します。

概要

アセットの上面だけ植物が欲しい・・
そんな時はPCG機能を使用してパパッと植物を生成してみましょう!

◇今回の紹介内容◇
・PCG機能とはなにか?
・PCG機能を使うための下準備
・アセットの上面を指定して植物を生成させよう
 ┗植物を生成させるメッシュを指定する
 ┗生成する植物の設定と位置調整
 ┗生成した植物を岩に追従させる
・注意点

PCG機能とはなにか?

まず、PCGとはなにか・・?

【プロシージャル コンテンツ生成フレームワーク (PCG:Procedural Content Generation Framework) は、開発初期で Unreal Engine 内で独自のプロシージャル コンテンツを作成するためのツールセットです。 PCG では、アーティストやデザイナー向けに、迅速で反復的なツールと、建造物やバイオームの生成といったアセット ユーティリティから、ワールド全体に至るまでのあらゆる複雑度のコンテンツをビルドする機能が提供されます。】UnrealEngine公式ページから引用
とのことです・・。

UE5から追加された機能でデザイナーでも直感的に操作できるようなツールを作成してみました。という感じでしょうか・・?
PCGを触ってみた個人的な感想ですが、PCGのノードの組み方にもよりますが、変更に強い自然地形を作成することが可能という印象でした。
また、ノードに対して苦手意識があった私でも分かりやすいと感じました!

今回はそんなPCG機能を使用してアセットの周りに植物を生成してみます。

アセットの上面を指定して植物を生成させよう

PCG機能を使うための下準備

PCG機能を使うための下準備を行います。

【手順1】
PCG機能を使用するためPCGプラグインを有効にします。
編集/プラグイン/PCGと検索/Procedural Content Generation Framework末尾にGeometry Script Interopがある項目にチェック

植物を生成させるメッシュを指定する

まず、PCGグラフを作成し、植物を配置したいアセットが入るようにエディタ上に配置します。
【手順1】
コンテンツブラウザ上で右クリック/PCG/PCGグラフ(名前は好きにつけてください)



【手順2】
【手順1】で作成したPCGグラフをエディタ上に配置します。
このPCGグラフの枠の範囲に植物が生成される範囲になります。
この時、配置したPCGグラフ以外にPCGWorldActorが生成されます。


【手順3】
作成したPCGグラフをダブルクリックして開き、使用するメッシュを参照していきます。
空いているスペースを右クリック/【MeshSampler】を選択し、植物を生成させたいメッシュを追加します。


これで植物を生成させるメッシュを指定するという手順は完了しました。
次は生成する植物の設定をしていきます。

生成する植物の設定と位置調整

【手順1】
【MeshSampler】を選択しDキーを押すとプレビューが表示されます。
エディタを確認しながらMeshSampler/VoxelizeOptionsのボクセル化にチェックしボクセルサイズを変更します。

【手順2】
【Nomal To Density】を追加し指定した法線方向に密度を調整していきます。
今回、Z方向を指定したいのでパラメーターのZ方向に1、それ以外は0を追加しています。

【手順3】
【DensityFilter】を追加し、【Nomal To Density】の白い部分を指定していきます。

【手順4】
位置・回転・スケール調整の為【Transform Point】と、メッシュを追加するための【Static Mesh Spawner】を追加します。
Static Mesh Spawnerを選択し、メッシュセレクタ/Mesh Entriesの+ボタンを押して参照するメッシュの数を決めます。


追加されたインデックスの中に生成したい植物StaticMeshを参照します。


追加後、Weightの数値を変更することで、それぞれのメッシュの割合を調整していきます。


先程追加した、Transform Pointを選択し位置・回転・スケールの値を調整していきます。

これで生成する植物の設定と位置調整は完了です。
ただ、現段階で岩のメッシュを移動させると植物が置いて行かれてしまうので次の工程で追従するように設定してきます。

生成した植物を岩に追従させる

配置しているスタティックメッシュとPCGグラフで共通のタグを設定していきます。

【手順1】
【Get Actor Data】を追加してアクタフィルタ/All World Actorsに変更し、
アクタ選択タグに希望する名前を追加、モードをGet Single Pointに変更していきます。
今回アクタ選択タグにはPCG_Grassと入力しました。
また、複数選択と単一ポイントデータをマージにもチェックを入れておいてください。

【手順2】
エディタに配置しているスタティックメッシュの詳細でTagと検索し
【手順1】で追加したPCG_Grassの名前を追加してください。

【手順3】
最後に【Copy Points】を追加し下記画像のようにノードを繋げます。


▽ノード全体図


これで、エディタ上でアセットを移動・複製しても生成した植物が追従するようになりました。


注意点

【複製・移動していたら植物が生成されなくなってしまった場合】
PCGグラフの枠よりも外にスタティックメッシュを配置してしまうと植物が生成されません。
アウトライナにあるPCGグラフのスケールを詳細から変更して枠の中に入れてあげてください。

【植物の表示がおかしい。もう一度植物を生成させたいという場合】
アウトライナのPCGグラフの詳細からクリーンアップ・生成をクリックしていただくと再度生成されます。

まとめ

今回はPCG機能を使ってアセットの上面に植物を生成する方法を紹介しました。
一気に大きな数値を入れると負荷が大変なことになるのである程度の数値を徐々に増やしていくことをおすすめします・・!
最後までご覧いただきありがとうございました。

役に立つ記事

ENVIRONMENT HOLICでは、他にも背景制作に役に立つ記事を紹介しています。

【Unreal Engine】レベルインスタンス~アクターフィルター機能を使用して切り替え可能なアセットを作成しよう~
【Gaea】ハイトマップをUE5に読み込んでみよう!
【Unreal Engine】Level Instance作成の際の注意点

Mika.Seki

前職はアパレル業界。
クリエイティブアカデミーを経て、COYOTE 3DCG STUDIOへ入社。
好きなことは【新しい機能への挑戦】【コンセプトから読み取り世界観を表現するとき】
Unreal Engineを触っていることが多いです。

投稿者記事

  1. 【Unreal Engine】レベルインスタンス~アクターフィルター機能を使用して切り替え可能なアセットを作成しよう~

    2025-01-13

  2. 【Unreal Engine】既存レベルをWorld Partition有効レベルへ変換する方法

    2024-11-13

  3. 【Unreal Engine】Level Instance作成の際の注意点

    2024-10-16

  4. 【Unreal Engine】きれいでわかりやすいデータ整理・検索方法について

    2024-09-18

関連記事

  1. 【Unreal Engine】作業効率が上がる基本操作集!

    2024-07-25

  2. 【Substance Painter】Substance PainterでUnreal Engine用のMixテクスチャを書き出そう① ~書き出し編~

    2023-10-23

  3. 【Unreal Engine】Naniteで注意しておくべきポイント

    2024-08-30

  4. 【Unreal Engine】UE4、UE5でワイヤーフレームを確認する方法

    2023-08-18

ページ上部へ戻る