0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

フェイザー砲制御 with UE5

Posted at

概要

某SFシリーズファンメイド自主制作プロジェクトの内部実装紹介その2にして原点
フェイザー砲(ビーム砲)のエフェクトをNiagaraで作ったまでは良かったものの、シーケンサーでNiagaraを制御するにはLife Cycleトラックは癖があり少々厄介。というわけでBP内で動的に制御してしまおうという試み。

基本要件

  • ターゲットとの位置関係により発射位置をフェイザーアレイ(船体表面のレール状構造)に沿って移動させる。
    (レール上かつターゲットとの最短距離を取りたい)
  • 発射時のエネルギー収束とビームエフェクト本体との同期。
    StarTrekMini - Unreal Editor 2024_06_28 11_16_16.png

エフェクト部分

ビームエフェクト本体

  • Ribbonに自前のマテリアルを適用
  • Absolute Beam Start/EndをユーザーパラメーターとしてBPと連携
    NS_PhaserStrip2 2024_06_28 11_14_42.png

エネルギー収束エフェクト

  • レール部分のUVを直線的に展開し、マテリアル側で移動可能なグラデーション処理を組み、UV両端から収束地点に移動させる

PhaserStrip 2024_06_28 11_12_48.png

  • グラデーションと収束位置をDynamic Material ParameterとしてNiagaraに制御権を渡し、BP側での演算結果をパラメーターとしてNiagaraに渡す
    全景
    M_PhaserStrip 2024_06_28 11_17_33.png
    グラデーション部分(片側)
    PhaserStrip 2024_06_28 11_14_00.png
    マテリアルパラメーターの制御
    NS_PhaserStrip2 2024_06_28 12_54_33.png

最終的なアプローチ

紆余曲折を経て、最終的な処理方法は次のようになった。

  • レール状複数地点の座標(アクターのローカル座標)、収束地点のUV座標、余計なレールのUVをマスクするためのUV座標をカスタム構造体の変数に格納する
    StarTrekMini - Unreal Editor 2024_06_28 12_33_29.png

  • この位置リストに合わせて角度による条件分岐を設定
    こちらも角度の上限と下限を格納する構造体の配列に格納する
    StarTrekMini - Unreal Editor 2024_06_28 12_39_57.png

  • ↑これを1サイクルとして射程内にターゲットが存在する間繰り返す
  • サイクルの管理はSet Timer by Eventで行うことに

BPでの実装はこの画像のようになった
StarTrekMini - Unreal Editor 2024_06_28 12_27_50.png
順番に見ていくと...

  1. ターゲットが射程内に入った/出たときにサイクルを開始/停止する
    StarTrekMini - Unreal Editor 2024_06_28 12_28_33.png

  2. 上方、下方、後方からターゲットの相対位置を特定する
    イベントグラフ 2024_06_28 12_29_08.png

  3. どの角度帯にあるかを判定し、該当するエフェクトの緒言を参照する
    イベントグラフ 2024_06_28 12_29_08trim.png

実際に動作する様子はこちら
phaserdemo.gif

終わりに

この処理方法を導き出す過程でBP内におけるベクトルと座標系の取り回しやマテリアルグラフでのmathノードの扱い方を学ぶことができ、その後の制作にかなり活かすことができた。
(あわよくば将来的にはレールに沿ってリアルタイムで発射位置を移動させたりしてみたいところ...)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?