今回は自作モデルの中にボーンを組み込んでいきます

LightWave にはリグプリセットが用意されていますが、こちらは使わないです

ゼロから手動で組み込んでいきます

作っているのが MMD 用のモデルなので、ボーン構成も MMD の仕様に合わせる必要があります

じゃっく

これもまた勉強じゃ

当たり前ですが、 LightWave と MMD のボーンの仕様は結構違います

親子付けとかボーンの構成とか・・・

なので、MMD と同じような仕様のボーン構成が作れるか不安でしたが、できることが分かりました

ちょっと面倒なだけです

ボーンは一度作ってしまえば基本的には使いまわせるので、作り方を残していきます

仕様

ボーンを組む前に、どんな仕様のボーン構成にするか考えておきます

top ボーンは付けるようにする

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

じゃっく

もうなんでやねんっ!

ボーンの数が増えますし、動かさないのでウェイト値を消す作業があって少し大変ですが、これは慣れていくことにしました

ボーンの名前は必ず英語で書く

本当なら流し込むモーションの互換性の関係から日本語の方が良いです

これは配布されているモーションの大半が日本語だからです

ただ、LightWave では日本語を使うとバグる可能性があるので、モデルを作っている段階では英語を使います

じゃっく

海外製のソフトなので、基本的に日本語は使わない方が良いですよ

日本語への変換は PMX Editor の機能を使えば大丈夫

一括で置き換えられます

MMD の標準的なボーン構成を確認する

※MMDに入っていたモデルから作った標準ボーン

こちらは MikuMikuDance に元々入っていたモデルから作ったボーンです

入っているモデルのファイル形式が PMD という古い規格のなので、新しい方の PMX と少し違いますが、こちらのボーン構成と同じような構成にします

ある程度同じ構成でないと、モーションを流し込んだ時に思いもしないような動きになるので注意が必要です

じゃっく

ボーンの構成に大きな修正が入ると面倒なので

後で必要になるボーンは PMX Editor のプラグインなどで追加していきます

準備

新しいレイヤーを用意

それでは準備に入ります

準備といっても新しいレイヤーを追加するだけでOK

空いているレイヤーをダブルクリックして、好きな名前を設定します

じゃっく

ここでは簡単に bone としています

あとは背景レイヤーにローポリの体と頭を表示

ローポリで表示しているのは、こちらの方がゴチャついていなくて見やすいからです

手順

ボーンを入れていく手順ですが、こんな感じになっています

最初は体の中心から作っていきます

左側の方から作って、 Skelegon Editor を使って親子付けとバンク角度を調整

最後に鏡面コピーをして完成、といった流れになっています

胴中心のボーンを作る

STEP1
センターボーンを作る
センター
  • center
    • center_top

センターボーンは名前の通り中心に置くボーンなので、ある程度の高い位置から原点に向かって真っすぐ真下に伸ばします

ショートカットキーの i で「ポイント情報パネル」が開くので、ここでポイントの細かい位置調整ができます

じゃっく

高さはキリの良い数値で設定しました

top ボーンも忘れずに作成

以降のボーンにも top ボーンを付けるようにしていきます

長さはそれほど必要ないので、短めでOK

STEP2
下半身と上半身のボーンを作る
上半身と下半身
  • ①upper_body
    • upper_body2
      • neck
        • head
          • head_top
  • ②lower_body
    • lower_body_top

横画面から上半身と下半身のボーンを作っていきますが、ボーンは曲げたい方向に少しだけ曲げておきます

これは LightWave に限らずどのソフトでも共通です

じゃっく

あらぬ方向に曲がるのを防ぐためだそうな

上半身と下半身のポイントは結合します

上半身の次が上半身2になっていますが、よく見かけるのでこの構成にしています

STEP3
両目コントローラー用のボーンを作る
両目
  • eyes
    • eyes_top

両目をコントロールするためのボーンを用意

頭の上に設置します

じゃっく

選択しやすいようにボーンは大き目にしています

腕周りのボーンを作る

STEP1
肩~手首のボーンを作る
  • shoulder_L
    • arm_L
      • elbow_L
        • wrist_L
          • wrist_L_top

左側から作るので、名前の末尾に _L を付けておきます

じゃっく

_top という文字列は常に最後に来るように

