PR

【UE5】どっちがいいの?アニメーションBPとアニメモンタージュについて考える!【アニメーション】

Character/Animation

この記事はUE5「Ver5.3」で制作しているよ

こんにちは!ウンパッパです!

今回は、アクションを実装する際に

「アニメーションBP」でアニメーションを実装するのと

キャラクターBPの「アニメーションモンタージュ」で実装するの

どっちがいいのか? ってのをを紹介するよ

この記事は「個人の見解」を多分に含んでるから
他のサイトの記事と並行してみて行くのをお勧めするよ!

また、両方採用する「アニメーションBP×アニメーションモンタージュ」の
ハイブリットアニメーションを実装する方法も描くからよかったら見て行ってね!

結論:両方使おう

「攻撃アニメーションをどこに置くか…? 回避アニメーションはモンタージュなのか…?」
最初は悩むと思うんだ

ただ、「アニメーションBP」と「アニメモンタージュ」は
別に片方に統一する必要はなくてどちらも「役割や特徴がある」

特徴ごとにアニメーションの種類を区別することになるから
結局は両方使うんだ

なので僕たちが知るべきは
「どのアクションがどのアニメーションシステムに振り分けるべきか」

それさえ知れれば問題解決だ

というわけで早速両方のシステムの特徴と用途を知りにいこう!

2つのアニメーションの特徴

まずは2つのアニメーションについてざっくり解説するよ

アニメーションBP(Animation Blueprint)とは?

アニメーションBPは「”全体的な動きを管理”するシステムだよ」

例えば「移動」「ジャンプ」「落下」などの基本的な動作を制御し

どのアクションから どのアクションを 呼び出すのか、
そんな「アニメーションの流れ」を管理するのが「アニメーションBP」

そしてこの管理下に置いてあるアニメーションは
呼び出されるときに「滑らかに移行することが出来る」ってのが特徴だよ
(呼び出したときにアニメーションがブツ切りになりにくいということ)

  • ただ、ここはアニメーション全体を管理するだけで
    「アニメーション内にシステムを仕込む」ことができないんだ

ではどこで「アニメーション」に「システム」を仕込むのか
それが「アニメーションモンタージュ」なんだ

アニメーションモンタージュ(Anim Montage)とは?

基本動作の中に「意識して割り込ませたいアクション」がある場合
もしくは「アニメーションにシステムを加えたい」場合

そんな場合に「アニメモンタージュ」は使われるよ

よく使われるのは「攻撃」「回避」「パリィ」だ

「割り込み」では例えば
「移動中に攻撃」「ジャンプ中に回避」
と、「アニメーションを中断し再生」もしくは「同時に再生」することが出来るんだ

「システム」で例えれば
「攻撃」は「攻撃システム」「SE」「エフェクト」をアニメーション内に仕込めるし
「回避/パリィ」は「無敵判定/パリィ判定」なんかをアニメーション内に仕込めるようになるんだ

そして
何もしない場合は「アニメーションBP」の制御下にないから
「再生してほしくないアニメーション」からも再生できてしまうんだ

だけど

「アニメーションBP」を経由したり
「Defolt Slot」をうまく扱えば
より融通が利いて便利なアニメーションシステムになるよ!

「Defolt Slot」の使い方がわからないならこの記事を見てね

2つのアニメーションのと比較

軽く解説できたので次はざっくり比較

アニメーションBPアニメモンタージュ
用途キャラクター全体の動作(移動・ジャンプ・落下)特定のアクション(攻撃・回避・スキル)
アニメ遷移の流れABP内で「流れを管理し再生」遷移を無視して「直接再生」する
固有のシステムアニメーションブレンドなどで
混ぜたり調整できたりする
「Slot」システムで
「タグ」付けして各アニメの起動を振り分けできる
途中キャンセル難しい(次の状態に遷移しないと終了できない)可能(途中で割り込んで別のアクションに移行可能)
親子関係【親】
なので「モンタージュ」を「ステート」の管理下に置ける
【子】
なので「ABP」を管理下に置くことはできない
使用例通常の移動・ジャンプ・しゃがみ・落下攻撃・回避・スキル発動

だいたいこんな感じ

とにかく
「アニメーションBP」はパッシブ、「基本的なアクション」を管理していて
「アニメモンタージュ」はアクティブ、「意識して行うアクション」を実行するんだ

