ループするモーションを作る【Blender】

前回の記事でも少し触れましたが、歩きのモーションを作りたいけれど前方への移動は含めたくない(その分は物理演算などで動かす)という場合にはその場で歩きの仕草だけをするモーションを作る必要があります。
ただし、そのままの状態で仕草だけのモーションを作るのは案外難しいです。
床の移動を正確に考慮しないと移動・回転速度と足の接地が合わなくて滑ることがあり、これを実際の移動・回転なしに正しく作るのは至難の業です。

今回は、僕が一定速度で移動する仕草のアニメーションを作る際の作り方をまとめてみました。

ルートボーンを使う

一定速度で動くアニメーションを作る際は、全体の動き用のボーンを作ってモデル全体を動かしながら作業するととても楽になります。
僕はルートボーン(Root)という名前で作っています。これは全てのボーン(HipとIK関係のボーン)の親になるように作ります。

ルートボーンを動かす時にとても重要なのがキーフレームの補間方法です。
初期状態だとBlenderの補間方法はベジエ曲線になっています。
人体のボーンを滑らかに補間できる方法ですが、ベジエは直線移動や回転運動をする時に加減速が発生してしまいます。
今回は等速で動く状態を想定して足滑りが起こらないようにしておきたいので、ルートボーンの動きは等速になるようにします。

ルートボーンの動きの補間方法を変えるには、キーフレームを右クリックしてプルダウンの「補間モード」から「リニア」に変更します。

リニアにすると、キーフレームの間の表示が変わります。

これで、モデルが必要な位置まで移動(または回転)する動きを作ればOKです。

動きをループさせる

ループする動きを作るのは簡単で、最初のキーフレームを最後のフレームに貼り付けてから間の動きをつなぐように作っていけばOKです。
作業途中で最初のキーフレームのポーズを変えた時は忘れずにコピーし直します。(最後のキーフレームを変えた場合も最初のキーフレームにコピーするのを忘れずに!)

貼り付け作業をする際、ルートボーンも一緒にコピーペーストするとせっかく作った動きが消えてしまうのでチャンネルの右横の鍵アイコンをロックしておきます。

最初と最後のフレームが同じということは、そのままループさせると2フレーム分動きが停止してしまうように思えます。
これについては、Blenderではアニメーションを0フレームから開始させることができるので、最初のフレームを0にします。これで1~60フレームをループさせながら0フレームと60フレームは同じポーズにする…ということが可能になります。
(これはUnityの方でも同様の仕様で、最終フレームと0フレームの間では時間経過がなくループするようになるのでこのままでOKです)

また、ループするモーションの中でも「歩き」「走り」など途中から反転した動きをするものには「反転して貼り付け」を使います。
複数のキーフレームをまとめてコピーできるのでとても便利です。

まとめて貼り付ける際の注意点として、被ったキーフレームは上書きされますが被っていないキーフレームはそのままになります。
そのため、貼り付け先の一部に食い違ったキーフレームがあるとその部分だけ残ってしまいます。
反転して貼り付けをする前に、貼り付け先の範囲を全削除するのがオススメです。

足裏の動き

ルートボーンを入れて動きを作り始めると気付きますが、動いているモデルの足裏を地面に合わせるのがちょっと大変です…。
いろいろ考えましたが解決方法が分からなかったので、僕は力押しで画面のグリッドを見ながら位置合わせしています…。
キーボードショートカットのCtrl+7で下からの視点にし、シェーディングをワイヤーフレームにするとグリッドが見やすいです。

動きがなめらかな部分は3~4フレームごと・大きい動きでカクつく部分は1~2フレームごとで足裏にキーフレームを打つ感じです。
キーフレームがどうしても細かくなってしまうので、他の全身の動きや歩幅の動きを大体作ってから最後に足裏の接地部分を丁寧にやると良いかなと思います。

この点について良い方法があったら教えていただけるととても嬉しいです!

一応ですが、足裏についてはあまり突き詰めなくてもいいのかなと思っています。
ゲームのキャラの動きが常に一定速度ということはあまりないと思うので、ぴったり合わせて作ったとしてもどこかで足裏が滑る現象は発生します。
市販のゲームでも足裏が全然滑らないものはほとんどないと思うので、変にカクついて気にならなければOKと割り切ることにしています。

出来上がり

ルートありの動きとルートを外した状態の動きはこんな感じです。スニーク歩きのモーションです。

ルートあり

ルートなし

エクスポートの注意点

チャンネル横のアイコンの真ん中のチェックを外してルートボーンの動きをオフにすると「その場でループ」の動きになりますが、この状態でエクスポートしてUnityに持っていったら変な挙動がありました。
ルートボーンを持っているモーション同士では動きが合いますが、ルートボーンが元々ないモーションとの間で動きがうまくつながらないようです。

全部のモーションを自作してルートボーンを持たせているならオフにするだけでもよさそうですが、そうでなければルートのチャンネルとボーンそのものを両方削除する方が良いかなと思います。

ループするモーションは工夫する点がいろいろあって大変ですが、ゲームの中でも役割が大きいので自分で作れるととても便利です!
他にも良い作り方などがあればぜひ教えていただけると嬉しいです。

シェアする

「Blender」の記事

最新記事

もっと読む>>