肩は正面から見て少し下がり気味にボーンを配置

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

じゃっく

ちょっと違ってたっぽい

ひじは少しだけ曲げておきます

手首の関節位置は、手の平の中に入れるように配置

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

じゃっく

手首を曲げたときに手の形が縦長になって不自然になりました

手首のボーンは水平じゃなくて、ほんのちょっとだけ小指側に曲げておきます

STEP2
手のボーンを作る
  • ①thumb0_L
    • thumb1_L
      • thumb2_L
        • thumb_L_top
  • ②fore1_L
    • fore2_L
      • fore3_L
        • fore_L_top
  • ③middle1_L
    • middle2_L
      • middle3_L
        • middle_L_top
  • ④third1_L
    • third2_L
      • third3_L
        • third_L_top
  • ⑤little1_L
    • little2_L
      • little3_L
        • little_L_top

指も 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
      • leg_IK_L
        • leg_IK_L_top

足も腕と同じように左から作るので、名前の末尾に _L と付けておきます

正面から見た足の根元は、だいたい股下から45°くらいの位置に配置

最適な位置がよく分からなかったので、簡単にウェイトを付けて動かしてみました

結果としてこの位置が最もしっくり来たので、この位置にしています

肉の中心に骨があると良いみたいです

じゃっく

軽くテストしてみることも大事

尻ボーンは足ボーンの根元から伸ばします

この尻ボーンは補助ボーンと呼ばれるもので、変形を補助するものです

これが無いと、どうあがいても尻が潰れます

じゃっく

初めて見たときは、なぜ補助ボーンが必要なのかよく分かっていませんでした

尻ボーンも標準には付いていないですが、あった方がキレイに変形することが分かったので入れるようにしました

ひざも腕と同じように軽く曲げておきます

IK 用のボーンも忘れずに設置して、ポイントは結合

顔周りのボーンを作る

顔周り
  • ①eyeL
    • eye_L_top
  • ②tooth_upper
    • tooth_upper_top
  • ③tooth_lower
    • tooth_lower_top
  • ④tongue1
    • tongue2
      • tongue3
        • tongue_top

顔周りのボーンもどんどん作っていきます

目のボーンは斜めに配置します

位置や角度が重要なので、別レイヤーにハイポリ化した頭を仮で用意

目とボーンを一緒に動かして、顔からはみ出ないかどうかを確認しながら進めます

歯と舌はパパっと簡単に作成

髪の毛のボーンを作る

STEP1
前髪のボーンを作る
前髪
  • ①hair_F1
    • hair_F2
      • hair_F_top
  • ②hair_F_A1_L
    • hair_F_A2_L
      • hair_F_A_L_top
  • ③hair_F_B1_L
    • hair_F_B2_L
      • hair_F_B_L_top

髪の毛は大きく動かすものじゃないので、こちらもひと房3本のボーンで簡単に作ります

名前に関してはなるべく短い方が良いかなと思って、だいぶ簡略化しています

じゃっく

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

STEP2
横髪のボーンを作る
横髪
  • ①hair_S_A1_L
    • hair_S_A2_L
      • hair_S_A_L_top
  • ②hair_S_B1_L
    • hair_S_B2_L
      • hair_S_B1_L_top

横髪も同じような感じで組み込みます

じゃっく

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

STEP3
後髪のボーンを作る
後髪
  • ①hair_B_A1_L
    • hair_B_A2_L
      • hair_B_A_L_top
  • ②hair_B_B1_L
    • hair_B_B2_L
      • hair_B_B_L_top
  • ③hair_B_C1_L
    • hair_B_C2_L
      • hair_B_C_L_top
  • ④hair_B_D1_L
    • hair_B_D2_L
      • hair_B_D_L_top

後髪も三つのオブジェクトで構成されていますが、ひと房3本のボーンで組みます

じゃっく

一緒に動かすのでシンプルに

胸周りのボーンを作る

胸周り
  • bust_base_L
    • bust_L
      • bust_L_top

胸は三本で作ります

以前は bust_base を入れていなかったのですが、体の表面を滑るように動かすのが自然かなと感じたので、三本構成に変更しました

どうせ動かすならこだわりたいところ

反対側のボーンを作る

STEP1
バンク角度を設定する

ここまでで左半分ができました

