場合によっては、キャラクタをスキン処理した後で、キャラクタ メッシュを調整したり(たとえば、ポケットなどのディテールを追加する、関節がよりリアルに見えるようにメッシュの解像度を上げるなど)、リグを調整する(たとえば、構造を変更するなど)必要が生じることも考えられます。このレッスンでは、キャラクタをスキン処理し直すことなく、そうした調整を行う方法を紹介します。
また、[スキン ラップ](Skin Wrap)を使用して、メッシュの解像度が異なる似たようなキャラクタにスキンを転送する方法についても説明します。
レッスンの準備:
- クイック アクセス ツールバーで
([ファイルを開く](Open File))をクリックし、\character_animation\skinning\ フォルダに移動してファイル modifications_post_skin.max を開きます。 このシーンには、2 つの修正が施された最終的な Emma キャラクタが含まれています。
1 つ目の修正では、キャラクタ メッシュの上腕にパッチが追加されています。
2 つ目の修正では、大腿のボーンを再分割してリグの関節が追加されています。
メッシュの変更に応じて、[スキン](Skin)モディファイヤでスキンを自動的に調整する:
このシーンのキャラクタを使用してもかまいませんし、各自のプロジェクトにこの手順を用いてもかまいません。
- 必要に応じてリグをエクスポーズしてから、CATParent (リグの下の三角形)を選択して設定モードに戻り、
[モーション](Motion)パネルに移動して
(アニメーション モード)をクリックすると、ボタンのアイコンが
(設定モード)に変わります。 リグが元の位置にスナップされます。
[修正](Modify)パネルに切り替えてキャラクタ メッシュを選択し、[スキン](Skin)モディファイヤをオフにします。
- モディファイヤ スタックで[編集可能ポリゴン](Editable Poly)レベルに移動して、キャラクタ メッシュに変更を加えます。
たとえば、このシーンの肩のパッチを削除した後、[ブリッジ](Bridge)を使用してクリーンな大腿四頭筋で置き換えます。
- [スキン](Skin)モディファイヤを再びオンにして、リグを
(アニメーション モード)に戻します。 [スキン](Skin)モディファイヤによって、新しい頂点が周りの既存の頂点に基づいて自動的に重み付けされます。
- アニメーションをスクラブし、自動で設定された重み付けを必要に応じて微調整します。
リグの変更に応じて、[スキン](Skin)モディファイヤでスキンを自動的に調整する:
ここでは、[スキン](Skin)モディファイヤの特別な機能を使用して、リグの変更をキャラクタ メッシュに影響させるかどうかをコントロールします。
[修正](Modify)パネルに移動して[スキン](Skin)モディファイヤをハイライト表示し、[拡張パラメータ](Advanced Parameters)ロールアウトで[常に変形](Always Deform)をオフにします。
- [スキン](Skin)モディファイヤをオフにして、リグを設定モードに設定します。
- 必要に応じてリグを調整します。たとえば、左右の脚のボーンの釣り合いが取れていない場合などがあります。このケースでは、どちらかの脚のボーンを長く(または短く)してみましょう。
- リグに変更を加えたら、メッシュを選択して[常に変形](Always Deform)をオンにしてから、[スキン](Skin)モディファイヤを再びオンにします。
- CATParent を選択して、アニメーション モードに戻します。
リグを変更したにもかかわらず、キャラクタ メッシュに不要な変形は生じません。
注: ただし、この方法は確実ではありません。たとえば、キャラクタが正しくスキン処理されている状態で、片方の脚のボーンの形状を大幅に変更した場合などは、通常はその脚のスキンを調整する必要があります。このような調整は、たとえばスキン処理が正しく行われていても、リグがその分離された部分のメッシュと合っていないような場合に必要になります。
スキンを別のメッシュに転送する:
[スキン ラップ](Skin Wrap)モディファイヤを使用すると、あるキャラクタのスキン マップを、同じリグを使用する別のキャラクタにすばやく転送することができます。[スキン ラップ](Skin Wrap)モディファイヤは基本的に、位置に基づいてオブジェクト間でアニメーションを転送します。したがって、オブジェクト同士のトポロジが似ている必要はありません。
重要: これらの手順はすべて、必ずフレーム 0 で行ってください。手順の合間にアニメーションをスクラブして確認した場合は、設定を変更したりモディファイヤを適用する前に、必ずフレーム 0 に戻るようにしてください。
-
完成版の Emma のシーン ファイル(configuring_skin_finished.max)を開き、[スキン](Skin)モディファイヤをオフにして、リグを設定モードに設定します。
- Emma のメッシュを選択し、[編集](Edit)メニュー
[クローン作成](Clone)を使用して Emma の新しいコピーを作成します。新しいオブジェクトに Emma_LowRes と Emma_HighRes という名前を付けます。これらのオブジェクトを、それぞれオリジナルの Emma の左側と右側に移動します。
- Emma_HighRes を選択し、[スキン](Skin)モディファイヤを削除して、[メッシュ スムーズ](MeshSmooth)モディファイヤを適用します。[パラメータ](Parameters)ロールアウトの[分割](Separate)の下の[マテリアル](Materials)と[スムージング グループ](Smoothing Groups)をオンにします。
これで、モデルの頂点の数がおよそ 4 倍になります。
- Emma_LowRes を選択し、[スキン](Skin)モディファイヤを削除して、[プロ オプティマイザー](ProOptimizer)モディファイヤを適用します。最適化レベルロールアウトで[計算](Calculate)をクリックしてから、[頂点 %](Vertex %)を 50.0 に設定します。
見た目は変わりませんが、モデルの頂点の数が約半分になります。この解像度は、モバイル 3D アプリケーションや、比較的遠くからしか見ることのないキャラクタに適しています。
[スキン ラップ](Skin Wrap)モディファイヤを使用する場合は、アニメーションを転送するオブジェクト同士が近接している必要があります。まずは、低解像度のモデルから試してみましょう。
- Emma_LowRes を Emma と同じ場所(0,0,0)に移動します。
ヒント: あらかじめ X 軸に沿って移動してある場合は、ステータス バーの[X]フィールドの右横にあるスピナーを右クリックするだけで済みます。
- Emma_LowRes に[スキン ラップ](Skin Wrap)モディファイヤを適用します。[パラメータ](Parameters)ロールアウトで[追加](Add)ボタンをクリックし、H を押して[オブジェクトを選択](Pick Object)ダイアログ ボックスを開いて、Emma オブジェクトを選択します。右クリックして[追加](Add)モードを終了します。
[スキン ラップ](Skin Wrap)モディファイヤの計算が完了するまで、少し時間がかかります。
- ビューポートを右クリックするか、[追加](Add)ボタンをもう一度クリックして[追加](Add)モードを終了します。
- Emma オブジェクトを
選択し、[スキン](Skin)モディファイヤを再びオンにして、リグをアニメーション モードに戻してから、オブジェクトとリグを非表示にします。
- アニメーションを
再生します。完璧なアニメーションが再生されるはずです。 Emma_HighRes についても手順は同じです。ただし、メッシュがより複雑なため、[スキン ラップ](Skin Wrap)モディファイヤの計算にさらに時間がかかります。
作業を保存する:
概要
このチュートリアルでは、多岐にわたる項目について取り上げました。複雑なキャラクタ メッシュをアニメートされたリグに合わせる方法、メッシュとリグの変更に対してスキンを自動的に調整する方法、さらに解像度がまったく異なるキャラクタ間でスキン データを転送する方法を学びました。キャラクタのスキン処理では、曲がった部分の頂点が、モーションに影響する各ボーンに正しく重み付けされているかどうかを確認するという作業がメインになります。この作業では、ディテールに注意を払いながら試行錯誤を繰り返す必要があります。しかし、その苦労に見合う、リアルなすばらしいキャラクタ アニメーションを作成できます。