01:記事の概要
本記事では、Blenderのバージョン2.8以降を使ってMMDモデル用のボーンを製作する方法を解説していきます。
Blender内で作ったものをMMDモデルとしてエクスポートするためにアドオンである『blender_mmd_tools』を使用します。
(https://github.com/powroupi/blender_mmd_tools/tree/dev_test)
既に『blender_mmd_tools』がBlender内で使用可能であるのを前提として解説していきます。
なお、『blender_mmd_tools』の使い方の解説書はBOOTHで配布しています。
また、リグ(ボーン付き)のMMDモデル用素体もBOOTHで配布しています。本解説だけではピンと来ない場合は参考にするのも良いでしょう。
02:標準ボーンと準標準ボーン
MMDモデル用のボーン(骨組み)には、『標準ボーン』と『準標準ボーン』の2種類があります。
標準ボーンとは、ざっくり言うと手足や指、胴体や頭といった基礎となるボーンを指します。基本的に、ボーンを動かした場合にどれだけメッシュモデルを連動させて動かすかの設定であるウェイトは標準ボーンに対して割り当てます。
準標準ボーンとは、標準ボーンを動かしやすくするためなどに使われる補助ボーンです。例えば、グルーブという準標準ボーンを入れてそのボーン一つを上下に動かすと下半身のボーンを複数個動かさないでしゃがんだ姿勢にできるなどが出来ます。
数多くあるボーンが、標準ボーンと準標準ボーンのどちらに分類されるかについて厳密な定義があるわけではありません。人によって捉え方が違う場合があり、本解説記事での取り扱いはあくまで書き手の中での分類である旨を予めお断りしておきます。
03:標準ボーンの種類
標準ボーンには以下のものがあります。ボーン名の数字部分は全角の場合もあれば半角の場合もあり、しかもモデル制作者の間でバラつきがあったりします。もし、MMD用のモーションデータをMMD上でインポートして上手く動かない場合は確認してみるとよいでしょう。
もしBlenderを使い自分で一からボーンを作る場合に表記ゆれが心配な場合は、下記の一覧の文字列をコピペしても大丈夫です。
【標準ボーン一覧】
センター
下半身
上半身
上半身2(※準標準ボーン扱いがほとんどですが解説の簡略化のためこちらに入れます)
首
頭
左目
右目
左つま先
左足首
左ひざ
左足
右つま先
右足首
右ひざ
右足
左肩
左腕
左ひじ
左手首
右肩
右腕
右ひじ
右手首
左親指0
左親指1
左親指2
左人指1
左人指2
左人指3
左中指1
左中指2
左中指3
左薬指1
左薬指2
左薬指3
左小指1
左小指2
左小指3
右親指1
右親指2
右人指1
右人指2
右人指3
右中指1
右中指2
右中指3
右薬指1
右薬指2
右薬指3
右小指1
右小指2
右小指3
04:標準ボーンの位置
上記に記載した標準ボーンは、下記の画像のような位置に配置します。
図だけではボーンの親子関係(それぞれのボーンがどこのボーンから生えているか)が分からないので、それについては下記の表を参照してください。また、親子関係にあるボーン同士が接続されていて片方のボーンを動かすともう一方のボーンの接続部が動く場合と、そうでない場合があります。接続されているか否かについても下記の表に記載してあります。
05:準標準ボーンの基本
続いては準標準ボーンについての解説です。
この解説では、準標準ボーンを用途によって以下のように分類しています。それぞれの分類項目についての解説は一つずつ後述していきます。
・全体的な姿勢制御用ボーン
・指関連ボーン
・回転コピーボーン
・捩りボーンボーン
・インバース・キネマティクス(IK)
・ウェイトキャンセルボーン
・ダミーボーン
06:全体的な姿勢制御用ボーン
MMDモデルの全体的な姿勢を制御するのに関連したボーンには、例えば以下のものがあります。
・全ての親
・センター
・グルーブ
・腰
◎全ての親
全てのボーンを連動させて移動・回転させられるボーンです。
◎センター
下半身のボーンの水平方向の位置を制御するボーンです。親は『全ての親』ボーンに設定します。
◎グルーブ
機能的には水平方向だけでなく上下方向(屈伸運動)も制御できますが、上下方向は別のボーンで制御したい場合に使います。『センター』ボーンを親に設定します。
◎腰
回転させることにより、お辞儀するポーズを実現するボーンです。上半身だけをお辞儀させるだけなら『上半身』ボーンを回転させるだけで実現できますが、腰ボーンと後述のインバース・キネマティクス(IK)という機能を使うとお辞儀した際に膝を若干曲げてより自然なポーズにできます。
『腰』ボーンは『グルーブ』ボーンを親に設定します。
また『腰』ボーンを追加したら、標準ボーンの『上半身』と『下半身』の親を『腰』に変更しましょう。
07:指関連ボーン
指関連の準標準ボーンには例えば『左親指0』『右親指0』があります。親指の根本となるボーンです。『左親指0』『右親指0』を追加したら、標準ボーンである『左親指1』『右親指1』の親をそれらのボーンに変更します。
08:回転コピーボーン
回転コピーという機能の大元となるボーンです。例えば『両目』というボーンがあります。
例えば、標準ボーンである『右目』と『左目』のそれぞれに対して『両目』を大元にした回転コピーを設定すると、『両目』ボーンを一つ動かしただけで『右目』と『左目』を同時に回転させることができます。
回転コピーの値は-1~1まで設定でき、値が1でコピー元の角度に対して100%の割合で自動回転してくれます。そして設定する値が小さくなるにつれコピーされる角度が減っていき0でコピーされなくなります。0以下の負の値にするとコピー元とは反対の方向にコピー角度が設定され値が-1になるとコピー元とは左右が逆転した回転が行われます。
09:捩りボーン
捩りボーンには、『腕捩』『手捩』があり、腕を捩じる方向に回転させたときに生じやすいメッシュの破綻を防止するボーンです。手の平を上に向けるポーズにする場合、上腕と前腕をそれぞれ単一のボーンで一気に捩じるとメッシュが回転に巻き込まれたような形状になります。それでは都合が悪いので、捩じるためのボーンを複数個設定して少しずつ形状を変化させていきます。
捩りボーンを追加する場合、上腕側は『右腕捩』『左腕捩』、前腕側は『右手捩』『左手捩』という名前にします。
『腕捩』と『手捩』はあくまで腕を捩じるためのボーンの基点となるボーンです。少しずつ腕を捩じるためには捩りボーンに対して子要素を追加する必要があります。ここでは子要素は『左(右)腕捩1』と『左(右)手捩1』だけまでしか追加していませんが、もっと細かく捩れを解消したい場合は『左(右)腕捩2』『左(右)腕捩3』という具合に孫要素、ひ孫要素を追加しても構いません。
捩りボーンの設定については以下の通りです。
まず捩りボーンは、上腕部の『左(右)腕捩』ならば親を『左(右)腕』、前腕部の『左(右)手捩』ならば親を『左(右)ひじ』とします。それぞれ親ボーンに対する接続は切っておきます。
『左(右)腕捩』と『左(右)手捩』は、腕を捩じる方向以外に回転すると都合が悪いので以下の設定を用いて軸固定を行います。
また『左(右)腕捩』と『左(右)手捩』の子要素にあたる『左(右)腕捩1』と『左(右)手捩1』の設定は以下のように親ボーンに対して回転コピーを入れます(回転コピーの値をマックスにせず半分くらいに留めておくのが良いでしょう)
10:インバース・キネマティクス(IK)
インバース・キネマティクス(以下『IK』と表記)は、複数の連なるボーンを制御用ボーン一つ動かしただけで連動させて動かす機能です。例えて言うなら、複数の骨が連なっている蛇のおもちゃに対して頭の部分を動かすだけで胴体部分もクネクネ動かせるような機能です。
MMDモデルにおいてIKは、主に足の動きをコントロールするのに使われます。IKを入れた足を動かすためのボーンは左右で『左足IK』『右足IK』です(IKは全角アルファベットの場合が多いです)
スネと腿のボーンをIKで動かすには以下のように設定します。
また足の甲を動かすためのIKは以下のように設定します。
11:ウェイトキャンセルボーン
ウェイトキャンセルボーンは、メインとなるボーン(標準ボーン)にウェイト設定し実際に動かした際にメッシュオブジェクトが不自然に歪むのを是正するためのボーンです。
ウェイトキャンセルボーンには例えば、『左腰キャンセル』『右腰キャンセル』などがあります。
例えば、腰キャンセルボーンを入れない状態で脚を動かしたとします。この場合、『右足』や『左足』ボーンのウェイトにつられて不自然に臀部が潰れてしまう場合があります。これでは見た目が悪くなります。
そこで『左腰キャンセル』『右腰キャンセル』を追加し、それぞれにウェイトを入れて『右足』や『左足』ボーンを動かしたときの変形量を肩代わりしてもらうことができます。
また、キャンセルボーンは肩回りにも使われることがあります。
肩周りのキャンセルボーンを入れた際の格ボーンの親子関係は以下の通りです。
12:ダミーボーン
ダミーボーンとは、MMD上でモデルに小物や武器を持たせる(引っ掛けておく)ためなど使われるボーンです。主に手のひらの位置に設定される『手首』ボーンから伸ばす『左ダミー』『右ダミー』があります。
13:ボーンのローカル化
ボーンのローカル化とは、ボーンの座標系をボーンの傾きに合わせることをいいます。
……と言葉で説明しても分かりにくいのでまず以下の図をご覧ください。
ローカル化していない方のボーンの回転軸が腕ボーンからズレているのに対して、ローカル化している方は腕のボーンに合わせて傾いてくれています。
MMD上でポーズ編集する場合、軸がボーンに沿って傾いていた方が作業しやすい場合があります。MMDモデルは基本的に初期状態では腕が斜めに下がった状態です。なので、特に腕ボーンと指ボーンに関してはボーンをローカル化した方が良いでしょう。
ボーンのローカル化は以下のように行います。