アニメーションが想定される生物系モチーフを題材にした3Dモデリングでは、後の展開を考えて造形を行う必要があります。手の造形に関わりの深い LightWave のキャラクターアニメーションに関する機能について説明します。
オブジェクト(メッシュ)変形を実現する 3Dアニメーションの技法には、ラティス変形、カーブ・デフォーム、ソフトボディ(物理演算)など様々な技法がありますが、人間や動物など関節を持つ生物のアニメーションに良く使用される技法には以下のものがあります。
本稿では "手" を題材にしていますが、手は体の中では関節が多く、また露出する可能性の高いパーツでもあります。指を含めた手の動きを表現するには求める映像に応じて、上記、二つの方法を使い分けるのが一般的です。
例えば、何かを掴むなどの動作をクローズアップで映像化したい場合は、Bone によるスキニングの方がメリットが多く、逆に全身がカメラに収まるフレームワークでは、モーフィングにより表現した方がフレーム制御が楽でメリットがあります。必要に応じて使い分ける必要もあります。
本稿で紹介している内容は、これらのアニメーションを想定してモデリングを行なっていることになります。
オブジェクトを構成する全ての頂点それぞれに、異なる位置情報がモーフマップとして記録されているオブジェクトの事をEndoMorphといいます。異なる位置情報が記録された1つ以上のモーフマップにより頂点移動のアニメーションが実現します。
この技法をモーフィングといい、前述したとおりフェイシャル・アニメーションでよく活用される技法です。LightWave で EndoMorph を作成する方法は2つあります。
モデラー上で頂点を移動させてEndoMorph を作成する方法です。
UV MapやVertex Color 、Weight Map など他の頂点マップ情報と同じ手順でMorph Map を作成出来ます。作成したMorph Mapの頂点を編集して作成します。
Bone スキニング時の破綻を回避するJoint Morphで使用するモーフマップを作成する場合は基本的にモデラー側で行ないます。
レイアウトはモーション、レンダリングを行なうアプリケーションですが、このようなモーション制作時に生まれる形状の変化、例えば、Bone や 変位マップ、ダイナミクスなどを利用した形状変化の結果を EndoMorph として保存する事が出来ます。
“エンドモーフ保存” を実行した後は、必ずレイアウトからオブジェクトを保存するようにします。そうする事でモデラー上の Morph Map として保存されます。
モーフィング アニメーションの作成には変位プラグインの Morph Mixer を使用します。また、これらのMorph Map は Bone スキニング時の破綻を回避する方法としても使用できます。
同じく変位プラグインである Joint Morph (Plus) はBone の回転にあわせてモーフィングさせる事で確実なスキニング結果を得る事が出来ます。
本稿では手を題材にしていますが、前述したようにケースによっては手のアニメーションにモーフィングで表現することもあります。
モデラーのスケルゴン回転の結果をモーフマップとして保存する事も出来ますが、確認に手間が掛かるため、レイアウト上でキーフレームを打ち、ポージングした結果を “エンドモーフ保存” で保存したほうが確実に作成できます。
また、フェイシャルアニメーションの場合は頂点を移動させる必要があるため、このような作業はモデラー側でモーフマップを作成し、頂点を移動させて表情のパターンを作る必要があります。
Bone の回転に同期してモーフィングを実現する JointMorph の場合も、フェイシャル・アニメーションと同様にモデラー側で作成するのが基本ですが、レイアウト上で頂点位置を修正し、EndoMorph を保存する方法もあります。
参照 => Lightwave 3D [8] スマートスキニング
上記リンク先で説明されている内容を掻い摘んで説明すれば、ダイナミクスの計算結果の微調整に使用する Edit FX 機能を使って頂点を移動し、結果をエンドモーフとして保存しています。
この方法であれば結果を確認するためにモデラーとレイアウトの間を行ったり来たりする必要がなくなるよ、という TIPS です。
レイアウトの Bone で SubDivサーフェイスに対してBoneスキニングを行なう場合、どのタイミングでメッシュを細分化するかで結果は異なります。
この順番はオブジェクトのプロパティで変更する事が出来ます。
デフォルトでは細分化されたメッシュに対してスキニングが行なわれるため、狙った結果を得る事が出来ません。
“サブディビジョン手順 (Subdivision Order)” は ボーンの後 (After Bones)に変更する必要があります。
つまり、ベースのポリゴンメッシュに対してスキニングした後に細分化(SubDivサーフェイス化)する必要があります。
LigthWave を習得する上でサブディビジョン・サーフェイスのタイミングは重要なポイントになります。Bone スキニングに限らず、変位(Displacement) やダイナミクスなども同様で、どの段階で適用するのか、タイミングを変更する設定が用意されています。
Boneスキニングされるオブジェクトに対しダイナミクスや変位など同時に適用する場合は、相互関係を考えて適切に設定する必要があります。
例えば、ダイナミクス・パーティクルなど細分化されたメッシュに対して行なえば精度を上げる事は出来ても作業が困難になる程、著しくパフォーマンスが低下します。