本稿では Vertex Paint の Falloff Distance で得たウェイトマップを修正する事で、Boneウェイトに最適なウェイトマップを得るワークフローを紹介しています。ウェイトマップの調整後に頂点の追加を伴う修正が必要になった場合はウェイトマップも同様に修正する必要が出てくるため、非常に面倒な事になります。
求めるスキニング品質に必要な頂点、メッシュを確保した段階でウェイトの修正作業を行なうのが理想ですが、ウェイト修正、造形を詰める段階で新たに頂点を追加する必要に迫られるケースもあります。
Add Edge ツールで新たにエッジを追加した例です。
左で示すエッジ(増えた箇所)を選択し、このエッジをコブシの部分に強めに拘束させたいとします。
ウェイトツール Falloff なしで加算する数値(%)を入力して適用を実行します。スケルゴン回転で効果を確認します。このとき、正規化のオプションは有効にしておきます。
有効にした状態でよい結果が得られるには何%必要か、取り消しを繰り返し探ります。
(強めを意識するのがコツです。理由は考えてみてください。)
ウェイト値の合計が100%を超えても気にする必要はありません。最終的に Normalize を実行するからです。エッジ選択モードで適用すると、選択されたエッジを構成する2つの頂点にウェイト値が加算されます。
横に並ぶ他の指も同じ構造であるため、ここで得た値と同じ値を加算すれば良い事になります。
左がウェイト修正前、右がウェイト修正後のレンダリング イメージ
ヒント 大きく変形する箇所は伸びきる時にメッシュ密度が低くなるので、周囲よりもメッシュ密度を高めにしておくと形状の破綻を抑える事が出来ます。また、このような尾根となる箇所でポリゴンのエッジが気になる箇所は、Ver9 で搭載された APS とノード設定で回避するアプローチも有効です。
この修正では Add Edge ツールを使用してエッジを追加しました。この例では新たに頂点増加が伴う形状の修正ですが、新たに増えた頂点は補間されたウェイト値が適用されています。
使用するツールや選択モード、修正方法によっては追加された頂点に対してウェイト値が補完されない場合があります。ウェイトシェード表示で作業するようにします。
爪のモデリングを例に説明します。本来であれば指を制作する段階で作成しておくべきですが、コンテンツの都合上、敢えてこの段階で作成しています。爪の造形については説明は端折ります。
選択したポリゴンを1つのポリゴンにマージして、Add Edge ツールで二つに分割しています。後で選択し易いように事前に nail という名前でマテリアルを適用しておきます。
マルチシフトツールを2回に分けて適用し、2回目で得られたポリゴンをスライドして頂点を修正します。
SubDivサーフェイスは頂点が密集する箇所ほどレンダリング時に無駄にポリゴンを浪費し易くなりますので、無駄な造り込みにならないよう用途に応じて考える必要があります。
スムースシフトはウェイト値も複製されますがマルチシフトツールは複製されません。前述したように使用するツールや選択モードによって違いがあるため、頂点数増加が伴う修正を行なう場合は留意する必要があります。
モデラーのインターフェイスは、レイアウトや一般的な統合型3DCGソフトと違い、ローカル回転軸という概念はなく、標準機能では法線方向に対して修正可能なツールも限られています。
ワールド軸に対して傾いた指は LW8 で搭載された Translate Plus ツールを使う事で指定した軸に対してスケール、移動、回転が行えます。例えば指定したセグメント方向に中央でスケールしたい場合は図の様にします。
ウェイトシェードビューで確認すると新たに増えた頂点にはウェイトがない事を確認出来ます。指先のBone に 100% 追随する箇所であるため、修正するウェイトマップは一つで、適用する値は 100% という事になります。
この段階ではウェイト値は 0%ではなく、定義されていない状態にあります。 フォールオフはなしで選択したポリゴン、ポイントに対してウェイトを加算します。
”MAP値指定 (Set Map Value)”は適用されているウェイト値を修正するツールです。そのため、頂点にウェイト値が存在しない場合は機能しません。また、”Weight = 0%” と ”ウェイト値なし” は Boneスキニングの結果は同じになります。つまり、”Weight = 0%” は無駄なデータとも言えます。
あとは残りの指に対しても同じ事を繰り返す事になる訳ですが、指を作成した段階で済ませておけば必要のない作業です。ウェイト修正、モデリング作業は、全て意味のない作業というとになります。
この例では拘束させる Bone が一つのケース、すなわちウェイトマップは一つであるため大した問題にはなりませんが、追加した頂点に複数のウェイトマップが適用される場合は場合によってはウェイト修正は厄介な作業となります。
具体的には隣接する頂点に割り当てられているウェイト値を参考に修正し、それぞれのウェイトマップで同様の修正を行ないながらスケルゴン回転で確認する必要があります。
このようにウェイトマップ調整後の頂点数が増えるオブジェクトの修正はなるべく避ける必要があるため、ウェイト修正に取り組む前に必要な頂点数を確保しておく事が重要なポイントになります。
スキニングにウェイトマップを使う以上、LightWave に限った話ではありません。
次は UVマップについて説明します。