正規化とは(-1~)0~1、あるいは指定した値の範囲に相対的に置き換える処理の事でウェイトマップ編集、Boneスキニングを理解する上で重要なポイントになります。以前の日本語版 LightWave で ”常態化” と訳されていた機能です。
このページでは前ページに引き続き、Boneウェイトを前提としたウェイト編集を行なう前に理解しておきたい LightWave におけるウェイトの正規化処理について説明します。
前のページで説明したように、Boneウェイトに使用するウェイトマップの場合、一つの頂点に対して割り当てられるウェイト値が複数ある場合は、合計の値が 100%である必要があり、頂点に対して割り当てられたウェイト値(ウェイトマップ)が一つだった場合は、値が 100% である必要があります。
意図して極端な結果を得たい場合もあるかもしれません。つまり、正規化を前提としない場合は一つの頂点に割り当てられるウェイト値は 100% にしなければならない、という事ではありません。
頂点に割り当てられた複数のウェイト値の合算を正規化する方法は、モデラー側で事前に配分しておく方法とレイアウトのBoneスキニングの段階で 0 ~ 1 の値で内部処理する方法があります。
何に対して正規化を行なうかで結果の異なる機能がある事にも着目してください。LW のマニュアルからは読み取れない部分を補足します。
モデラーのスケルゴン回転時に意図しない変形が起きる場合は、Weight Map Normalize にチェックを入れると正規化が行われます。
ツールオプションであるため、一時的な正規化処理になります。
”ウェイトツール” や ”エアブラシ” でウェイトを描画しながら意図したスキニング結果を得るように調整する場合は、このチェックを有効にして確認します。
レイアウトの Bone プロパティーで行なう正規化処理です。このオプションが使えるのは、Boneウェイトにウェイトマップを使用する時だけです。
LW-7.x 以前のバージョンでは "スケルゴン回転" ツールはなかったため、SubDivサーフェイスのスキニング結果はウェイトマップを修正する度にレイアウトの Bone で確認する必要がありました。
一つの頂点に割り当てられたウェイト値の合計が100%を超える場合、比率を維持したままウェイト値の合計100%にする事が出来ます。レイアウトのBoneプロパティではなくモデラーで正規化(Normaliz)を行なう方法です。
本稿で頻繁に出てくる正規化(Normalize)は、この頂点に対する処理を指します。
Vertex Paint の Normalize は、頂点に複数割り当てられている複数のウェイト値に対して、ウェイト値の合計が100%になるように正規化を行います。
この処理で割り当てられるウェイトマップが一つの場合はウェイト値は100%に調整されます。
Timothy Albee 氏が公開されている ”TA Normalize Bone Weights” というスクリプトで、process に All Weight Map を選んだ場合、上記、Vertex Paint の Normalize と同様の結果が得られます。
また、選択したウェイトマップの範囲で正規化(合計を 100%)を行なう事も出来ます。ウェイト値が適用されていない頂点がある場合、それぞれのウェイトマップに折半された値が適用されます。
選択ポリゴン、ポイントに対してのみに適用可能、選択したウェイトマップに対してNormalize が出来るなどVertex Paint より小回りが利きます。
同氏は動物をモチーフにした作品が印象深い LW の使い手で、LW 関連書籍の著者としても海外のLWユーザーの間で知られた方です。他にも有用なツールを多数公開されおり私も愛用しています。
URL => LoupGuru.com, From Timothy Albee & Northern Lights Animaiton
モデラーには標準でウェイトマップを含む他の頂点マップ情報に対して正規化処理を行なう ”マップ正規化 (Nomalize Map)” という正規化ツールが用意されています。
上記、頂点毎に複数割り当てられたウェイト値に対する正規化処理ではなく、ウェイトマップに対する正規化処理を行ないます。
つまり、ウェイトマップ単位でウェイトのスケールを修正します。図の例では、0~100% の範囲に収まるようにウェイトマップをスケールする事になります。 (1=100%)
本稿で説明している正規化処理は、頂点マップに対する処理ではなく、頂点に対し割り当てられた複数のウェイト値の合計を 100% にする事を指しています。
最終的に Bone プロパティーで正規化を行なえば、予期せぬ変形を回避出来ても Bone プロパティの正規化を前提にウェイトマップを修正するという事は、モデラーでウェイトマップを修正する度にレイアウトで頻繁に確認する必要があると言う事です。
これはスケルゴン回転ツールで SubDivサーフェイスのBoneスキニングを確認する事が出来なかった従来(Ver 7.x 以前)のワークフローであり、LightWave がキャラクターセットアップの生産性が低いと言われる大きな要因の一つでした。
v8 以降の LW ではスケルゴン回転ツールで SuvDivサーフェイスのスキニング結果を確認する事が出来るため、モデラー上でウェイトマップと造形を詰める方が生産性は高いと考えています。ですので本稿では Bone プロパティの正規化は当てにしません。
ちなみにモデラー上で頂点に対して正規化処理を行なった場合、レイアウトの Bone プロパティで正規化にチェックを入れても何の変化も起きません。
また、ウェイトツールとウェイトシェードビューで視覚的に修正する場合、一つの頂点に割り当てられるウェイト値の合計が100%を超えるため、数値入力にる微調整が行い易いように頻繁に正規化(Normalize)処理を実行します。
具体的な修正アプローチは追々説明します。