BlenderとUnityで作ったものをVR(Meta Quest/Oculus Link)で動かします

ブログの女の子を作る #93 股関節をボーンコンストレイントと補助ボーンで修正する【Blender】

 
前回は関節周りを直すために、下半身のメッシュを修正(リトポロジー)しました。いろいろと参考にさせていただいたおかげで、良い流れにすることができました。
 
今回は、股関節をボーンコンストレイントと補助ボーンで修正します。
ウェイトは手動で塗ることも考えましたが、今回も「自動のウェイト」だけでやってみました。
 
時間はかかりましたが、良い感じになりました!
そして記事も長くなりました。。。



開発環境

・Blender 3.0.0
・CPU:AMD Ryzen 7 3700X
・グラボ:ASUS ROG-STRIX-RTX2060S-O8G-GAMING
 

(1) 現状と補助ボーンの効果を確認する

まずは、いまのボーンとウェイトの状態を確認しておきましょう。
 

作業前のすがた

今の状態です。
 
股関節付近には補助ボーンが5本、太ももには通常ボーンが1本ずつ入っています。
 
股関節を少し曲げてみました。
 
補助ボーンが付近のメッシュを固定化しているので、これくらいの角度なら問題は無さそうです。
 
ですが、更に曲げるとかなり厳しい感じに。。
 
後ろから見ると、お尻が角ばってました。
これは良くありません。
 
太ももの付け根が細くなってるのも問題ですね。
もう少しふっくら感が欲しい。
 

補助ボーンを無くしてみる

次に、補助ボーンを消すと「どんな変化があるか」を確認してみます。
補助ボーンが無いとかなりシンプルな見た目に。
 
ついでに設定変更しておきましょう。
「ビューポートオーバーレイ -> ジオメトリ -> ワイヤーフレーム」にチェックを入れておきました。
これで、オブジェクトモードやポーズモードでもメッシュの辺が見えるので、メッシュの動きが分かりやすくなります。
 
補助ボーンが無い状態で足を曲げてみました。
違和感が。
 
太ももやお尻付近の丸みが増えたのが良いですが、不自然な凹みが増えてしまいました。
 
足を広げると更にひどい。
 
ボーンが少なくても良い感じにウェイトを塗ればこんなことにはならないと思いますが、やはり今回は補助ボーンを使う方向で作業を進めます。
 


(2) ボーンコンストレイントでお尻を丸くする

まずは、股関節を曲げた時にお尻が角ばるのを「ボーンコンストレイント」で直していきます。今回初めてボーンコンストレイントを使いましたが、なかなか便利な仕組みですね。
 
最終的にはUnityで動かしたいので調べたところ、Rotation Constraintコンポーネントを追加すれば同じように動いてくれるらしい。
まずは安心ですね。
 

ボーンの位置を調整する

ボーンの状態を見ていると、太もものボーンが下過ぎる気がしますので、少し上げておきます。
 
この辺りでしょうか。
この位置を決めるのがなかなか難しいんですよね。繰り返し修正して、良い位置を見つけるしかありません。。
 

ボーンに「ボーンコンストレイント」を追加する

太ももボーンから、ボーンを1本増やしました。
 
ポーズモードに変更した後で、先ほどのボーンを選択し、「ボーンコンストレイントを追加 -> トランスフォーム -> 回転コピー」を選択します。
 
「Copy Rotation」がボーンに追加されましたね。
 
次に設定です。
 
今回は、太ももボーン(UpperLeg_L)の動きに合わせて「半分くらい回転する」ように動かしたいので、以下のように設定してみました。
・ターゲット:Amature
・ボーン:UpperLeg_L
・順序:デフォルト
・座標軸:XYZのすべてを選択する
・反転:選択しない
・ミックス:置き換え
・ターゲット:ローカル空間
・オーナー:ローカル空間
・影響:0.500
 
「ボーンコンストレイントを追加したボーン」は、ターゲットに設定したボーンの動きに追随するようになります。その「追随する量」を設定するのが「影響」の値ですね。
 
例えば、「影響」の値を 1.000 にするとUpperLeg_Lと同じ分だけ回転し、0.100 にすると 1/10 だけ回転するようになります。今回は半分だけ回転させたいので 0.500 にしました。
 
なお、以降の説明では「ボーンコンストレイントを追加した補助ボーン」のことを「BC補助ボーン」と省略して書きます。
 

ボーンの動きを確認する

この状態で、太ももボーン(UpperLeg_L)を回転してみます。赤枠がBC補助ボーンの先端ですね。
いまは動作確認なので、まだBC補助ボーンのウェイトは設定してませんよ。
 
45度くらい回転してみました。
BC補助ボーンも少し動きましたね。
 
