攻撃時の移動無効と一定間隔での攻撃

お世話になります。プレイヤーキャラクターの攻撃コンボの学習をしていたのですが、どうしても行き詰ってしまったので質問させていただきます。

質問はプレイヤーキャラクターの移動中に攻撃をすると地面で足が滑りながら攻撃モーションを行う点。
攻撃ボタンを連打すると間隔なく攻撃アニメーションを行ってしまう点。

ブログ記事やAnserHubで過去に解決されていた項目をいくつか確認したのですが、足が滑ってしまう点は自分の力では見つからず。一定間隔での攻撃についてはMultigateの前にDoOnceを挟みAnimNotifyでDoOnceのリセットを行う方法を試してみたのですが解決しませんでした。(https://answers.unrealengine.com/questions/774810/連続攻撃について質問てす.html)

アニメーションはマーケットプレイスで購入したこちらのアセットを使用しています。(Dynamic Sword Animset in Animations - UE Marketplace)

初歩的な質問内容で誠に恐縮ではございますが、どなたかご教示願えませんでしょうか。

追記です。上記のノードはこちらのブログ様を参考にさせていただきました。(「Unreal Engine」Dynamic Sword Animsetでコンボ攻撃を作ってみた - シヴァのブログ)

画像見させていただきました。


これでは確かにボタン連打すると間隔なくアニメーション再生されます。

理由は単純で、ボタン入力不可の時間を一切取っていない のが原因です。

DoOnceの解除判定が 1フレーム毎にイベント発行される BlueprintUpdateAnimationで行われているため、ボタンを少し離した瞬間にReleseイベントで解除、間髪入れずに押すと次の攻撃アニメーションに遷移するようになっています。

なので、 ボタン入力不可の時間を何らかの形で取る必要 があります。


地面で足が滑りながら攻撃モーションを行う点ですが、以下の2点で解決できるかと思います。

・アニメーションモンタージュ(Slot)を キャッシュしたアニメーション から繋げるようにして、ボーンでブレンドする

・攻撃アニメーション処理が走っている間は、移動処理を行わないように処理を追加

→画像例で言えば、インプットAxils MoveFowardとインプットAxils MoveFoward MoveRightの初めにisSowrdAttackがFlaseであれば移動処理を行う判定処理を追加すればいいと思います。


参考になるかはわかりませんが、以下、自分が主催しているUnreal Engine MeetUp Saitamaでコンボアニメーションのハンズオンを行った時の資料があります。

アニメーションのキャッシュの方法や、コンボ処理の参考例が載ってますので、参考にしてみてください。

UE4 Saitama 初心者向けハンズオン #5 『アニメーションモンタージュ(Slotアニメーション)でコンボを作る』

上記のスライドに書かれているコンボ処理であれば、少なくとも連打した時にすぐキャンセルして次のアニメーションに行くことはないはずです。

Yuuki Ogino様 資料までご丁寧にありがとうございます。一度ご回答いただいたように試してみます。

Yuuki Ogino様 ご回答いただいたように試してみたところ、無事に思い通りの挙動にすることができました。
いただいた資料の方もとても分かりやすく、今後は応用して色々な処理を試してみようと思います。

この度はありがとうございました。