チュートリアル / 人体構造を意識したキャラクターセットアップ方法 ~ゼロから始めるMayaリギングの基本~
第8回:人体セットアップリアル編/下半身の解説

  • Maya
  • アニメ
  • インテグラル・ヴィジョン・グラフィックス
  • キャラクター・リグ
  • ゲーム
  • コラム
  • チュートリアル
  • 学生・初心者
  • 映画・TV

00.ごあいさつ

皆様こんにちは。
インテグラル・ヴィジョン・グラフィックスのリードリガーの古屋です。

前回は、補助骨を使った上半身のセットアップについて解説しました。
今回は、この連載の最終回として「下半身」のセットアップと、データの最終確認についてお送りいたします!

人体セットアップリアル編/下半身の解説

01.下半身の主な可動域の紹介

下半身は上半身と比べて、体を支えるという重要な役割があるため、関節の構造がより堅牢で安定性を重視した設計になっています。
一方で、歩く、走る、ジャンプといった動作を実現するために十分な可動域が確保されています。

以下のGIFは、シンプル編のセットアップとリアル編のセットアップで、足の動きを比較したものです。
補助骨によって太ももと胴体の干渉がなくなっていたり、膝回りの筋肉が連動し、メッシュ同士のめり込みやシルエットの改善がされているのがわかります。

下半身の可動域

これらの動きを補助骨を使ってどのように制御していくのか、順を追って見ていきましょう。

02.下半身の動きと補助骨の配置

下半身のリアルな動きを実現するために、動きの特性に応じて補助骨を追加します。
まずは股関節、足の付根あたりの要素について見ていきます。

02-1.股関節の動きと役割

股関節は上半身と下半身を繋ぐ要の部位であり、人体の重心を支える最も重要な関節の一つです。

人体の骨の中で一番大きい大腿骨と、骨盤から構成され、上半身の重量をすべて受け止めて下半身に伝達する役割を担っています。

股関節の構造

さらに股関節は、前回の肩甲骨と上腕骨と同様のボール型の骨構造でできており、非常に広い可動域を持っています。
この構造によって、走ったりしゃがんだりジャンプしたりといったことが可能になります。

股関節の可動域

この足の広い可動を実現するためにはたくさんの大きな筋肉が必要です。
大腿筋膜張筋と大腿直筋といった大きな筋肉によって、腿を持ち上げることができます。
その持ち上げた足を戻したり、後ろに引き寄せるために、おしりにあたる臀筋があります。
足を横に開いたり、内側に寄せたりする際には大腿筋膜張筋、内転筋といった筋肉が使われます。

股関節周辺の主な筋肉

02-2.股関節の補助骨

足を持ち上げたり捻ったりした際の筋肉の変形や、メッシュの痩せの緩和、おしりの形状を補正するために以下の補助骨を追加しました。

・UpLeg_Spo
足を動かした際の、足の付根や腰回りのめり込み、痩せなどを緩和したり、おしりの形状を補正する役割を果たします。
・UpLeg_Roll
足を捻った際の、太ももの痩せを緩和する役割を果たします。
さらに、後述する膝の二重関節表現や太もも・ふくらはぎ間の接触補正にも使用します。

股関節の補助骨の配置

UpLeg_SpoはUpLegと同位置同軸に配置します。
UpLeg_SpoS(Side)はUpLegと同位置に、X軸はEnd骨に向けて配置します。
そのEnd骨は、UpLegを横に曲げた際に最も痩せてしまう箇所に配置します。
UpLeg_SpoF(Front)、UpLeg_SpoB(Back)もUpLeg_SpoSと同じような考え方で配置します。

UpLeg_Spoの配置

UpLeg_Roll(A~C)はすべてUpLegと同位置同軸に配置します。
End骨はUpLegとLegまでの距離を4等分し、均等に配置します。
各Roll骨のウェイトはEnd骨の位置をピークに減衰していくイメージになります。

UpLeg_Rollの配置

02-3.膝の動きと役割

膝は、太ももの「大腿骨」、すねの「脛骨(けいこつ)」、お皿部分の「膝蓋骨(しつがいこつ)」という3つの骨が集まってできています。
骨と骨の間には軟骨や半月板があり、これらが足をついた時の衝撃を和らげるクッションの役割を果たしています。
可動域はまっすぐ伸びた状態(0度)から正座ができるくらいまで(約150度)と非常に広いです。
歩くときは60度ほどの屈曲と伸展を繰り返しています。

膝の構造

