おもちゃラボ

Unityで遊びを作ってます

【Blender】ボーンを入れる(リギング)ための基本手順

BlenderでうまくいかないところTOP3といえば、アニメーション、リギング、あとは・・・UV設定?かなーと思います。この記事では、3Dモデルにボーン(Rig)を入れるリギング(Rigging)について紹介していきたいと思います。

f:id:nn_hokuson:20171003203905j:plain:w500

Blenderを使ってメッシュにボーンを入れる方法や、IKの設定方法は次の「MikuMikuDance キャラクターモデルメイキング講座」にめちゃくちゃ詳しく図解で説明されているので、ぜひ読んでみて下さい。題名がMikuMikuDanceになっていますが、ガッツリBlender本です。なんか損しているような・・・笑

今回の記事の内容は次のとおりです。

メッシュを1つのメッシュにまとめる

まずは、作成したばらばらのメッシュを、1つのメッシュにまとめます。オブジェクトモードでAキーを押し、すべてのメッシュを選択した状態で「Ctrl+J」を押してください。

f:id:nn_hokuson:20171003194935j:plain

ボーン(アーマチュア)を入れる

続いて作成したメッシュにボーンを入れていきます。Blenderではボーンのことをアーマチュア(Armatuar)と呼びます。まずはオブジェクトモードで「Shift+A」を押しアーマチュア->単一ボーンを選択してください。

f:id:nn_hokuson:20171003195034j:plain

画面にボーンが一つ表示されるので、通常のメッシュと同様にしてgキーやsキーを使って移動・拡大縮小しながら背骨のあたりに移動してください。

f:id:nn_hokuson:20171003195304j:plain:w450

ここで、ボーンの見え方の設定をしておきましょう。いま作成したボーンを選択した状態で、画面右側の人型のタブを選択し、「表示」の項目の「レントゲン」と「名前」にチェックを入れます。これにより常に前面にボーンとボーンの名前が表示されるようになります。

f:id:nn_hokuson:20171003195549j:plain:w200

続いてボーンを伸ばしていきましょう。編集モードに変更しボーンの頭の球を選択します。この状態で「Eキー」を押してボーンを押し出し、頭にもボーンを入れます。

f:id:nn_hokuson:20171003195706g:plain

同様にして、最初に入れたボーンの頭から左腕、右腕のボーンを入れます。

f:id:nn_hokuson:20171003195749j:plain

左腕と右腕は別々にボーンを設定しても良いですが、編集状態で左のパネルから、オプション→X軸ミラーを選択しておき、ボーンを押し出す際に「Shift+E」を押すことでX軸に対称なボーンを自動的に設定することもできます。

f:id:nn_hokuson:20171003195957j:plain:w550

足はX軸ミラーを使って作成してみました(個別に入れても全然問題ありません)

f:id:nn_hokuson:20171003200021g:plain:w400

全体的には次のような感じになりました。

f:id:nn_hokuson:20171003200147j:plain:w250

人型のボーンを使いたい場合はRigfyという便利なツールも用意されています。Rigfyを使ったボーンの入れ方についてはこちらの記事で紹介していますので、合わせて参考にしてみてください。

nn-hokuson.hatenablog.com

ボーンとメッシュを関連付ける

オブジェクトモードでメッシュ->ボーンの順番に選択し(順番が大切です!)、「Ctlr+P」を押してください。メニューから「自動のウエイトで」を選択するとメッシュがボーンの子要素になり自動的に関連付けられます。

f:id:nn_hokuson:20171003200334j:plain

「Ctlr+P」を押したときに「ボーンヒートウエイト」というエラーが画面右上に表示されたときの対策方法はこちらをご覧ください。

nn-hokuson.hatenablog.com

ここで一度ボーンを動かしてみましょう。ボーンを動かすには、ボーンを選択した状態でポーズモード(またはCtrl+Tab)にして、動かしたいボーンを選択します。選択されたボーンは水色になります。

f:id:nn_hokuson:20171003203544j:plain

この状態で「rキー」を押してボーンを回転してみてください。腕のメッシュが合わせて移動します。

f:id:nn_hokuson:20171003203605g:plain

ボーンを色々動かしてみて、すべてのボーンとメッシュがうまく対応付けられていればリギングは終了です。ただしこれは、かなりのハッピーケースで、普通は変な挙動になるボーンが出てきます。今回だとメガネのメッシュが、頭のボーンとうまく対応付けられていないようです。

f:id:nn_hokuson:20171003203629g:plain:w220

ボーンのウエイトを調節する

メガネが取り残される理由は「メガネのメッシュとボーンの関連付け」に失敗しているからです。これを視覚化できるウエイトペイントと呼ばれる機能を使ってみましょう。

まずはボーンを選択してポーズモードにします。続いてメッシュを選択してウエイトペイントモード(Ctrl+Tab)にして下さい。

このように、ボーンとメッシュはそれぞれ異なる編集モードを持てます。Blenderを使っていてコレに全然気が付かなかった・・・・各モードを設定すると次のような画面になります。選択されたボーンに関連付けられているメッシュほど赤く、無関係なメッシュほど青く表示されます。

下の状態では、背骨のボーンに胴体が関連付けられているのが分かりますね。

f:id:nn_hokuson:20171003203905j:plain:w500

右クリックでボーンを選択すると、それぞれのボーンに関連付けられているメッシュを見ることができます。

f:id:nn_hokuson:20171003204703g:plain

頭のボーンを選択すると眼鏡だけが青くなっています。ウエイトペイントモードではペイントソフトのようにメッシュに色を塗ることができます。ここではメガネを赤く塗り直しましょう。

画面左のパネルでツールを選択し、ウエイトが1.0(赤色)になっていることを確認してからメガネを塗りましょう。

f:id:nn_hokuson:20171003204113j:plain

塗り残しがあるとボーンを動かしたときに、塗り残したメッシュのみ移動しない気持ち悪い感じになります。今回の場合は眼鏡のつるを塗り忘れているようです。

f:id:nn_hokuson:20171003204124g:plain

マスクを使ってウエイトペイントする

メッシュの裏側など、非常にペイントしにくい部分をペイントする場合にはマスク機能を使います(が・・・ちょっと特殊なので、頑張って塗れそうなところはペイントしちゃってください笑)。マスクを使えば、不要なメッシュを非表示にしてペイントすることができます。

まずはマスクモードに入るため、マスクボタンを押してください。続けてマスクしたい(非表示にしたい)メッシュを右クリックで選択します。選択したメッシュに繋がる一連のメッシュを選択するには「Lキー」を押してください。ここではメガネのレンズ部分を選択しました。

f:id:nn_hokuson:20171003204403j:plain

選択した状態で状態で「Hキー」を押すとマスクされ、選択したメッシュが非表示になります。

f:id:nn_hokuson:20171003204439j:plain:w400

これで眼鏡のつるが塗りやすくなったので、これを塗っていきましょう。ただ、マスクモードでは普通にペイントすることはできません。塗りたいメッシュを右クリックで選択してからペイントします。

f:id:nn_hokuson:20171003204636j:plain:w400

マスクしたメッシュを再度表示するには「Alt+H」を押してください。左側のつるも修正してからボーンを動かして、破綻なくどうさすることを確認しておきましょう。

これでもうまく動かないときは・・・

今回は眼鏡のメッシュを頭のボーンに関連付けるだけでうまく動作しました。これでもうまく動かない場合は眼鏡が別のボーンに関連付けられている可能性があります。この場合は、そのボーンを選択した状態でメガネを青色に塗りつぶすことでうまく動作するようになります。

[asin:B091KQFSRC:detail]