奮闘記~武器の変更~
最近、TwinBlade(Sword)のアセットで完全自己満足アクションゲーを作ってます。
これですね。
二刀流(TwinSword)と両刃一刀流?(TwinBlade)の二種類あり、もう一つはTwinBladeとTwinSwordを瞬時に切り替える変形モーションもあります。(ブラッドボーンみたいな感じ)
なかなかかっこいいモーションが多いのでお勧めですね。
今回は、変形モーションで苦戦した話をします。
※まだ試行錯誤してる段階なので、これで確定かどうかは分かりません。
武器を持ったプレイヤーを作成。
右手武器・・・Weapon_r
左手武器・・・Weapon_l
Weapon_rは「Weapon_r」という名のソケットにアタッチ。
Weapon_lは「WeaponAttach」という名のソケットにアタッチ。
イベントグラフに武器変更の入力イベントを作成。(イベントディスパッチャー)
TwinBladeとTwinSwordの「Idle_Walk_Run」を用意する。
次に、武器変更モンタージュを作成。
TwinBlade→TwinSword変更モーションとTwinSword→TwinBlade変更モーション両方上の画像のような作りにしました。
ChangeWeapon・・・武器を変更した際の通知
TransEnd・・・武器変更終了通知(アニメーション終了する場所に配置)
動画のように、ちょうどプレイヤーが武器を入れ変えるモーションをしているタイミングにChangeWeapon通知を配置してるのが分かると思います。
AnimBP
連打した時にモーションが荒ぶらないようにDoOnceを。
Qキーを押したときに、変更モンタージュを再生する。
変更終了時、DoOnceのResetに処理が流れる。
そして、トランディションルール用のBool値をセットしてます。
A・・・TwinBlade→TwinSword(True)
B・・・TwinSword→TwinBlade(False)
TwinBlade→TwinSwordトランディションルール
TwinSword→TwinBladeトランディションルール
Animグラフでモンタージュ通知(ChangeWeapon)を追加
ChangeWeapon通知が来た時に、Weapon_lを左手のソケット「Weapon_l」にアタッチしています。
もう一度通知が来た時に、「WeaponAttach」ソケットに戻してます。
これで、自然に武器を切り替えるモーションが出来ました。
あとは、移動しながらでも自然に変更モーションを行いたいので、モーションをブレンドします。
Spine_01より上のボーンに対して変更モーションを適用します。
やってみましょう!
しっかり変更モーションが行われてますね!
さて、肝心の苦戦した話をします。
実は、最初は武器をソケットにアタッチして行っていませんでした。
ボーンにアタッチして行ってました。
「Ik_Hand_l」と「Ik_Hand_r」ですね。
理由は、このボーンにアタッチすることで攻撃モーション時にちょっと楽になるからです。
どういうことかというと・・・
例えば、武器をくるくる回す攻撃モーションがあるのですが、この時わざわざこっちで武器の回転アニメーションを作らなくても、もうすでに「Ik_Hand_r」「Ik_Hand_l」に回転アニメーション処理が搭載されているので、このボーンにアタッチしていたのです。
しかし、これには問題があり・・・
「Ik_Hand_l」「Ik_Hand_r」に武器をアタッチして変更モーション(ブレンドあり)をしたらどうなるかというと・・・
見ての通り、モーションと武器の動きがマッチしてません。
試行錯誤したのですが、結果「武器のアタッチはボーンじゃなくソケットにアタッチするのが良い。」というのが分かりました。
そもそも、武器のアタッチをボーンにすること自体どうやらおかしいみたいですw
なので、武器のアタッチはソケットにするもの!と覚えときましょう!
それではまた!^^ノシ