【UE5】Niagaraでペンライトを振った群衆を作る
バーチャルライブ映像を作るときに、ペンライトを振った観客がいると、見た目が豪華になりませんか?

人の群衆まで作るのはデータが重くハードルも高かったので、今回はペンライトだけを振ったアニメーションを作って観客席に散らしました
今回使用したverは下記の通りです
Blender4.1
UE5.2
ℹ️Niagaraがそもそも分からない場合
ここまで本記事を読んで、そもそもNiagaraがわからず涙がこみあげてくる人は、基本操作に関する記事を読むことをおススメします
UEでペンライト単体を振るメッシュを作成
前提:ペンライトのデザインはBlenderでよしなに作成
当記事はUE専門の記事で、Blenderまでに手を広げると記事が散らかるので省略します
💡ここでの大事なことは、Blenderで作成したモデルになんでもいいのでマテリアルを割り当てておく事です
UEに読み込んだ時に、メッシュにマテリアル情報が無いと、ペンライトを光らせることが出来なくなってしまうからです
今回はUEでペンライトを振るアニメーションを作成しましたが、余力がある人はBlenderでアニメーションを付けてチャレンジしてみてくださいね
私が参考にした動画は👇です
作ったペンライトはBlenderからFBXファイルにして出力し、UEに読み込みます
👇記事は、BlenderでFBXを出力&UEで読み込みする時の手順を書いたものですので参考までに
アニメーションの設定を外せば、静止FBXも対応できると思います
UEで前後に動くマテリアルを作成
ℹ️UEにおけるマテリアルの概念を全く知らない人は、まず知るところからはじめる事をオススメします!
きっと下記の説明をしても前提が分からず、何が何だかと混乱するかと思います
さて、ペンライトに貼り付けるマテリアルも作成していきます


マテリアルの全体図は下記の通りとなります

💡ポイント
・メインマテリアルノードのマテリアル設定
MaterialDomain:Surface
BlendMode:不透明型
ShadingModel:DefaultLit

エミッシブカラーから接続されているノードが、ペンライトの発光部分の設定
色替え:エミッシブカラ⇒MultiplyA⇒Constant3Vectorの数値
グローの強さ:エミッシブカラ⇒MultiplyB⇒Constantの数値

・ワールド位置オフセットから接続されているノードが、前後に動くアニメーション
回転角度と幅:ワールド位置オフセット⇒RotateAboutAxius[NormalizeRotationAxis]⇒Constant3Vector

速度:ワールド位置オフセット⇒RotateAboutAxius[RotationAngle]⇒substractA⇒rangeの数値

下記でもコントロール可能
RotateAboutAxius[RotationAngle]⇒substractB⇒MulitiplyB⇒Abs⇒Sustruct⇒Fmod⇒Divide⇒Mlitiply⇒scalarparameterの数値

回転幅:ワールド位置オフセット⇒RotateAboutAxius[RotationAngle]⇒substractB⇒MulitiplyB⇒Abs⇒Substructの数値

以上ペンライトの発光部分のマテリアルが作れたら、発光部分のマテリアルを複製して取っ手部分のマテリアルを作ります
とはいえ、エミッシブカラー~のノードを削除しただけです
今回は取っ手のシルエットが見えれば十分でしたので、質感・色はありません。黒い見た目になっております

UEに読み込んだペンライト(スタティックメッシュ)に、作成したマテリアルを割り当てる
UEに読み込んだペンライトのスタティックメッシュを開いてエディターを表示⇒マテリアルスロットで上述で作成したマテリアルを、それぞれペンライト部分と取っ手部分へ割り当てます
マテリアルスロットが1つしかなければ[+]で追加していってください

Niagaraでペンライトを散らす方法
ℹ️Niagaraの概念を全く知らない人は、まず知るところからはじめる事をオススメします!
きっと下記の説明をしても前提が分からず、何が何だかと混乱するかと思います
STEP01:Niagaraシステムを作成
コンテンツブラウザ内右クリック⇒FX⇒Niagaraシステム⇒空のシステムを作成

空のシステムを作成をすると、Niagaraの編集パネルが開かれます

STEP02:空のエミッタを追加
システムの概要パネル右クリック⇒エミッタを追加⇒empty選択



🩻システムの概要パネル右クリックをした時の[空のエミッタを追加]を選択しないようご注意ください。別物です

STEP03:レンダリングモジュールの設定
💡この項目でパーティクルの形状をペンライトに設定します
SpriteRendererを削除⇒+よりMeshRenderer選択⇒[選択内容]Meshesインデックス⇒ペンライトのスタティックメッシュを割り当てる


📝今回はいろんな色のペンライトを散らせたいので、+より、インデックスを色分追加して割り当てました
STEP04:エミッターの更新モジュールの設定
💡この項目で、ペンライトの数を設定します
エミッターの更新+⇒SpawnParticleInGrid⇒問題を修正⇒SpawnRateの数値入力
SpawnParticleInGrid:パーティクルを規則的なグリッド状に生成するための機能です
規則的な座席に観客が存在するかのように、ペンライトを散らす事が出来ます


📝ペンライト同士の間隔の設定
パーティクルのスポーンモジュール⇒GridLocation⇒Dimensions⇒XYZDimensionsの数値


📝ペンライトのサイズ変更
パーティクルのスポーンモジュール⇒IntializeParticle⇒MeshAttributes⇒MeshScaleMode[Uniform]⇒MeshUniformScale数値入力


STEP05:ペンライトの色をランダムに配置
Emptyエミッターにパラメータを追加します
パラメータパネル⇒パーティクル属性⇒MeshIndex⇒パーティクルのスポーンモジュールにD&D


追加したパラメータ[MeshIndex]をペンライトの種類の数を設定していきます
MeshIndexの逆▼[RandomRangeInt]⇒Maximamペンライトの種類の数入力

今回は6種のペンライトを作ったので6と入力しました
完成したNiagaraシステムを、会場マップの観客席エリアに配置してみてください!

参考文献
いつもありがとうございます!
いいなと思ったら応援しよう!
adobeルーツ・CGツールの検証に役立てたいと思います!