膝を曲げる際には、腿の裏側にある大腿二頭筋や半腱様筋といった通称ハムストリングスと、腓腹筋やヒラメ筋といった、ふくらはぎの筋肉が使われます。
膝を深く曲げるとハムストリングスとふくらはぎは、お互いに接触します。
補助骨を追加することで、接触した際のメッシュの形状を補正することができます。

膝周辺の主な筋肉

CGのリグでは、膝をシンプルな「1軸の回転(蝶番関節)」として扱うことが多いですが、実際の膝の構造はもっと複雑です。
膝を曲げる際、大腿骨は脛骨の上で単に回転しているだけでなく、転がりながら滑る動きをしています。(参考動画:https://vimeo.com/511328205
この動きにより、膝を深く曲げても大腿骨と脛骨の隙間が保たれ、スムーズな可動が実現されています。
これを1つのジョイントだけで表現しようとすると、回転の中心が固定されてしまい、膝裏が潰れたり、太ももの前面が伸びすぎたりしてしまいますので、補助骨を設定して回避していきます。

02-4.膝の補助骨

前述した「転がりながら滑る」動きや、膝を曲げた際に大腿骨の厚みが筋肉を押し出す構造を再現するために、以下の補助骨を追加しました。
これらは単に筋肉の盛り上がりを作るだけでなく、1つの関節では表現しきれない「二重関節的な構造」を擬似的に再現するための工夫でもあります。

・Knee_Spo
膝蓋骨や膝裏の形状を補正する役割を果たします。
・UpLeg_Roll
膝を曲げた際の太ももの動きを制御します。
骨配置は、少し戻って「02-2.股関節の補助骨」を参照してください。
・UpLeg_Roll_Spo
膝を深く曲げた際のハムストリングスの動きを制御します。
・Leg_Roll
膝を曲げた際のふくらはぎの動きを制御します。
また、後述する足首を曲げたときのメッシュのボリュームを補正する役割も果たします。

膝の補助骨の配置

Knee_SpoはLegと同位置同軸に配置します。
Knee_Spo(F、B)はLegと同位置に、End骨はLegを曲げた際に最も痩せてしまう箇所に配置します。

Knee_Spoの配置

Leg_Roll(A~C)はFootと同位置に配置し、X軸はEnd骨に向けます。
End骨はUpLeg_Rollと同じように、LegとFootまでの距離を4等分し、均等に配置します。

Leg_Rollの配置

もう一つ、膝を曲げた際にふくらはぎとハムストリングスが干渉したときの、ハムストリングスの形状を補正する用にUpLeg_RollC_SpoBを配置します。
こちらはUpLeg_RollCの子どもに配置し、End骨はふくらはぎとハムストリングスが干渉するピーク地点に配置します。

UpLeg_RollC_SpoBの配置

02-5.足首の動きと役割

足首は脛骨(けいこつ)、腓骨(ひこつ)、距骨(きょこつ)の3つの骨が組み合わさって形成される関節で、体重を支えながら地面からの衝撃を吸収し、歩く時の推進力を生み出す重要な役割を担っています。
人間が二足歩行を行う上で欠かせない、非常に精密で複雑な構造を持った関節です。

足首の動きは主に背屈(足先を上に向ける)と底屈(足先を下に向ける)の上下運動と回旋がメインですが、わずかな内反・外反(足裏を内側・外側に向ける)の動きも可能です。
この複合的な動きによって、不安定な地面での歩きや、ジャンプの着地時の衝撃吸収、方向転換時の微調整などが可能になります。

足首の構造

足首周りの筋肉は、前脛骨筋(ぜんけいこつきん)が背屈を、腓腹筋とヒラメ筋が底屈を担っています。

足首周辺の主な筋肉

02-6.足首の補助骨

足首の動きに伴うボリュームの変化と、形状を補正するために、以下の補助骨を配置しました。

・Ankle_Spo
足首の背屈・底屈時のメッシュの形状を補正する役割を果たします。
・Leg_Roll
足首を回転させたときの下腿(膝から足首までの部分)の動きを制御します。
骨の配置は、少し戻って「02-4.膝の補助骨」を参照してください。

足首の補助骨の配置

Ankle_SpoはFootと同位置同軸に配置します。
Ankle_Spo(F、B)はFootと同位置に、End骨はFootを曲げた際に最も痩せてしまう箇所に配置します。

Ankle_Spoの配置

03.セットアップ解説

実際に追加した補助骨に対してコネクションとドリブンキーの設定を行っていきたいと思います。

03-1.複数の役割を持つ骨について

それぞれの具体的な手順に行く前に、複数の役割を持つ骨のについて補足します。
UpLeg_RollとLeg_Rollは今回それぞれ2つの役割を持っています。

1つ目はひねったときにメッシュが痩せたり膨らんだりしてしまわないようボリュームを保持し、シルエットを整える役割。
2つ目は曲げたときにメッシュ同士が干渉しないように回避する役割です。

Roll骨の役割

1つ目はひねりの起点となるUpLeg(足の付根)、Foot(足首)がソースとなりますが、
2つ目は曲げたときにメッシュ同士の干渉が起きるLeg(膝)がソースとなります。

Roll骨のソース

実は第6回の腕の設定でも同じようなことが行われていました。
このときも手首を捻ったときのメッシュのボリューム保持とシルエット調整に加え、肘を曲げた際の前腕と上腕の干渉を回避するという役割を持っていました。

第6回の腕の設定

このように1つの補助骨に複数の役割をもたせることもあるので、混乱しないように注意して行きましょう。

03-2.股関節のコネクションとドリブンキー

▼UpLeg_Spoのコネクション

足を曲げたとき、大腿筋膜張筋や臀筋といった大きな筋肉たちの動きを再現し、メッシュの形状を補正するために、UpLeg_SpoとUpLeg_Spo(F,S,B)を追加しました。
UpLeg_Spoはコネクションで設定を、UpLeg_Spo(F,S,B)はドリブンキーを設定します。

UpLeg_SpoはLegのRotateYとZに対しては半分の値を、RotateX(ひねり)に対しては影響を打ち消すように設定したいです。
そうすることで足を動かしたときのメッシュの急激な形状変化を抑えつつ、UpLeg_Spo(F,S,B)のドリブンキーで補正を行うことができます。
そしてこれを実現する設定は、前回のShoulder_Spoのコネクションと全く同じなのです。

UpLeg_Spoのコネクション

この設定では、「UpLegの回転情報をクォータニオンに変換して計算し、その結果を50%の強さでUpLeg_Spoに適用する」処理を行っています。
詳しい解説は前回前々回をご参照ください。

第6回でもお伝えしましたが、「quatSlerp」やクォータニオンや捻りと曲げの分解については、 COYOTE 3DCG STUDIO様がより詳しく解説していますので、理解を深めたい方はこちらも併せてご参照ください。
https://cgworld.jp/regular/202102-coyote-ta02.html

▼UpLeg_Spo(F,S,B)のドリブンキー

足を前に上げたときや横に開いたときには大腿筋膜張筋と大腿直筋が、後ろに引いたときには臀筋が収縮しておしりにボリュームが集まります。
これを表現するために以下のようにドリブンキーを設定していきます。
UpLegの回転をソースに設定してUpLeg_Spo(F,S,B)を制御します。
足を前に上げた時にはUpLeg_SpoFを、後ろに動かしたときはUpLeg_SpoBを、横に動かしたときはUpLeg_SpoSが動くように設定します。

UpLeg_Spo(F,S,B)のドリブンキー

ドリブンキーの値とウェイトは以下のようになります。

UpLeg_Spoのドリブンキー値
UpLeg_Spoのウェイト

▼UpLeg_Rollのコネクション

足をひねった際の太ももが、痩せたりせず形状を維持できるように調整します。
第6回の腕の設定と同様に、捻りだけを抽出して「multDoubleLinear」ノードで回転値を制御しましょう。
multDoubleLinearの値はきれいに4等分したものを設定しています。

UpLeg_Rollのコネクション

03-3.足首のコネクションとドリブンキー

次は膝、と行きたいところですが先に足首の説明をさせてください。
先ほど説明したように、UpLeg_RollとLeg_Rollが膝の動きにも連動するため、膝を最後に説明したほうが都合が良いためです。
実際に作業する際は、お好きな順番で設定しても問題ありません!

▼Ankle_Spoのコネクション

まずはAnkle_Spoのノードを見てみましょう。
実現したい動きは「足首を曲げたときにY軸(ねじれ)は無視してXとZ軸だけを50%で動かす」というものです。

Ankle_Spoのコネクション

もうお解りかもしれませんが、コネクションはUpLegや腕とほとんど同じです。
説明が重複してしまうので、見返しながら設定してみてください!

▼Ankle_Spo(F,B)のドリブンキー

続いてドリブンキーを設定して、足首を動かした際のメッシュのボリュームやシルエットを整えていきます。
Footの回転をソースに設定してAnkle_Spo(F,B)を制御します。
足先を上に向けた時にはAnkle_SpoFを、下に向けたときはAnkle_SpoBが動くように設定します。

Ankle_Spo(F,B)のドリブンキー

ドリブンキーの値とウェイトは以下のようになります。

Ankle_Spoのドリブンキー値
Ankle_Spoのウェイト

▼Leg_Roll(A,B,C)のコネクション

足首のひねりを確認する際、重要なのは「足裏の接地」を維持することです。
現在のFootジョイントは、ローカル軸(X軸)がつま先方向を向いているため、そのまま回転させると足が地面から浮いてしまいます。
そのため、Tool Settingsの Axis Orientation を Object から World に変更してワールド軸での制御に切り替えることを推奨します。
これにより、地面と水平な回転が可能になり、意図しない軸ブレを防いで正確な接地確認が行えます。

Leg_Rollのコネクション確認

設定自体はUpLeg_Rollと同様になります。
説明が繰り返しになってしまうので、こちらも見返しながら設定してみてください。

Leg_Rollのコネクション

03-4.膝のコネクションとドリブンキー

膝は前述した通り、UpLeg_RollとLeg_Rollにも影響を与え、複雑そうに見えますが、内容は凄くシンプルで設定も簡単なので安心してください。
まずはKnee_Spoの設定を見ていきます。

▼Knee_Spoのコネクション

膝の可動域は1軸で制御するので、股関節や足首と違い設定もシンプルで大丈夫です。
今回はPairBlendのWeightを0.5に設定して、回転の半分の値を取るだけにしています。

Knee_Spoのコネクション

▼Knee_Spo(F,B)のドリブンキー

前後のKnee_Spoはドリブンキーを設定して、膝を動かした際のメッシュのボリュームやシルエットを整えていきます。
Legの回転をソースに設定してKnee_Spo(F,B)を制御します。
膝を曲げたときに膝蓋骨や膝の裏の形状が整うように設定していきましょう。

Knee_Spo(F,B)のドリブンキー

ドリブンキーの値とウェイトは以下のようになります。

Knee_Spoのドリブンキー値
Knee_Spoのウェイト

▼UpLeg_RollとLeg_Rollのドリブンキー

膝を曲げたときに、太ももとふくらはぎの形状の補正用にドリブンキーを設定していきます。
膝を深く曲げると、ハムストリングスは短縮して厚みを増し、腓腹筋(ふくらはぎ)は圧迫されて横に広がります。
UpLeg_RollC と Leg_RollA のScaleZ を膨張させることで、この「潰れて押し出される」筋肉の挙動を表現しています。

UpLeg_RollとLeg_Rollのドリブンキー

UpLeg_Rollのドリブンキーの値とウェイトは以下のようになります。

UpLeg_Rollのドリブンキー値
UpLeg_Rollのウェイト

Leg_Rollのドリブンキーの値とウェイトは以下のようになります。

Leg_Rollのドリブンキー値
Leg_Rollのウェイト

▼UpLeg_RollC_SpoBのドリブンキー

膝を深く曲げて、ハムストリングスとふくらはぎが干渉したときに補正するためのドリブンキーを設定します。
今回はハムストリングスの動きを再現するUpLeg_RollC_SpoBのみに設定しています。状況に応じてふくらはぎにも補助骨を設定することもあります。

UpLeg_RollC_SpoBのドリブンキー

UpLeg_RollC_SpoBのドリブンキーの値とウェイトは以下のようになります。

UpLeg_RollC_SpoBのドリブンキー値
UpLeg_RollC_SpoBのウェイト

これで今回追加した補助骨の設定はすべて完了しました!
右側も同じように設定してみてくださいね。
あとは実際に動かしてみて気になる箇所を見つけたら随時調整し、より良い設定を模索してみてください!

03-5.Human IKの設定

ここまでできたらHumanIKの設定をしていきましょう。
第2回で設定方法を説明しましたが、忘れている人も多いと思うので軽く触れていきたいと思います。
Riggingタブに切り替えて、Skeleton>HumanIKからHumanIKのタブウィンドウを出します。
「Create Character Definition」をクリックします。

HumanIKの設定1

続いて骨を1つ選択してLoad Skeleton Definitionをクリック。
Load Skeleton Definitionでは骨の名前だけを見て、自動的に正しい割当を実行してくれます。
本コラムではHumanIKに準拠した命名規則で骨の作成をしているので、その命名を元に各部位の割り当てを実行してくれます。
設定ウィンドウは特に変えずそのままOKを押します。

HumanIKの設定2

Controlsタブに移動し、Sourceを「Control Rig」に指定するとHumanIKの設定は完了です。
実際にコントローラーを動かしてあらゆるポーズやアニメーションをさせることができます。

HumanIKの設定3
HumanIKについてもっと詳しく知りたい方は公式のヘルプをご参照ください
https://help.autodesk.com/view/MAYAUL/2023/JPN/?guid=GUID-EDBDA3DB-4715-40EF-9ADF-412F78BFF98E

04.最終チェック

前回の上半身の解説、前々回の腕の解説と合わせて、これで一通りのセットアップが完了しました!しかし、まだ完成ではありません。
最後に、全身を動かしてみて変なバランスになっていないか、破綻がないかなどを確認するための最終チェックを行いましょう。

04-1.可動域の確認

リアル編では、人体の関節の構造や可動域を紹介しつつ、それらを再現するために補助骨の追加をしました。
人間が動かすことができる可動域を、実際にMaya上で動かしてみて、意図していない補助骨の動きや、メッシュの形状になっていないかを確認しましょう。
基本的には全てのJointを動かして確認するクセを付けるのが良いです。
補助骨やウェイトの設定時に、あらかじめキーフレームを打っておくのも効果的です。

可動域の確認

今回は実際に人間が動かせる範囲に絞っていますが、アニメ的な表現では構造上あり得ない角度まで関節を動かすこともあるので、目的に応じて可動域は変わっていく、ということに注意しましょう。

04-2.クリーンアップ

リグは作って終わりではありません。
アニメーター(自分以外の人)が触っても大丈夫な状態にしておく必要があります。

ジョイントやコントローラーに意図しない数値が入っていたり、不要なキーフレームが残っていたりしたら削除して、バインドポーズに設定しておきましょう。
骨の追加やスキニングで使用した作業データ、使っていないノードなどは削除しておきましょう。

クリーンアップ1

アニメーターが触る必要のない骨などは、誤作動を防ぐためにアトリビュートをロックしたり、オブジェクトを非表示にしたり、Display Typeを変更したりして対策をしましょう。
今回の場合、Human IKを設定したあとに、ジョイントをアニメーターが触ることはないので、全部の骨のDisplay TypeをTemplateに変更しています。
こうすることでビューポート上での見た目がグレーアウトし、選択することができなくなります。

クリーンアップ2

Display > Hide > Hide Selection で選択したオブジェクトを非表示にすると、ビューポート上から見えなくし、選択することができなくなります。
また、アトリビュートのロックでは、ビューポート上では選択可能ですが、チャンネルボックスの数値を変更できないように固定できます。
状況に応じて使い分けていきましょう。

クリーンアップ3

リグのデータは自分さえわかっていれば良い、というものではなく、作ったデータは他の人に作業が引き継がれるということを理解しておきましょう。
人に渡すときは、キレイでクリーンなデータにするということを心がけておきましょう。

05.シンプル編とリアル編の比較

最後に、本連載でセットアップを行ったモデルを使用して、実際に弊社のアニメーターにモーションをつけてもらいました。
補助骨やドリブンキーを設定していない「シンプルなセットアップ」と、補助骨の設定を行った「リアルなセットアップ」で、同じアニメーションを再生して比較しました。

シンプルなセットアップでは潰れてしまいがちな関節部分も、適切な補助骨設定を行うことで、柔らかく自然な変形が維持されていることが確認できるはずです。
地道に積み重ねた設定の一つひとつが、動きの説得力を生み出していることがわかります。

06.おわりに

全8回にわたる連載を通して、HumanIKの仕様に準拠した骨入れからケージモデルを利用したスキニング、そして補助骨とコネクション、ドリブンキーの設定に至るまで、基本的なキャラクターリギングの全工程をご紹介してきました。
ここまで読み進めてくださった皆さんは、単なるツールの操作だけでなく、キャラクターを動かすための「仕組み」をしっかりと理解されていることでしょう。

リギングは、地道な作業の連続です。
本連載を読みながら実践する中で、思い通りに動かない関節や崩れるメッシュに頭を抱えた瞬間もあったのではないでしょうか。
しかし、苦労して組み上げたリグによってキャラクターがポーズをとり、命が吹き込まれた瞬間の喜びは、ここまでやり遂げた皆さんだからこそ味わえる特権です。

リグの組み方に正解はありません。
今回ご紹介した手法をスタート地点として、ぜひ「あなただけの表現」を追求してみてください。
皆さんの手によって、魅力的なキャラクターたちが動き出すことを楽しみにしています。
最後までお読みいただき、本当にありがとうございました。
リグチーム一同

【公式サイト】https://www.integral-vision.net
【X】https://x.com/IVG_inc

製品購入に関するお問い合わせ
オートデスク メディア&エンターテインメント 製品のご購入に関してご連絡を希望される場合は、こちらからお問い合わせください。