今回は自作モデルの中にボーンを組み込んでいきます
LightWave にはリグプリセットが用意されていますが、こちらは使わないです
ゼロから手動で組み込んでいきます
作っているのが MMD 用のモデルなので、ボーン構成も MMD の仕様に合わせる必要があります

じゃっく
これもまた勉強じゃ
当たり前ですが、 LightWave と MMD のボーンの仕様は結構違います
親子付けとかボーンの構成とか・・・
なので、MMD と同じような仕様のボーン構成が作れるか不安でしたが、できることが分かりました
ちょっと面倒なだけです
ボーンは一度作ってしまえば基本的には使いまわせるので、作り方を残していきます
仕様
ボーンを組む前に、どんな仕様のボーン構成にするか考えておきます
top ボーンは付けるようにする

過去に top ボーン無しで組んだことがありますが、PMX Editor に持って行ったときにボーンの向きや長さが無茶苦茶になりました※おまけに追記あり

じゃっく
もうなんでやねんっ!
ボーンの数が増えますし、動かさないのでウェイト値を消す作業があって少し大変ですが、これは慣れていくことにしました
ボーンの名前は必ず英語で書く

本当なら流し込むモーションの互換性の関係から日本語の方が良いです
これは配布されているモーションの大半が日本語だからです
ただ、LightWave では日本語を使うとバグる可能性があるので、モデルを作っている段階では英語を使います

じゃっく
海外製のソフトなので、基本的に日本語は使わない方が良いですよ
日本語への変換は PMX Editor の機能を使えば大丈夫
一括で置き換えられます
MMD の標準的なボーン構成を確認する

こちらは MikuMikuDance に元々入っていたモデルから作ったボーンです
入っているモデルのファイル形式が PMD という古い規格のなので、新しい方の PMX と少し違いますが、こちらのボーン構成と同じような構成にします
ある程度同じ構成でないと、モーションを流し込んだ時に思いもしないような動きになるので注意が必要です

じゃっく
ボーンの構成に大きな修正が入ると面倒なので
後で必要になるボーンは PMX Editor のプラグインなどで追加していきます
準備
新しいレイヤーを用意

それでは準備に入ります
準備といっても新しいレイヤーを追加するだけでOK
空いているレイヤーをダブルクリックして、好きな名前を設定します

じゃっく
ここでは簡単に bone としています
あとは背景レイヤーにローポリの体と頭を表示
ローポリで表示しているのは、こちらの方がゴチャついていなくて見やすいからです
手順
ボーンを入れていく手順ですが、こんな感じになっています
最初は体の中心から作っていきます
左側の方から作って、 Skelegon Editor を使って親子付けとバンク角度を調整
最後に鏡面コピーをして完成、といった流れになっています
胴中心のボーンを作る

- center
- center_top
センターボーンは名前の通り中心に置くボーンなので、ある程度の高い位置から原点に向かって真っすぐ真下に伸ばします
ショートカットキーの i で「ポイント情報パネル」が開くので、ここでポイントの細かい位置調整ができます

じゃっく
高さはキリの良い数値で設定しました
top ボーンも忘れずに作成
以降のボーンにも top ボーンを付けるようにしていきます
長さはそれほど必要ないので、短めでOK

- ①upper_body
- upper_body2
- neck
- head
- head_top
- head
- neck
- upper_body2
- ②lower_body
- lower_body_top
横画面から上半身と下半身のボーンを作っていきますが、ボーンは曲げたい方向に少しだけ曲げておきます
これは LightWave に限らずどのソフトでも共通です

じゃっく
あらぬ方向に曲がるのを防ぐためだそうな
上半身と下半身のポイントは結合します
上半身の次が上半身2になっていますが、よく見かけるのでこの構成にしています

- eyes
- eyes_top
両目をコントロールするためのボーンを用意
頭の上に設置します

じゃっく
選択しやすいようにボーンは大き目にしています
腕周りのボーンを作る

- shoulder_L
- arm_L
- elbow_L
- wrist_L
- wrist_L_top
- wrist_L
- elbow_L
- arm_L
左側から作るので、名前の末尾に _L を付けておきます

じゃっく
_top という文字列は常に最後に来るように

