2-10 ジョイントの影響範囲設定

ジョイントの影響範囲について

頂点とボーンの距離のみを用いてスムーズ スキニングを行う場合、モデルの部位同士が近づきすぎている場合などにおいて、頂点が意図しないボーンに関連つけられる場合があります。一例として、「ファイル」メニューの「開く…」をクリックして、「mikoto_joint_area.toy」を開きます。

オブジェクト パネルでルート ボーンである「Hips」とスキニング対象モデルである「sdef:body」を選択し、

「オブジェクト」メニューの「スムーズ スキニング」コマンドで、そのまま「OK」をクリックしてスキニングを行います。

ここで、メイン ツールバーの「回転ツール」(R)をクリックして

左ひざのボーンを回してみると、以下のようにモデルの右足首の一部が左足首のボーンの影響を受けてしまっています。

メイン ツールバーの「ウェイトペイント ツール」(W)をクリックしてウェイトをチェックしてみると、

以下のように、モデルの右足首の内側の頂点が左足首の「LeftAnkle」ボーンの影響を受けており、微妙に白く表示されています。この頂点にとっては、右足首のボーンよりも左足首のボーンの方が距離が近かったためです。

これは「ウェイトペイント ツール」(W)で修正すればいいですが、モデルが入り組んだ形状をしていたり、モデルの修正を頻繁に行う場合には、作業が煩雑になりがちです。こういった場合、ジョイントに影響範囲を設定することで、そのジョイントが影響を与えるエリアを制限した方が作業が簡潔になります。
(mikoto_joint_area1.toy)

影響範囲の作成

そこで、左足首のジョイントに影響範囲を作成し、スキニングを行ってみます。「ファイル」メニューの「開く…」をクリックし、「mikoto_joint_area.toy」を開きます。まず、影響範囲のポリゴンは半透明な方が操作しやすいので、影響範囲用のマテリアルを作成します。マテリアル パネルで右クリックして、プルダウン メニューの「新規マテリアル」をクリックしてマテリアルを作成します。マテリアルの「カラー」は赤、「不透明度」は0.3前後にしておきます。

メイン ツールバーの「ポリゴン選択 モード」(Shift+P)をクリックし、

オブジェクト パネルで左足首のジョイントである「LeftAnkle」を選択した状態で、

ツールバーの「立方体の作成」をクリックします。

「サイズ」は10、「分割数」は1で「OK」をクリックします。

以下のように、ジョイントの原点を中心とする位置に立方体が作成されます。影響範囲用のポリゴンは、「ポリゴン選択 モード」(Shift+P)でのみ、作成や選択・編集が可能です。

通常のポリゴンと同様に、ポリゴンの頂点を「移動 ツール」(T)を使って編集し、以下のような配置にしました。

次に、左足首の先端の「Site」ジョイントの影響範囲を作成しますが、これは今作成した「LeftAnkle」の影響範囲をコピーを利用したいと思います。「ポリゴン選択 モード」(Shift+P)のままで、オブジェクト パネルで「LeftAnkle」をクリックして影響範囲ポリゴン全体を選択し、「編集」メニューの「コピー」(Ctrl+C)をクリックしてコピーします。

次に、オブジェクト パネルで「Site」をクリックし、「編集」メニューの「貼り付け」(Ctrl+V)をクリックしてポリゴンを「Site」ジョイントの影響範囲として貼り付けます。先ほどと同様にポリゴンを編集し、ちょっと前にずらした配置にしました。
位置が干渉している影響範囲やメッシュについては、「オブジェクト パネル」(Ctrl+Q)の「編集不可」をチェックすれば間違ってクリックしてしまうことはありません。

ポリゴンの編集が終わったので、「オブジェクト選択 モード」(Shift+O)に戻し、

オブジェクト パネルでルート ボーンである「Hips」とスキニング対象モデルである「sdef:body」を選択し、

「オブジェクト」メニューの「スムーズ スキニング」コマンドで、「影響範囲で近接ボーンを算出」チェック、「影響範囲でウェイトを算出」チェックがONになっているのを確認し、「OK」をクリックします。

ここで、メイン ツールバーの「回転ツール」(R)をクリックして、

左ひざのボーンを回してみると、左足首のボーンに影響範囲が設定されたため、さっきとは違い、モデルの右足首の一部が左足首の影響を受けることはなくなりました。
(mikoto_joint_area2.toy)

ウェイトの算出方法について

ToyStudio/MechaStudioでは、頂点とボーンの距離を利用した通常のウェイト算出アルゴリズムに、影響範囲によるウェイト範囲の制限を組み込んでいます。
つまり、影響範囲はボーンのウェイトの範囲制限としてのみ働き、影響範囲全体にウェイトが分散されるわけではありません。ボーンのウェイトが分布する範囲はあくまで「減衰率」によって決まり、影響範囲外のウェイトはカットされます。
よって、頂点あたりのボーンの影響数は通常通り最大4つであり、ウェイトペイン トツールでウェイトの修正が可能です。また、影響範囲が必要なボーンに対してのみ、影響範囲を作成すればよいです。

コメントを残す

メールアドレスが公開されることはありません。