アクションゲーム制作日記!~攻撃最中の即座の移動~

今回は、

 

攻撃最中に、いつでもすぐに移動できる処理!

 

についてちょろっと適当に紹介!

 

つい最近ダクソもどきを作っていて、4連続攻撃のモンタージュを作りました!

こんな感じです!

youtu.be

いいでしょ~^^(自己満)

しかし、このモンタージュには問題点があって、

 

各攻撃モーションの終わり際、「すぐに移動をしたい!」というときに、なかなか動けないのです。

つまり、攻撃モーション中「今すぐ移動したい!」となった時に、いちいち現在の攻撃モーションが終わるまで移動できないので、攻撃モーションが終わるまで待たなければなりません。

つまり、攻撃アニメーション→移動」の間の硬直が長いのです。

 

それじゃあちょっと動きが硬くって操作性が悪いので、こうしました。

 

まず、キャラクターBP

f:id:Free_Gamer:20180608223921p:plain

移動入力があった場合はTrueとして変数に格納

f:id:Free_Gamer:20180608223943p:plain

f:id:Free_Gamer:20180608224045p:plain

 

AnimBP

f:id:Free_Gamer:20180608223051p:plain

キャラクターBPから攻撃ボタンが押された通知が、イベントディスパッチャーとして送られてくる。

DoOnceを挟んであるのは、「連打した時に、動きがせわしなくならないため」

f:id:Free_Gamer:20180608224148p:plain

一連のコンボを再生する。

f:id:Free_Gamer:20180608224258p:plain

各攻撃モーション終了時に用意してあるブランチイベントが来た時点で、攻撃入力がされれば、コンボをつなげる。入力が無ければそのまま終了。(Reset)

f:id:Free_Gamer:20180608224328p:plain

そしてここ重要。

画像の下側にある処理は、最初に説明した

「各攻撃モーションの終わり際、「すぐに移動をしたい!」というときに、なかなか動けない

という操作性の悪さを改善するための処理です。

まず、キャストでプレイヤーキャラクターを参照した変数をゲットします。

そこから、キャラクターBPで用意した「MoveForward」「MoveRight」をゲットします。

f:id:Free_Gamer:20180608230530p:plain

f:id:Free_Gamer:20180608230542p:plain

モンタージュ側で用意したMove??というブランチイベントが来た時に、移動入力があればモンタージュを強制的に停止する。という処理です。

f:id:Free_Gamer:20180608224412p:plain

 

実際にやってみた。

Before

youtu.be

After

youtu.be

 

どうでしょう??Beforeに比べAfterは各攻撃モーション終了時に移動するときに、アニメーションがピタッと止まって即座に動けていたと思います!

 

こういう些細な調整でも操作性がよくなるというのが分かっていただけたかと思います!

それではまた!^^ノシ