肩は正面から見て少し下がり気味にボーンを配置
以前は肩のボーンを鎖骨の角度に沿わせるように配置していましたが、後で行った変形が不自然で違和感がありました

じゃっく
ちょっと違ってたっぽい
ひじは少しだけ曲げておきます

手首の関節位置は、手の平の中に入れるように配置
こちらも以前はオブジェクトの手首が曲がる位置にボーンの関節が来るようにしていましたが、動かした時に誤りだったことに気が付きました

じゃっく
手首を曲げたときに手の形が縦長になって不自然になりました
手首のボーンは水平じゃなくて、ほんのちょっとだけ小指側に曲げておきます

- ①thumb0_L
- thumb1_L
- thumb2_L
- thumb_L_top
- thumb2_L
- thumb1_L
- ②fore1_L
- fore2_L
- fore3_L
- fore_L_top
- fore3_L
- fore2_L
- ③middle1_L
- middle2_L
- middle3_L
- middle_L_top
- middle3_L
- middle2_L
- ④third1_L
- third2_L
- third3_L
- third_L_top
- third3_L
- third2_L
- ⑤little1_L
- little2_L
- little3_L
- little_L_top
- little3_L
- little2_L
指も MMD の仕様に合わせて、こぶしからボーンを作成
thumb0 は標準ボーンには付いていないのですが、必要だと思ったので予め付けています
指のボーンの名前については、少し迷いました

じゃっく
人差し指を index と呼んだり、薬指を ring と呼んだり様々
いろんな呼び名がありましたが、今回は上記リストの名前で行きます
足周りのボーンを作る

- ①hip
- hip_top
- ②leg_L
- knee_L
- ankle_L
- toe_L
- toe_L_top
- toe_IK_L
- toe_IK_L_top
- toe_L
- leg_IK_L
- leg_IK_L_top
- ankle_L
- knee_L
足も腕と同じように左から作るので、名前の末尾に _L と付けておきます

正面から見た足の根元は、だいたい股下から45°くらいの位置に配置
最適な位置がよく分からなかったので、簡単にウェイトを付けて動かしてみました
結果としてこの位置が最もしっくり来たので、この位置にしています
肉の中心に骨があると良いみたいです

じゃっく
軽くテストしてみることも大事
尻ボーンは足ボーンの根元から伸ばします
この尻ボーンは補助ボーンと呼ばれるもので、変形を補助するものです
これが無いと、どうあがいても尻が潰れます

じゃっく
初めて見たときは、なぜ補助ボーンが必要なのかよく分かっていませんでした
尻ボーンも標準には付いていないですが、あった方がキレイに変形することが分かったので入れるようにしました

ひざも腕と同じように軽く曲げておきます
IK 用のボーンも忘れずに設置して、ポイントは結合
顔周りのボーンを作る

- ①eyeL
- eye_L_top
- ②tooth_upper
- tooth_upper_top
- ③tooth_lower
- tooth_lower_top
- ④tongue1
- tongue2
- tongue3
- tongue_top
- tongue3
- tongue2
顔周りのボーンもどんどん作っていきます

目のボーンは斜めに配置します
位置や角度が重要なので、別レイヤーにハイポリ化した頭を仮で用意
目とボーンを一緒に動かして、顔からはみ出ないかどうかを確認しながら進めます
歯と舌はパパっと簡単に作成
髪の毛のボーンを作る

- ①hair_F1
- hair_F2
- hair_F_top
- hair_F2
- ②hair_F_A1_L
- hair_F_A2_L
- hair_F_A_L_top
- hair_F_A2_L
- ③hair_F_B1_L
- hair_F_B2_L
- hair_F_B_L_top
- hair_F_B2_L
髪の毛は大きく動かすものじゃないので、こちらもひと房3本のボーンで簡単に作ります
名前に関してはなるべく短い方が良いかなと思って、だいぶ簡略化しています

じゃっく
F は Front 、S は Side 、B は Back といった感じですね

- ①hair_S_A1_L
- hair_S_A2_L
- hair_S_A_L_top
- hair_S_A2_L
- ②hair_S_B1_L
- hair_S_B2_L
- hair_S_B1_L_top
- hair_S_B2_L
横髪も同じような感じで組み込みます

じゃっく
小さい毛束は一緒に動かすので、ボーンを入れていません

