👊
[Unreal Engine 5] 殴って吹き飛ばす ( Radial Force / Niagara )
殴って吹き飛ばす(ように見せる)。
実際には手の動きに合わせて爆発を起こしているような実装となる。
動作確認環境
Unreal Engine 5.5.2
Windows 11 23H2
手順
Third Person Template をベースに進める
アニメーションの準備
- 動画の手順を参考にして Mixamo から適当な Animation を Import する
- 今回は
Flying Knee Punch Combo
を使用- このような移動が発生する Animation では、Root Motion を使用する
- VRM からインポートしたモデルに対して適用したい場合は、一度 Manny に Retarget してから目的のモデルに対して Retarget する
- 今回は
参考:
Radial Force
- Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter をダブルクリック
-
+Add
をクリックしてRadial Force
を追加 - アニメーション中の手の位置と合わせるため、今回は前方に 60 ずらした
- 衝撃が発生する範囲を
Radius
で指定。今回は 500.0 とした - 衝撃力を
Impulse Strength
で指定。今回は 100000.0 とした - 常に発生する力を
Force Strengh
で指定。今回は 0.0 とした -
Ignore Owning Actor
を True にする。Root Motion を使用していない場合、この設定をしていないとプレイヤー自身も吹き飛ばされる - 適当なタイミングで
Fire Impluse
を呼ぶ。今回はアニメーション開始から 1.3 秒経過後とした
-
参考:https://arayz.hatenablog.com/entry/2018/10/10/163450
Niagara System
-
Edit → Pluins で NiagaraFluids にチェックを入れてエディタを再起動
-
適当な場所に Niagara System を作成。今回は
Grid3D_Gas_DustExplosion
を選択 -
作成した Niagara System をダブルクリックし、
User Parameter
のDrawBounds
のチェックを外す -
適当なタイミングで
Spawn System at Location
を呼ぶ。今回はFire Impluse
と同時とした-
Spawn System at Location
のSystem Template
に作成した Niagara System を設定 - 生成された NiagaraComponet を変数に記憶し、次回の生成時に
Destroy Component
を呼ぶ
-
コントローラーの設定
-
Content/ThirdPerson/Input/Actions に適当な Input Action を追加、ダブルクリックする
-
Value Type
をDigital(bool)
に設定 -
Triggers
にPressed
とReleased
を追加
-
-
Content/ThirdPerson/Input/IMC_Default をダブルクリック
- 追加した Inpout Action の横の + をクリックして設定を追加する
- アイコンのついたボタンをクリックし、任意のボタンを押すと
Inpout Action
と紐づけられる
-
BlueprintEditor の Event Graph 上で右クリックして追加した
Inpout Action
の名前を入力することでノードを追加できる
Discussion