アニメーションBPのザックリとした使い方!

実際に例を出して「アニメーションBP」の使い方を見て行こう

今回は「しゃがむ」を実装するよ

完成系はこんな感じ

「アニメーションBP」において重要なのは「許可(Boolean変数)」

「キャラクターBPの許可」と「アニメーションBPでの許可」
この2つのやりくりで「アニメーションの遷移」を作っていくんだ

ちなみに今回使用した素材は
「Lyra Starter Game」というUE5が無料で配布しているゲームプロジェクトから
アニメーションを流用しているよ

もし気になるなら
僕が事前に用意したこのフォルダをダウンロードするか

「Fab]からプロジェクトをダウンロードしてアセットを持ってこよう

Just a moment...

素材をインポートする

まずはダウンロードしたアニメーションをUE5内にインポートしよう

インポート時は「skeleton」を「UE5のMannequin」にしよう

キャラクターBPで「入力」と「許可」を作る

次に「入力ボタン」とアニメーションを「起動するBoolean(許可)ノード」を作ろう

今回は「Left Ctrl」を「押したら”許可”」、「話したら不許可」にするよ

この「許可」「不許可」を「アニメーションBP」に持っていくことで
「アニメーション再生」と「アニメーション終了」を行わせるんだ

「許可」を「アニメーションBP」に持っていく

「キャラクターBP」の「許可」を「アニメーションBP」に持ってきて
機能できるようにするよ

「アニメーションBP」を開いたらまずは
何処からデータ引用するか決めてる「Cast To ノード」を変えに行こう

「キャラクターBP」からデータが引用できるようになったら

次は生成した「As BP Third Person Character ノード」から
「Is Crouch ? ノード」を生成

そのうえで「アニメーションBP」用の「Is Crouch ?」を生成して

両方つなげて「Is Crouch ?」が連動できるようにしよう

最後に「Event Blueprint ノード」の次に
「検証済みGetに変換」された「Get As BP Third Person Character ノード」を入れる

これで「許可」の用意OKだ

アニメーションを用意する

次は「アニメーション」を用意しよう

「Anim Graph」内にある「Main States」にて
「Crouch」用の「ステートエイリアス」と「ステート」を用意しよう

「ステートエイリアス」は「どのアニメーションから遷移可能か」を管理する場所
「ステート」は「アニメーション本体の再生」を管理しているよ

そして「ステート間につながっている矢印」が「アニメーションの許可」を管理しているんだ

プレイヤーは「ボタンを押す」ことによって
「入力」⇒「アニメーション許可」⇒「アニメーション再生」をさせられるんだ

というわけで「許可」を仕込もう
「 ⇄ アイコン」をダブルクリックで開いてこんな感じに組んでね

これで
ボタンを押せば「しゃがみ始め」「しゃがみ中」が再生され
ボタンを離せば「しゃがみ終了」が再生されるようになったよ

では最後に「アニメーション」を仕込もう

こんな感じに「ステート」内を組み立ててね

そして最後に「どのアニメーションからどのアニメーションに流れるか」
そんな「アニメーション遷移」を「ステートエイリアス」をつかって管理しよう

今回はこんな感じに許可を通してね

「To Crouch (しゃがみ) 」は
「Locomotion(移動/待機)」「Land(着地)」「Crouch Enter(しゃがみ始め)」
”から”再生できるようにしよう

「To Land (地上) 」は
「しゃがみ終了」から再生されるようにしよう

これで「しゃがみ終了」した後に
「移動/待機」が再生されるから
アニメーションが(迷子になって)止まることはなくなるよ

「To Falling (空中) 」は何もチェックしないよ

空中でしゃがむ予定はないから
空中でしゃがんだ後のことなんて考えなくていいんだ

さて
「ステートエイリアス」はこれで組み立て完了だ

では早速プレイしてみよう!

うん!しゃがめているね!

しかも「着地」から「しゃがみ」を起動できるから
着地時は自然なしゃがみに移行できるし

「しゃがみ始め」から「しゃがみ始め」を起動できるから
スムーズに連続でしゃがみを繰り返せるよ

やったね!

アニムモンタージュのザックリとした使い方!

次は「アニムモンタージュ」だ

今回は「切る攻撃」を実装していくよ

