Blenderで好きな3Dモデルを制作したら、早速動かしたいものですね。
しかし、一から動かすためのモーションファイルを作成するのは、とても大変^^;
全身のボーンに対して、位置と回転を各フレームごとに保存していくのは、大変な上、
不自然でない動作に作るのは、労力と技術が必要です。
とにかく作った3Dモデルを動かしたいならば、
mixamoというモーションのデータベース(無料)にモデルをアップロードする方法が、
最も簡単です(ボーンを仕込むリギングの処理が不要なため)。
この方法では、mixamoに登録されているモーションでしか動かせない・・・?
と、思うかもしれませんが、
mixamoにアップロード後、キャラクターごとモーションをfbxファイルとして出力、
さらに、Blenderに再インポートして、モーションデータを改変すれば、
オリジナルのモーションを作成することができます。
この方法は、オリジナルモーションを作成するのにオススメの方法です!
詳細は、下の記事をご参考ください。
※mixamoからfbxファイルとしてBlenderに取り込むところから解説してます。
だがしかし、
mixamo以外のモーションデータを適用させたい!
そのような願望をもつ方もいるはず(僕がそうでした)。
本記事では、そのような希望をかなえるために
”mixamoからでないモーションデータ(.bvh)をBlenderにインポートして、
3Dモデルを動かす方法”
を解説しようと思います。
※bvhファイルは、モーションデータの主流です。
有名なモーションデータベースの”cgspeed”では、bvhファイルが配布されている。
モーションキャプチャツールでも、出力データはbvhファイルで保存されるのが一般的。
この作業をすれば、こんな感じでBlenderモデルにモーションをつけられます↓
1.bvhファイルをインポート
Blenderにて、動かしたい3Dモデルデータを開きます。
ファイルタブの「インポート」から「モーションキャプチャ(.bvh)」を選択。
適用したいbvhファイルをインポートします。
インポートすると、アーマチュア(骨組みのようなもの)が現れます。
それを選択した状態で(オレンジになる)、「オブジェクトデータプロパティ」にある「レスト位置」を選択します。
モーションの入っていない(動きのない)アーマーチュアの状態となります。
(原点を中心にTポーズかAポーズをとるはずです)
図では、モデルはAポーズ、アーマチュアがTポーズをとっています。
(3DモデルはTポーズで作ること推奨^^;)
インポートしたら、このアーマチュアとモデルをリギングしていきます。
そのために、アーマチュアのボーン(骨)が見えやすいように、「ビューポート表示」の「最前面」にチェックを入れます。
すると、モデルに隠れません。
次は、リギングです!
2.モーションのアーマチュアとモデルのリギング
モーションが保存されたアーマチュアと、モデルをリギング(ボーンとメッシュを連動させる)すれば、動かせるようになります。
ここでは、リギングの手順を解説します。
1.でインポートした時点では、モデルとアーマチュアはズレていましたね。
ここでは、モデルをアーマチュアのある位置に移動させます(オブジェクトを「G」で移動)。
そして、モデルのメッシュの形に合わせて、ボーンの位置を変更します*。
*ここでのボーンの位置や回転を変更した分が、モーションに影響するので、できるだけ最低限の変更で一致させましょう。変更した分だけ、後にモーションで調整することになります。
TポーズのアーマチュアボーンをAに変えるために、手足を回転させて、角度をモデルに合わせます。
ボーンの変更ポイント
X軸ミラーをアクティブにすると、片側の変更が逆側に反映される。
回転の際は、軸を「3Dカーソル」や中点に変更し、隣接するボーンを複数選択すると、ボーンが分離しない。
テンキーで3軸の方向から、大きなズレがないか確認する。
肘と膝の関節は微妙に曲げておく。
なお、モデルとアーマチュアが重なるように、特定のボーンのサイズも、多少変更する必要があるでしょう(身長や手足の長さなど)。
サイズは、モーションへの影響が少ないため、気にせず変更してよさそうです。
モデルに重なるようにボーンを位置付けたら、
モーションを調整していきます。
「リスト位置」を「ポーズ位置」に変えると、まだリギングしていないので、アーマチュアのみモーションの動きに移行します。
このとき、元のモーションの動きと異なっているはずです。
なぜなら、さきほどボーンの位置や回転を変更したからです。
異なったモーションを元のモーションに修正せねばなりませんが、
ここで参考とするのが、ボーンに変更を加える前にメモしておいた画像です。
今回は127フレームに、気をつけの姿勢になるはずなので、それを参考に修正します。
現在、Animationタブで127フレーム目がどのようなものかというと、足が開き、手が交差した状態になってます。違いは明らかですね。
もし、モーションが短い時間しか動かない場合、再生フレームが30や60になっている可能性があります。「出力プロパティ」の開始フレームと終了をいじりましょう。
この修正方法は、エディタータイプを「グラフエディタ―」にして、行います。
このような手と足を開閉させる場合、Zオイラー角回転を調整します。
Zオイラー角回転のみ表示(目のマークを有効化)させ、エディター上で、「G」キー、「Y」キーの順で入力、カーソルを動かすとグラフが上下(y軸)に動きます。
それに合わせて、手足が開閉します。気をつけの姿勢になるところで、決定します。
この調整では、X軸ミラーが使えないので、両手足の4か所のボーンを開閉させる必要があります^^;
マウスを動かすより数値で調整する方が、左右を均等に調整できます。
モーションを確認すると、元のモーションに改善されていることを確認しましょう。
問題なければ、モデルとアーマチュアをリギングに取り掛かります!
ここからの作業は、おなじみのBlender操作です。
モデル、アーマチュア(ボーン)の順で選択して、右クリックより、自動のウェイトでペアリングします。
モーションを動かしてみて、おかしなところがあれば、細かくウェイトを調整していくだけですね(根気)^^;
リギング作業(特にウェイトを割り当てること)は、少し億劫ではありますが、
この方法をマスターすれば、
Blenderモデルに、多様な動きを、より簡単に動かせるようになりますね!!
bvhファイルを適用できるということは、cgspeedにあるモーションを活用できるということです!
利用規約を守って遊び倒してみてください!!^^
Blenderでモーション以外に顔の表情を制御するならシェイプキーを使おう↓
Blenderで悩ましいエラーの回避方法↓
Blenderで作ったモデルを動かすならゲームエンジン”Unity”がおすすめ!
自作モデルをゲームプレイヤーとして操作する方法!!
写真に近いリアルガチアバターをコストをかけずに作る方法をまとめました!
完全解説してるのは本ブログだけ!↓