更に90度まで回転してみます。
BC補助ボーンはちょうど45度回転してますね。
 
ちょうどこの位置が「股関節を曲げた時のお尻の位置」になりますので、あとはウェイト設定すればこの部分を盛り上げることができるはず!
 

「自動のウェイト」を入れる

それではウェイトを入れてみましょう。
・オブジェクトモードに変更する。
・ウェイトを塗りたいオブジェクトをクリックし、Shiftキーを押したままボーンをクリックする。
・メニューで「オブジェクト -> ペアレント -> 自動のウェイトで」を選択する。
でしたね。
 
BC補助ボーンのウェイトが設定されました。
 
太ももボーン(UpperLeg_L)を回転してみます。
この角度ではあまり変化は見られませんが、
 
90度まで曲げてみると、お尻のところが丸くなったままになってます!
 
ウェイトを入れる前がこの画像でしたので、だいぶん違いますね。
 
ボーンコンストレイント、便利です!
 

反対側にもBC補助ボーンを設定しておく

後ろ側から見てみると、お尻も良い感じに丸くなってました。
 
反対側にもボーン設定しておきましょう。
 
ボーンの名前を「UpperLeg_Const_L」のように最後に「_L」を付けて登録し、
 
そのボーンを選択して、右クリックメニューで「対象化」を選択すると、
 
反対側にも同じボーンをコピーすることができました。
ボーンコンストレイントの設定もコピーされるのが便利ですね。
 

(3) 補助ボーンで股関節付近のメッシュを固定化する

お尻は丸くなりましたが、まだ股関節自体の問題が解決してません。
 

股関節が変形しすぎる

足を曲げてみると、太ももに引きずられて股関節の股部分が前方に移動してしまいました。
この状態でパンツをはいていると、体オブジェクトがパンツを貫通することになります。
 
パンツオブジェクトにもウェイト設定することもできるんですが、貫通しないようにするのは非常に難しい。。
一度試したことがあるんですが、角度によってはみだす・はみ出さないが発生してあきらめたのでした。
 

補助ボーンを入れる

やはり、股関節や腰の辺りは動かないようする必要がありますので、補助ボーンを入れていきます。
 
腰骨と股間のところですね。
比較するために、片方だけに入れてみました。
 
ウェイトを設定して動作を確認します。
補助ボーンを入れた方(画像の右側)は、良い感じに体オブジェクトを固定化できてますね。それに対して左側は、パンツより内側にメッシュが移動してしまいました。
 

補助ボーンを追加する。

もう片方にも補助ボーンを追加しつつ、その他の個所にも追加しておきました。
だいぶん補助ボーンが増えましたね。
 
この状態で足を曲げてみます。
 
腰や股関節の形が変わることなく、足を曲げることができました。
 
これならパンツをはいていても大丈夫そうですね。
 

太ももが潰れすぎる?

良い感じになったと安心していたんですが、前から見てみると太ももの上部分が潰れていることに気づきました。
太ももの下側(裏側)も同じ状態。
 
足の付け根部分が細いので、プロテクターを装着したような感じに。。。
 
とりあえず、腰骨あたりから股方向への補助ボーンを追加してみますか。
調整が難しい。
 

太ももにも補助ボーンを追加する

いろいろ試した結果、太ももにも補助ボーンを追加することにしました。
 
ウェイトペイントモードで確認してみます。
 
太ももの裏側と、
 
表側に対して、個別にウェイト設定がされるようになりました。
 
足を曲げてみます。
 
太ももが変形しなくなりました!
その代わりに、太ももが体オブジェクトにめり込むようになりましたが、実際の体でもめり込んで見える場合もありますので良しとしましょう。
 


(4) [休憩] 股関節周りのメッシュを修正する

少し疲れました。
 
いつものことですが、ボーンとウェイト調整は本当に時間がかかりますね。しかも、こちらを修正するとあちらがおかしくなる、という感じなので、全体のバランスを取るのが難しい。
ちなみにですが、ボーンを入れて調整することを「リギング」、そのボーンでメッシュ頂点にウェイトを設定して動かすことを「スキニング」というようですね。
 
気分を変えて、股関節周りのメッシュ修正をしていきます。
こちらは「リトポロジー」ですね。
 

凹まして盛り上げる

腰骨辺りがまっすぐでしたので、少し凹ませてみました。
 
お尻はもう少し盛り上げる感じで。
 
この辺りのメッシュは、ナイフツールで辺を増やして凹ませます。
 
横から見るとこんな感じに。
 

パンツをはくと隙間ができる

これでリトポロジー完了です。
こういう作業は無限にできます。
 
パンツをはかせてみると、少し隙間ができました。
この隙間が作りたかっただけでした。
 
腰へのフィット感もでましたので、休憩終了です。
 

(5) もう少しボーンを調整する

