演習4-2: Blenderのモーションブレンド
提出フォーム: 演習4-2: Blenderのモーションブレンド
それでは,Blenderでの2つのモーション合成の方法を見て行きましょう.
元となるモーションデータをBlenderに読み込む
第3回までに行った通常のFBXデータ読み込みを行って, 元となるモーションデータを読み込んでください.
追加のモーションデータをBlenderに読み込む
先ほどと同様に,FBXデータの読み込みを行って追加のモーションデータを読み込みます.
Nonlinear Animation エディタを起動する
- 左側のアイコンメニューから,Nonlinear Animationエディタに切り替える
- 各モーションの名前をダブルクリックする
- モーション名を分かりやすい形に変える
- 各モーションの横のアイコンを押すと,モーションがアクションとして登録される
大元のモーションに別のアクションを読み込む
アニメーションが切り替わらない場合, モーションのブレンド(置換え)が上手く行っていません.
- 右側のメニューを開き,Stripを選択
- 各アクションを選択しながら「Auto Blend In/Out」にチェックを入れる
この処理により,自動的にモーションが切り替わりつつ,重ねた部分はモーションが合成されるようになります.
重ねる部分を移動してみましょう
重なっている部分は,2つのモーションがブレンドされます.
※ ずらすと,それに応じて合成領域も変化します.
位置ずれがあるモーション合成への対応について
さきほどの例では,キャラクタの位置がほぼ止まっているモーションを合成しました.
歩く⇒走るように,移動するモーションを合成するにはどうすれば良いでしょうか?
まず,歩くモーションと走るモーションを読み込んで合成してみましょう.
- モーションの読み込み
- 歩くモーションのFBXデータを読み込む
- 走るモーションのFBXデータを読み込む
- 歩く,走るモーションを周期モーションにして長さを調整する
- Animationタブを開く
- Add Modifier > Cyclicを選択
- Repeat with Offsetを選択して周期モーション化する
- 歩く,走るモーションのアクション名を分かりやすい名前に変更する
- Animationタブを開く
- Action Editorを開く
- Objectモードに変更する
- 各スケルトンを選択して名前を変更する
- 歩く,走るモーションをアクション化する
- Nonlinear Animation エディタを起動する
- モーション名横のアイコンを押してアクション化する
- モーション合成を試す
- Add Stripで歩くモーションに走るアクションを加える
- Auto Blendをオンにしてアクションを重ねる
位置がずれる問題の解決
単純に歩く,走るのモーションをブレンドしてしまうと, 走るモーションが始まった時に,キャラクターが開始点まで戻るような動きがみられます.
- 歩くモーションの終わり: 歩い終わって移動した位置
- 走るモーションの始まり: 走り始めの開始位置
この2つの位置を混ぜようとして, キャラクターが戻るような動きが出てしまいます.
これを解決するには,走るモーションの初期位置をずらします.
位置ずれ・回転ずれを直す一番簡単な方法
親オブジェクトのArmatureにキーフレームを打つ.
- ObjectモードでArmatureを選択する
- 移動・回転をキーフレームで制御する
- Blend前の初期位置・向きをキーフレームで登録しておく
- Blend後(間くらいが良い)のタイミングで位置ずれ,回転ずれを修正する
親オブジェクトをキーフレーム制御する際の注意事項
[メリット]
※ 回転ずれの修正も同じやり方でシンプルにできる
※ キャラクターの配置を制御する延長線上で編集可能
[デメリット]
※ Blendするタイミングを変えると,位置ずれの修正,回転ずれの修正もタイミングをずらす必要がある
参考: アクション化したモーションをキーフレーム編集できるようにする
つなげるモーションの初期位置をキーフレーム編集でずらすことができる.
アクションのキーフレーム編集の注意事項
[メリット]
※ アクションのタイミングをずらしても位置ずれ修正がついてくる
[デメリット]
※ 移動が続く場合,キーフレーム編集が複雑になっていく
※ 回転ずれの修正は難しい
- アクションを右クリック > Start Tweaking Strip Actions (Full Stack)
- Graph Editorを開く
- パラメータを選択してキーフレーム編集可能
位置合わせが必要なのは,腰の位置だけなので,
mixamorig:Hips
を選択してLocation Z
等を表示し,
上手く位置合わせして重ねてみてください.
ブレンド直前の位置を観測すると,どのくらいの位置に動かせば良いかの値がおおまかに分かります.
また,モーションがブレンドし始めのところで,Auto Blendのオン・オフを切り替えると, 重なり具合が視覚的に分かります.