今回のアニメーションは「mixamo」から使っているよ

サイト内で「Sword And Shield Slash」と検索すれば出てくるから
よかったら使ってね

Mixamo

アニメーションをインポートする

ダウンロードした素材をインポートしよう

「mixamo」からダウンロードする場合は

一度「UE5 Mannequin」を「mixamo」にアップロードしてから
アニメーションをダウンロードしよう

インポート出来たらOKだ

アニメモンタージュを用意する

次にインポートした「アニメーション」から「アニメモンタージュ」を生成しよう

「アニメーション」を「右クリック」⇒「制作する」⇒「AnimMontageを制作」で作れるよ

できたらOKだ

キャラクターBPにモンタージュを仕込む

最後に「キャラクターBP」にアニメモンタージュを仕組み

ボタンを押したらアニメーションが再生されるようにしよう

これでボタンを押せばアニメーションが再生されるよ

ただこのままだと変なアニメーションが再生されるので
上半身だけ剣を振れるようにしよう

上半身だけにアニメーションを適応させる

アニメーションBPをこんな感じにしていくよ

まずは「Main States」を使いまわせるように「Cached Pose」を作ろう

次に「Cached Pose」を使ってこんな感じにノードを作ろう

最後に「Layer blend per bone」にて
「アニメーション」のブレンド位置を「Spine_03」にすればOKだ

これでプレイしてみよう

うん!問題なく攻撃アニメーションが再生されてるよ!

やったね!

さらに
アニメモンタージュはここで様々なシステムの組み込みができるよ
「攻撃判定」「パリィ判定」「無敵判定」などなどだ

必要に応じてシステムを仕込んでいこう!

「Slot」について

さて
「アニムモンタージュ」が「アニメーションBP」上のどこで起動しているのかというと

この「Slot」という灰色のノードからなんだ

で、この「Slot」を「Defolt Slot」だけで使うととても融通が利かない

例えばこの状態で「回避」と「攻撃」をしてみよう

そう
「全身用のSlot」が優先されて結局「攻撃アニメーションも全身で再生」されるんだ
だからって「全身用のSlot」を外すと今度は「回避アニメーションが上半身しか再生」されない

でも「Slot」をしっかり理解すれば
そんな融通の利かない状態も解決できるよ!

この記事に詳しく書いてあるからよかったら読んでいってね!

「ABP」×「モンタージュ」のハイブリットを作る

さて、「アニメーションBP」を説明したときに「”全体的な動きを管理”するシステムだよ」
といったよね

実は、「アニメモンタージュ」も含めて「アニメーションBP」に管理されているんだ

だから「モンタージュ」を「アニメーションBP」の管理下に置くことによって
「アニメーションBP」で「遷移させたくない流れ」を制御しながらも
「モンタージュ」を使用することが出来る
両方のメリットを取ることが出来るハイブリットが作れるんだ

やり方は簡単

「ステート」の中に「Slot」を入れるだけ

これだけでより柔軟にアニメーションが管理できるんだ

さらに、「通常アクションにシステムを加えたい」と思った時も
そのアニメーションを「アニメモンタージュ」に差し替えれば望み通り起動できるんだ

例えば「しゃがみ中に急速スタミナ回復」をしたい場合はこうすればOKだ

デメリットとし管理するステートが増えるってのがあるけど
それでもやる価値はかなりあるよ!

おわりに

以上!
【UE5】どっちがいいの?アニメーションBPとアニムモンタージュについて考える!【アニメーション】
でした!

それでは次の記事にて、またね!

合わせて読みたい

コメント

unpappa

3Dとゲーム制作を趣味でたしなむ遊び人
ロボットアニメとアニメ調のキャラが好きで趣味でちょこちょこ作ります
人生の目標は「オリジナルのロボゲー」を1本作る事!
初心者だからこそ、いろいろな荒波がやってくるけど、それらを学びに変えて
「最もわかりやすいクリエイティブブログ」を目指してます!どうぞ良しなに!

unpappaをフォローする
Ci-enを始めました!あなたの応援で本サイトの記事の投稿頻度と質を向上させることができます!
詳しく見る!
Ci-enを始めました!あなたの応援で本サイトの記事の投稿頻度と質を向上させることができます!
詳しく見る!
タイトルとURLをコピーしました