今回はモーションブレンドをやってみる。
アニメーション
FBXをAssimpで読み込む際、アニメーションを含むメッシュの場合は一緒に読み込んでいる。
各アニメーションはそれぞれ切り替えれば作られた通り動きはするんだけど、アニメーションを切り替えた際、その前の姿勢を無視して切り替えたアニメーションIDの再生が始まるため、ものすごく不自然になる。
![]() |
| 歩き⇔走りの切り替えアニメーション |
Unreal Engineでゲーム制作をしている人の動画を見ているとき、2つあるアニメーションを混ぜて1つのアニメーションとして利用していた。
そんなことができるのかと驚いた記憶がある。
この仕組みを使えば、あるアニメーションから別のアニメーションへの切り替えもスムーズに行えるはず。
モーションブレンド
FKアニメーションの仕組みで、アニメーションのある時間の状態を作る際、前後の確定したキーフレームから、位置、スケール、クォータニオンのベクトルを取り出して線形補間をしている。
この処理がモーションブレンドなんじゃないか?
実は既に似たようなことはやっていたのか。
現在のアニメーションの補間されたベクトルと、切り替えるアニメーションの補間されたベクトル同士を補間すれば期待した動きになると予想。
![]() |
| ブレンド結果 |
あっさりうまく行った。
ただ、切り替えのタイミングによってはぎこちない場合もあったりする。
この辺はアニメーション同士のつながる位置のオフセット情報を設定できるようにしたりすれば常にきれいにつながるような気がする。


0 件のコメント:
コメントを投稿