- ①hair_B_A1_L
- hair_B_A2_L
- hair_B_A_L_top
- hair_B_A2_L
- ②hair_B_B1_L
- hair_B_B2_L
- hair_B_B_L_top
- hair_B_B2_L
- ③hair_B_C1_L
- hair_B_C2_L
- hair_B_C_L_top
- hair_B_C2_L
- ④hair_B_D1_L
- hair_B_D2_L
- hair_B_D_L_top
- hair_B_D2_L
後髪も三つのオブジェクトで構成されていますが、ひと房3本のボーンで組みます

じゃっく
一緒に動かすのでシンプルに
胸周りのボーンを作る

- bust_base_L
- bust_L
- bust_L_top
- bust_L
胸は三本で作ります
以前は bust_base を入れていなかったのですが、体の表面を滑るように動かすのが自然かなと感じたので、三本構成に変更しました
どうせ動かすならこだわりたいところ
反対側のボーンを作る

ここまでで左半分ができました
あとは鏡面コピーをして完成ですが、その前にバンクと親子付けを設定します
「スケルゴン回転」でもバンクの設定ができますが、ここでは Skelegon Editor を使って設定していきます
バンクタブからバンク向きを変えたいボーンを選択して、「種類」から向きを指定

MMD のボーンは表向きでは離れていますが、内部的には親子付けされている仕様になっているので、それに合わせていきます
以下は簡易的な親子付けの図です
- センター
- 上半身
- 上半身2
- 首
- 頭
- 歯
- 口
- 髪
- 目
- 両目
- 頭
- 胸
- 肩
- 腕
- ひじ
- 手首
- 指
- 手首
- ひじ
- 腕
- 首
- 上半身2
- 下半身
- 尻
- 足
- すね
- 足首
- つま先
- 足首
- すね
- 上半身
親子付けしたいボーンを選択して、鎖みたいなアイコンのチェックを解除
右クリックで「親スケルゴン」を設定すれば、浮いた状態の親子付けができます

あとは操作タブの「鏡面」から、必要項目を入力して実行
これで鏡面コピーができます

じゃっく
レイアウトの「階層鏡面」でもOK
完成

全体ができたので、足りないボーンが無いか確認します

最後に Skelegon Reader で読み込んで、動きを確認して完成

