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

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

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

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

じゃっく

これもまた勉強じゃ

実際に組み込んでみましたが少し面倒なだけで、複雑なシーンはそれほど多くなかったように思えました

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

仕様

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

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

はじめに top ボーンは付けるようにします

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

じゃっく

もうなんでやねん!

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

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

ボーンの名前は必ず英語で書くようにします

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

じゃっく

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

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

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

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

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

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

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

じゃっく

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

必要なボーンは標準ボーンに追加や変更をしていく考えで行きます

準備

新しいレイヤーを用意

それでは準備に入ります

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

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

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

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

手順

手順ですが、こんな感じになっています

体の中心から始めて、標準的なボーン構成を守りながら変更と追加をする流れになっています

胴中心のボーンを作る

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

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

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

じゃっく

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

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 ボーンの場合は末尾に _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 の仕様に合わせて、こぶしからボーンを作成

親指0は標準ボーンには付いていないのですが、必要だと思ったので予め付けています

指のボーンの名前については、少し迷いました

じゃっく

人差し指を 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

足周りですが、足ボーンの根元から尻ボーンを伸ばします

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

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

じゃっく

初めて見たときは、何のためかよく分かっていなかったです

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

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
鏡面コピーをする

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

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

じゃっく

レイアウトの「階層鏡面」でもできます

完成

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

最後に 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 本になりました

まとめ

それでは今回のまとめです

MMD 用のボーンは構成さえ合っていれば作れる
  • ボーンの名前は英語で書く
  • top ボーンは付けるようにする
  • MMD の標準的なボーンの構成は確認しておく
  • バンク設定はスケルゴン回転か Skelegon Editor でやる
  • 離れた親子付けと鏡面コピーはモデラーかレイアウトでやる

今回は自作モデルに MMD と同じ構成のボーンを組んでみました

初めてボーンを組み始めたときは

  • 離れたボーンの親子付けってどうやるの
  • top ボーン入れるのちょっと面倒くさいな
  • 髪とか一本一本に入れないといけないのかな

なんて思っていましたが、解決さえしてしまえば何も問題ないことが分かりました

じゃっく

難しく考える必要はなかった

今後もボーンを扱う場面があると思うので、少しずつ慣れていきたいと思います

それでは、お疲れさまでした

おまけ

top ボーンの必要性について

top ボーンの必要性についてもう少しだけ

こちらは Blender に読み込んだもので左が top_bone 有り、右が top_bone 無しの画像です

見比べてみると top_bone 無しの方は、なぜか長くなっているボーンがあったり、短くなってしまっている部分があります

じゃっく

最初見たとき「!?」ってなりましたわ

原因が分からず何度も入出力を繰り返したり、当時たまたま持っていた MAYA を通したりして確認しましたが、そもそも LightWave と Blender のボーンシステムが違うからこうなるのでは、と勝手に解釈しています

MMD モデルのボーンには決まって top ボーンが付いているので、今後は付けるようにしました

使用したソフト

3DCG
  • Blender
  • LightWave3D
画像
  • CLIP STUDIO PAINT PRO
動画
  • Bandicam
  • ScreenToGif