👊
[Unreal Engine 5] 殴って吹き飛ばす ( Radial Force / Niagara / Input Action )

殴って吹き飛ばす(ように見せる)。
実際には手の動きに合わせて爆発を起こしているような実装となる。
動作確認環境
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の名前を入力することでノードを追加できる




Blueprint の全体図

Discussion