Study Works

YuukiHiraiの勉強したものを上げていきます。

UE4でヒット演出解説

Unreal Engine 4 (UE4) Advent Calendar 2017 の8日目です。

qiita.com

 今回はアクションゲームで重要となるヒット演出について

・物理アニメーション
・カメラシェイク
・ヒットストップ
・ヒットエフェクト
・吹き飛ばし演出

この5つで紹介していきます

 

最後にサンプルプロジェクトを配布しているので
参考にどうぞ!

 

今回、紹介するのはこんな感じ

f:id:yuukihirai0331:20171205000854g:plain

 

物理アニメーション

まずキャラクターにダメージモーションをセットしたいところですが
今回はダメージモーションがなしのため物理アニメーションを採用したいと思います

alweiさんのブログや公式が紹介していますが改めて紹介します

 

unrealengine.hatenablog.com

www.youtube.com

モーションが物理的なオブジェクトの影響を受けてそれにそった動きをします。

f:id:yuukihirai0331:20171205001434g:plain

~alweiさんのブログより~

ここに関してはalweiさんのブログや動画を参考にしてもらえれば大丈夫です
付け加えて言うとpelvisではなくspine_2などを選ぶとその子ボーンのみ
アニメーションさせることができます

f:id:yuukihirai0331:20171205003332p:plain

f:id:yuukihirai0331:20171205003628p:plain

この実装でこんな感じ
f:id:yuukihirai0331:20171205011722g:plain

 

カメラシェイク

UE4にカメラシェイク用のクラスが用意されており
こちらのブログで紹介されていますが改めて紹介します

historia.co.jp

UE4 カメラを振動させる(Camera Shake BP、Client Play Camera Shake) 凛(kagring)のUE4とUnityとQt勉強中ブログ

 
おなじみのブループリントクラスから

f:id:yuukihirai0331:20171205004233p:plain

「CameraShake」クラスを選択し

f:id:yuukihirai0331:20171205004115p:plain

こちらの詳細で設定したものを

f:id:yuukihirai0331:20171205004504p:plain

ブループリントから呼び出します

 

おまけですが、なるさんがアクションゲームを参考に例をあげたものが
とても参考になるのでここに添付しておきます

カメラシェイクを入れると微妙ですがこんな感じに

(すいません、GIFだとわかりにくいですね)

f:id:yuukihirai0331:20171205012022g:plain

 

ヒットストップ
これに関しては2つ方法があってベヨネッタのウィッチタイムのような敵だけがスローモーションになって自分は自由に動かせたい場合、こちらの
「Custom Time Dilation」を0~1の間で設定することで

遅くしたり一時停止させることができます

f:id:yuukihirai0331:20171205010630p:plain

 しかし、今回は全体的に遅くしたいのでこちらのブログの最初で紹介された

unrealbussan.hatenablog.com

 「Set Global Time Dilation」を使い、ヒットストップを実装していきます。
まずヒットストップというのは、ヒットしたときに何フレーム描画を停止するまたは遅くすることを言います。

ヒットストップを入れるとこんな感じに結構いい感じになります。
(Gif画像が分かりにくくてすいません)

f:id:yuukihirai0331:20171205012432g:plain

 

↓参考までにどうぞ

 

吹き飛ばし演出

 あとは下の画像のノードのように
ヒットしたときにライフカウントを計算して
Simulate Physicsをオンにしてあげれば吹っ飛ぶようになります

f:id:yuukihirai0331:20171205224150p:plain

 こんな感じに

f:id:yuukihirai0331:20171205225030g:plain

あとはこれに当たった時のエフェクトやサウンドを適当に入れれば

f:id:yuukihirai0331:20171205225440g:plain

良い感じのヒット演出ができます。

今回は敵のブループリントクラスだけで完結しています。
敵のブループリントはこのようになっています

f:id:yuukihirai0331:20171205231833p:plain

f:id:yuukihirai0331:20171205232011p:plain

f:id:yuukihirai0331:20171205232046p:plain

f:id:yuukihirai0331:20171205232116p:plain



今回、結構ブログやツイートの紹介に頼っている部分が多くて申し訳ありません
しかし、他の方がとてもよくまとめているのでそのまとめ記事として投稿しました

日々情報発信をしていただいている方には頭が上がりません、本当にありがとうございます

 

最後に今回紹介したことをまとめたプロジェクトファイルを下記で配布しています

もしよければダウンロードして参考にしてください。

SampleHitAction.zip - Google ドライブ

 

Unreal Engine 4 (UE4) Advent Calendar 2017 - Qiita

明日はまめおさん(まめお (@PaperSloth) | Twitter)の

Unreal C++を書くにあたってやっておいた方がいいこと」です。


ありがとうございました。