だいぶん良くなってきているはずなので、もう少し頑張りましょうか。
 

更に調整していく

細かいですが、股付近の補助ボーンの影響が少ない気がしました。
 
少し下げておきます。
 
メッシュのウェイトは一番近いボーンの影響を受けやすいので、これくらいの変更ではあまり変化はないかも知れませんが。
微調整を繰り返していると、何が良いのか悪いのか分からなくなる瞬間がありますね。。
 
足を曲げて確認します。
 
太もものめり込み具体が良くなった?気がします。
 
下から見ても大丈夫そう。
 

太ももの補助ボーンを増やす

ですが、足を広げると微妙な感じでした。。
 
太ももの補助ボーンの影響が少ないようなので、更にもう1本増やすことにしました。
 
真ん中のボーンが通常ボーン、その左右にあるのが補助ボーンですね。
これ良いでしょう。
 


(6) 股関節が修正できた!

これで一通りの作業が完了しました。
 
最終的なボーン配置とウェイト状態を確認しておきましょう。
 

ボーンの配置を確認する

まずはボーン配置です。
通常ボーン、補助ボーンを合わせると22本ありました。
 
腰骨や太ももの付け根、股などメッシュを動かしたくない部分に補助ボーンを入れてます。
 
お尻部分に補助ボーンはありません。
ここは「BO補助ボーン(ボーンコンストレイントで追随して動く補助ボーン)」で対応しますので。
 
足には、太ももの形を維持するための補助ボーンを2本。
 
3Dモデルの形によって、補助ボーンを入れる場所や長さ、角度は変わるんでしょうね。
奥が深い。
 
そして、補助ボーンを使わずに「手動でウェイトを塗る」のはもっと奥が深そう。もはや芸術の域かも知れません。
 

ボーンコンストレイントの設定

太ももボーンに追随するBO補助ボーンですが、最終的には3本になりました。
それぞれ、ボーンの配置角度と「影響」の値を変えてます。
 
1本目は 0.150。
 
2本目は 0.100。
 
3本目が 0.800です。
今見ると2本でも良かった気がしなくもありませんが、試行錯誤の結果なのでこのままで。
 

ウェイトペイントで確認する。

最後の確認は、ボーンのウェイト状態です。ざっと見ていきましょう。
 
腰の補助ボーンその1。
 
腰の補助ボーンその2。
 
太ももの付け根の補助ボーン。
 
股付近の補助ボーン。前から見ると、メッシュへの影響が少ないように見えますが、
 
後ろ側には大きく影響してます。
 
お尻のフチにある補助ボーン。
 
お尻用のBO補助ボーン。
 
角度を変えることで、お尻の丸さを保ってます。
 
太ももボーン。メッシュへの影響力は少なめ。
 
太ももの表側の補助ボーンと、
 
裏側の補助ボーン。こちらの影響力は大きい。
 

股関節を曲げて確認する

まずは股関節がまっすぐな状態です。
 
足を90度曲げてみました。
太ももの形は変えずに、体オブジェクトにめり込ませています。
 
お尻が少し出ている感じですが、今回は太ももだけを回転させてお尻は固定化したので仕方ないところです。
 
下から見てみました。
 
足を曲げてもお尻が丸いのは良いですね。
 
この状態で足を広げてみました。
股間周りに若干固さがある?
 
少し下から見てみると、そこまでの違和感はありませんでした。
 
見る角度で、見た目は変わるようです。
 

パンツをはいて確認する

「補助ボーンの効果でパンツ周りのメッシュが動かない」ことを確認していきます。
 
太ももがめり込むのは同じですが、これくらいなら良いでしょう。
 
足を曲げても、パンツと体に隙間は発生しません。
今回の記事で修正する前は、そこそこ隙間があって気になってたんですよね。やっと直りました。
 
椅子に座ったポーズにしてみました。
 
この角度でも、太ももやお尻が角ばることなく丸く見えてますね。
良い感じです。
 

まとめ 

股関節を大きく回転すると関節がつぶれたりお尻が角ばっていたので、ボーンコンストレイントと補助ボーンを使って修正しました。
かなり時間がかかりましたが、良い感じに修正できましたよ。
 
次は膝の関節を修正します。
これでやっと、キレイに体育座りとしゃがみ座りができそうです。
 


スポンサーリンク


コメント

  • トラックバックは利用できません。

  • コメント (0)

  1. この記事へのコメントはありません。

ブログの女の子を作る #92 下半身のメッシュを修正する(股関節と膝のリトポロジー)【Blender】

ブログの女の子を作る #94 ひざを二重関節とUnityのConstraintで修正する【Blender,Unity】

だーしゅ
IT関係のお仕事してます。
VRは楽しいですね。

[当ブログについて]