じゃっく
で~きた~
以下は全体のボーン構成です
- center
- center_top
- upper_body
- upper_body2
- neck
- head
- head_top
- tooth_upper
- tooth_upper_top
- tooth_lower
- tooth_lower_top
- tongue1
- tongue2
- tongue3
- tongue_top
- tongue3
- tongue2
- eyes
- eyes_top
- eye_L
- eye_L_top
- hair_F_1
- hair_F_2
- hair_F_top
- hair_F_2
- hair_F_A1_L
- hair_F_A2_L
- hair_F_A_L_top
- hair_F_A2_L
- hair_F_B1_L
- hair_F_B2_L
- hair_F_B_L_top
- hair_F_B2_L
- hair_S_A1_L
- hair_S_A2_L
- hair_S_A_L_top
- hair_S_A2_L
- hair_S_B1_L
- hair_S_B2_L
- hair_S_B_L_top
- hair_S_B2_L
- hair_B_A1_L
- hair_B_A2_L
- hair_B_A_L_top
- hair_B_A2_L
- hair_B_B1_L
- hair_B_B2_L
- hair_B_B_L_top
- hair_B_B2_L
- hair_B_C1_L
- hair_B_C2_L
- hair_B_C_L_top
- hair_B_C2_L
- hair_B_D1_L
- hair_B_D2_L
- hair_B_D_L_top
- hair_B_D2_L
- eye_R
- eye_R_top
- hair_F_A1_R
- hair_F_A2_R
- hair_F_A_R_top
- hair_F_A2_R
- hair_F_B1_R
- hair_F_B2_R
- hair_F_B_R_top
- hair_F_B2_R
- hair_S_A1_R
- hair_S_A2_R
- hair_S_A_R_top
- hair_S_A2_R
- hair_S_B1_R
- hair_S_B2_R
- hair_S_B_R_top
- hair_S_B2_R
- hair_B_A1_R
- hair_B_A2_R
- hair_B_A_R_top
- hair_B_A2_R
- hair_B_B1_R
- hair_B_B2_R
- hair_B_B_R_top
- hair_B_B2_R
- hair_B_C1_R
- hair_B_C2_R
- hair_B_C_R_top
- hair_B_C2_R
- hair_B_D1_R
- hair_B_D2_R
- hair_B_D_R_top
- hair_B_D2_R
- head
- bust_base_L
- bust_L
- bust_L_top
- bust_L
- shoulder_L
- arm_L
- elbow_L
- wrist_L
- wrist_L_top
- thumb0_L
- thumb1_L
- thumb2_L
- thumb_L_top
- thumb2_L
- thumb1_L
- fore1_L
- fore2_L
- fore3_L
- fore_L_top
- fore3_L
- fore2_L
- middle1_L
- middle2_L
- middle3_L
- middle_L_top
- middle3_L
- middle2_L
- third1_L
- third2_L
- third3_L
- third_L_top
- third3_L
- third2_L
- little1_L
- little2_L
- little3_L
- little_L_top
- little3_L
- little2_L
- wrist_L
- elbow_L
- arm_L
- bust_base_R
- bust_R
- bust_R_top
- bust_R
- shoulder_R
- arm_R
- elbow_R
- wrist_R
- wrist_R_top
- thumb0_R
- thumb1_R
- thumb2_R
- thumb_R_top
- thumb2_R
- thumb1_R
- fore1_R
- fore2_R
- fore3_R
- fore_R_top
- fore3_R
- fore2_R
- middle1_R
- middle2_R
- middle3_R
- middle_R_top
- middle3_R
- middle2_R
- third1_R
- third2_R
- third3_R
- third_R_top
- third3_R
- third2_R
- little1_R
- little2_R
- little3_R
- little_R_top
- little3_R
- little2_R
- wrist_R
- elbow_R
- arm_R
- neck
- upper_body2
- lower_body
- lower_body_top
- hip_L
- hip_L_top
- leg_L
- knee_L
- ankle_L
- toe_L
- toe_L_top
- toe_IK_L
- toe_IK_L_top
- toe_L
- leg_IK_L
- leg_IK_L_top
- ankle_L
- knee_L
- hip_R
- hip_R_top
- leg_R
- knee_R
- ankle_R
- toe_R
- toe_R_top
- toe_IK_R
- toe_IK_R_top
- toe_R
- leg_IK_R
- leg_IK_R_top
- ankle_R
- knee_R
ボーンの数は全部で152本になりました
まとめ
それでは今回のまとめです
- ボーンの名前は英語で書く
- top ボーンは付けるようにする
- 最適な位置が分からない場合はテスト
- 標準的な MMD のボーンは確認しておく
- 片側のボーンができたらバンク設定をする
- 片側のボーンができたら親子付けもしておく
- 片側のボーンの設定ができたら鏡面コピー
今回は自作モデルに MMD と同じ構成のボーンを組んでみました
初めてボーンを組み始めたときは
- 離れたボーンの親子付けってどうやるの
- top ボーン入れるのちょっと面倒くさいな
- 髪とか一本一本に入れないといけないのかな
なんて思っていましたが、何も問題ないことが分かりました

じゃっく
難しく考える必要はなかった
ちょっと面倒なだけでした
慣れていけばそう感じることも少なくなるはず
慣れていきたいと思います
それでは、お疲れさまでした
おまけ
top ボーンの必要性について

top ボーンの必要性についてもう少しだけ
こちらは Blender に読み込んだもので左が top_bone 有り、右が top_bone 無しの画像です
見比べてみると top_bone 無しの方は、なぜか長くなっているボーンがあったり、短くなってしまっている部分があります
妙に不安定

じゃっく
最初見たとき「!?」ってなりましたわ
ぜんぜん原因が分かりませんでした
何度も入出力を繰り返したり、当時たまたま持っていた MAYA を通したりして確認しましたが、そもそも LightWave と Blender のボーンシステムが違うからこうなるのでは、と勝手に解釈しています
MMD モデルのボーンには決まって top ボーンが付いているので、今後は付けるようにしました
使用ツール
- 3DCG
- Blender
- PMX Editor
- LightWave3D
- 動画
- Bandicam
- ScreenToGif
- 画像
- CLIP STUDIO PAINT PRO