[UE4ぷちコン 映像編3rd]振り返り:VFX小ネタ

ここは[UE4ぷちコン 映像編3rd]振り返りの子頁です。

概要

  • Splineに沿ってDecal生成して表示制御

  • 複数Niagaraの制御のためにMPC Trackを用途外に使った悪例

Splineでビーム痕制御

目的

  • Niagaraから焦げDecal貼れるようにしたが、肝心のスプリンクラーを焼くのが手間

    • すっ転ぶアクションが一瞬すぎて天井に十分な量のビーム痕の跡ができる時間がない

    • スプリンクラーがある場所に焦げができるように向きを制御するのがしんどい

    • 意図しない場所にビーム痕が付いてしまう時がある

  • ほな自分でDecal貼ったらええがな!

    • 予め貼っといてSequencerで表示制御すればええんや!

      • 大量に手で貼るのしんどい

      • 大量の制御対象に対して表示制御もしんどい

  • ビームで焼きたい軌道は決まっている

    • Splineをそれに沿わせてDecalも自動生成すれば良さそう

実装

  • Spline ComponentをもつActorを作る

  • Construction ScriptでDecalを作り配列に格納

  • Decal表示制御用の関数を作り、ShowRate変数でSpline上のどこまでDecalを見せるか決める

  • Previewのために関数をCall in Editor設定にしておく

  • ShowRate変数をExpose to Cinematicsにして、Trackで制御

  • 同時にRepeater Event Trackで上記のShow Decals from Rate関数を呼び続ける

    • tickでも動作するがpreviewしたいのでRepeater Eventで駆動している

Material Parameter Collection経由でNiagara変数制御(悪例)

注意事項

  • 真似しないほうが良い

  • やっちゃた記録として残します

目的

  • 黄ヘッドの「物体同士を近づけるほど激しく反応する」演出で、動的にSpawnRateを変更したい

  • SequencerからSpawnRateの値を制御したい

実装

  • Shiotani先生の解説記事にある通り、NiagaraのUser変数はSequencer Trackで制御できる

    • ただInstance個別の操作であり、複数のNiagara Systemを同時に操作することはできない

    • Trackごとコピペはできるけどその後の調整が面倒

  • Niagara Parameter CollectionはSequencerから操作できないし…

    • Material Parameter Collectionはできるのになぁ…

  • せや!💡

  • Sequencer Directorに変数で制御対象を覚えさせる

    • どこからでもPreviewできる様に、Repeater Event Trackで常に登録し続ける

    • EventはPreviewのためにCall In Editor設定にしておく

  • 標準のMaterial Parameter Collection TrackでMPC_Nuclearの値を制御

  • Repeater Event Trackで更新処理を指示

    • これもCall In Editor設定

    • 制御対象が登録済みかどうかは常に確認

    • MPC_Nuclearから値を取り出して、登録済みNiagara Systemに反映

  • アカン

    • 明らかにMPCの用途外

    • それにSequencer Directorで頑張りすぎると流用が難しくなる

    • 「Niagara System群の参照を持って制御するBlueprint」を作ったほうがいい

      • 制御対象がPosessableなら静的に参照を作れる

        • Spawnableな場合は本記事と同様にやらないとダメかも

      • 必要な制御変数をExpose to CinematicsにしておけばDirectorで頑張る必要もなくなる

所感

  • いきあたりばったりすぎ!

    • Splineでビーム痕つけるなら、Niagaraでやる必要なかったやんけ…

    • 複数のNiagara制御も中継するBlueprint作ればよかったんや…

    • 時間をおいて振り返る事でより適切な手段があることに気づけてよかった(今日のよかった探し)