あとは鏡面コピーをして完成ですが、その前にバンクと親子付けを設定します

「スケルゴン回転」でもバンクの設定ができますが、ここでは Skelegon Editor を使って設定していきます

バンクタブからバンク向きを変えたいボーンを選択して、「種類」から向きを指定

STEP2
離れているボーンの親子付けをする

MMD のボーンは表向きでは離れていますが、内部的には親子付けされている仕様になっているので、それに合わせていきます

以下は簡易的な親子付けの図です

親子付け簡易図
  • センター
    • 上半身
      • 上半身2
            • 両目
            • ひじ
              • 手首
    • 下半身
        • すね
          • 足首
            • つま先

親子付けしたいボーンを選択して、鎖みたいなアイコンのチェックを解除

右クリックで「親スケルゴン」を設定すれば、浮いた状態の親子付けができます

STEP3
鏡面コピーをする

あとは操作タブの「鏡面」から、必要項目を入力して実行

これで鏡面コピーができます

じゃっく

レイアウトの「階層鏡面」でも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
            • eyes
              • eyes_top
            • eye_L
              • eye_L_top
            • hair_F_1
              • hair_F_2
                • hair_F_top
            • hair_F_A1_L
              • hair_F_A2_L
                • hair_F_A_L_top
            • hair_F_B1_L
              • hair_F_B2_L
                • hair_F_B_L_top
            • hair_S_A1_L
              • hair_S_A2_L
                • hair_S_A_L_top
            • hair_S_B1_L
              • hair_S_B2_L
                • hair_S_B_L_top
            • hair_B_A1_L
              • hair_B_A2_L
                • hair_B_A_L_top
            • hair_B_B1_L
              • hair_B_B2_L
                • hair_B_B_L_top
            • hair_B_C1_L
              • hair_B_C2_L
                • hair_B_C_L_top
            • hair_B_D1_L
              • hair_B_D2_L
                • hair_B_D_L_top
            • eye_R
              • eye_R_top
            • hair_F_A1_R
              • hair_F_A2_R
                • hair_F_A_R_top
            • hair_F_B1_R
              • hair_F_B2_R
                • hair_F_B_R_top
            • hair_S_A1_R
              • hair_S_A2_R
                • hair_S_A_R_top
            • hair_S_B1_R
              • hair_S_B2_R
                • hair_S_B_R_top
            • hair_B_A1_R
              • hair_B_A2_R
                • hair_B_A_R_top
            • hair_B_B1_R
              • hair_B_B2_R
                • hair_B_B_R_top
            • hair_B_C1_R
              • hair_B_C2_R
                • hair_B_C_R_top
            • hair_B_D1_R
              • hair_B_D2_R
                • hair_B_D_R_top
        • bust_base_L
          • bust_L
            • bust_L_top
        • shoulder_L
          • arm_L
            • elbow_L
              • wrist_L
                • wrist_L_top
                • thumb0_L
                  • thumb1_L
                    • thumb2_L
                      • thumb_L_top
                • fore1_L
                  • fore2_L
                    • fore3_L
                      • fore_L_top
                • middle1_L
                  • middle2_L
                    • middle3_L
                      • middle_L_top
                • third1_L
                  • third2_L
                    • third3_L
                      • third_L_top
                • little1_L
                  • little2_L
                    • little3_L
                      • little_L_top
        • bust_base_R
          • bust_R
            • bust_R_top
        • shoulder_R
          • arm_R
            • elbow_R
              • wrist_R
                • wrist_R_top
                • thumb0_R
                  • thumb1_R
                    • thumb2_R
                      • thumb_R_top
                • fore1_R
                  • fore2_R
                    • fore3_R
                      • fore_R_top
                • middle1_R
                  • middle2_R
                    • middle3_R
                      • middle_R_top
                • third1_R
                  • third2_R
                    • third3_R
                      • third_R_top
                • little1_R
                  • little2_R
                    • little3_R
                      • little_R_top
    • 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
          • leg_IK_L
            • leg_IK_L_top
      • hip_R
        • hip_R_top
      • leg_R
        • knee_R
          • ankle_R
            • toe_R
              • toe_R_top
            • toe_IK_R
              • toe_IK_R_top
          • leg_IK_R
            • leg_IK_R_top

ボーンの数は全部で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