Blender

【Blenderアニメーション】作った3Dモデルをインポートしたモーションデータ(bvhファイル)で動かす方法【再リギングするだけ】

Blenderで好きな3Dモデルを制作したら、早速動かしたいものですね。

しかし、一から動かすためのモーションファイルを作成するのは、とても大変^^;

全身のボーンに対して、位置と回転を各フレームごとに保存していくのは、大変な上、

不自然でない動作に作るのは、労力と技術が必要です。

 

とにかく作った3Dモデルを動かしたいならば、

mixamoというモーションのデータベース(無料)にモデルをアップロードする方法が、

最も簡単です(ボーンを仕込むリギングの処理が不要なため)。

 

この方法では、mixamoに登録されているモーションでしか動かせない・・・?

と、思うかもしれませんが、

mixamoにアップロード後、キャラクターごとモーションをfbxファイルとして出力、

さらに、Blenderに再インポートして、モーションデータを改変すれば、

オリジナルのモーションを作成することができます。

この方法は、オリジナルモーションを作成するのにオススメの方法です!
詳細は、下の記事をご参考ください。
※mixamoからfbxファイルとしてBlenderに取り込むところから解説してます。

【Blenderアニメーション】mixamoのモーションデータを自分好みに改変する方法【作業短縮!Unityにも使える!】モーションは、自分で作らなくても、無料でダウンロードできます。 それは、タイトルにあるmixamoというサイトだったり、個人で制作...

だがしかし、

mixamo以外のモーションデータを適用させたい!

そのような願望をもつ方もいるはず(僕がそうでした)。

本記事では、そのような希望をかなえるために

mixamoからでないモーションデータ(.bvh)をBlenderにインポートして、

3Dモデルを動かす方法”

を解説しようと思います。

※bvhファイルは、モーションデータの主流です。

有名なモーションデータベースの”cgspeed”では、bvhファイルが配布されている。
モーションキャプチャツールでも、出力データはbvhファイルで保存されるのが一般的。

この作業をすれば、こんな感じでBlenderモデルにモーションをつけられます↓

1.bvhファイルをインポート

Blenderにて、動かしたい3Dモデルデータを開きます。

ファイルタブの「インポート」から「モーションキャプチャ(.bvh)」を選択。

適用したいbvhファイルをインポートします。

インポートすると、アーマチュア(骨組みのようなもの)が現れます。

それを選択した状態で(オレンジになる)、「オブジェクトデータプロパティ」にある「レスト位置」を選択します。

モーションの入っていない(動きのない)アーマーチュアの状態となります。

(原点を中心にTポーズかAポーズをとるはずです)

図では、モデルはAポーズ、アーマチュアがTポーズをとっています。
(3DモデルはTポーズで作ること推奨^^;)

インポートしたら、このアーマチュアとモデルをリギングしていきます。

そのために、アーマチュアのボーン(骨)が見えやすいように、「ビューポート表示」の「最前面」にチェックを入れます。

すると、モデルに隠れません。

モーションをインポートしたら、アニメーションを再生して、確認しましょう。
回転や位置が想定していたものと違うのは、よくあることです。それは後ほど、修正できますので、ご安心を。

そして、ここでは、わかりやすい姿勢をとるフレームを覚えておくと、後でボーンを修正する際の基準にすることができます。
例えば、私がモデルにつけたいダンスモーションでは、127フレーム目に手足が閉じた直立の姿勢をとりますこの画面をスクショ(「Alt」+「Prt Scr」)して、画像としてメモしておくことをオススメします。

 

次は、リギングです!


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】モデリング時にボーンヒートウェイトのエラーを回避する方法【逆転の発想:前もってリギングしとく】以前にボーンヒートウェイトのエラーが生じたときの 解決策を紹介しておりました↓ https://youdoyou-motto.c...

Blenderで作ったモデルを動かすならゲームエンジン”Unity”がおすすめ!
自作モデルをゲームプレイヤーとして操作する方法!!

【Unity】プレイヤーキャラクターを動かす方法(矢印の方向に移動させるタイプ)【カメラ固定ゲーム向き】Unity初心者は、まず初めに ”プレイヤーキャラクターを動かしたい(操作したい)” と思うのが、世の常ではないでしょうか?...

BlenderモデルをUnityでvrmファイルに変換すれば3teneStudioで即Vtuberに!!

【自作の3Dモデルで即VTuberになれる】fbxファイルをvrmファイルに変換して3teneで自在動かす方法【Blender・Unityユーザーにおすすめ】3Dモデルを作るのが好きな方、 顔はバレずにVTuberとして動画配信をしたい方、 唯一無二のオリジナルモデルを自在に動かし...
ABOUT ME
いなも@システマライフハッカー
某有名健康食品メーカーに勤めながら、ロシアの武術”システマ”の訓練に精通。その後、システマの概念とスキルを軸に生きること、その普及活動に投身することを決意。 ”システマ”の概念より、過酷な現代社会を、スマートかつ快適に暮らせるようなノウハウを、ブログを通じて忖度なしで発信中~! 問い合わせはTwitterのDMで!(https://twitter.com/inamo002)

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA