Face Robot で頭の解析、調整、キャリブレート、アニメートが終了したら、ゲームのエクスポート ツールを使用してゲーム エンジンに書き出すことができます。このツールによってエンベロープおよびボーンをモデル ファイル(.emdl)に書き出します。
ゲームのエクスポート ツールを使用するには、Face Robot の頭モデルが完成した高解像度メッシュである必要があります。このメッシュではジオメトリにしわやひだがすべて組み込まれていること、そのアニメーションを完了していることを確認してください。また、マテリアルがメッシュ上のクラスタではなく頭のメッシュに適用されていることも確認してください。
書き出されるゲーム リグの質は、最初に取り込んだものと同じになります。作成するゲーム モデルでは、パフォーマンスのリアルタイム再生ができ、ゲーム エンジンに取り込む準備ができます。
(左)Face Robot で作成したオリジナルの高解像度の頭
基本的なゲームのエクスポート ワークフローには、次の手順があります。詳細については、実行する内容に応じたセクションを参照してください。
書き出す Face Robot の頭のゲーム用バージョンを作成します。「ゲーム メッシュ、パーツ、UV を選択する」を参照してください。
ゲーム メッシュおよびオリジナルの Face Robot メッシュをニュートラルまたは基本の状態で同じ物理空間で位置合わせします。「ゲーム メッシュ、パーツ、UV を選択する」を参照してください。
[Act(アクト)]パネルの[読み込み/書き出し]タブをクリックし(「高速再生キャッシュ ファイルを保存およびロードする」を参照)、[ゲームのエクスポート - プロットしたボーン](Game Export - Plotted Bones)オプションを選択します。[Game Export(ゲームのエクスポート)]プロパティ エディタが開きます。
[Game Export(ゲームのエクスポート)]プロパティ エディタの[メッシュ](Mesh)ページで、書き出すゲーム メッシュとそのパーツ、さらにオーバーラップしない UV セットを選択します。「エンベロープのボーン ロケータにペイントする」を参照してください。
[エンベロープ](Envelope)ページで、顔のボーン ロケータをペイントし、その他のエンベロープ オプションを設定します。「[エンベロープタイムラインの再サンプリング]オプション」を参照してください。
睫毛の作成ツールを使用して睫毛のリグを構築した場合は、ゲームのリグに転送して書き出すことができます。「睫毛リグを転送する」を参照してください。
アニメーション付きのエンベロープを書き出してから、問題がないか確認します。必要に応じて、エンベロープに戻って問題を解決します。
[法線](Normals)ページで、顔の静止法線マップとストレス法線マップを生成します。「マスクを生成する」を参照してください。
[マスク](Masks)ページで、書き出す法線マスクを生成します。「リアルタイム シェーダを作成する」を参照してください。
[シェーダ](Shaders)ページで、リアルタイム シェーダを作成し、書き出すゲーム メッシュに適用します。「リアルタイム シェーダを作成する」を参照してください。
ゲームのエクスポートを使用するには、Face Robot のオリジナルの頭モデルが完成した高解像度メッシュである必要があります。このメッシュではジオメトリにしわやひだがすべて組み込まれていること、そのアニメーションを完了していることを確認してください。
また、マテリアルがメッシュ上のクラスタではなく頭のメッシュに適用されていることも確認してください。
頭が完成したら、ゲーム用バージョンを作成して書き出す必要があります。
ゲーム メッシュを作成したら、オリジナルのFace Robotメッシュと同じ物理空間にニュートラルまたは基本の状態で位置合わせする必要があります。これは後のエンベロープの転送に影響するため、オリジナルとゲーム メッシュの位置を可能な限り近付ける必要があります。
オリジナル メッシュはアニメートされているため、多少は動きます。したがって、頭の[アニメーション]コンストラクション ヒストリで、まずオペレータをミュートする必要があります。そうすると、ニュートラル ポーズに戻ります。
ゲームメッシュのポイントを選択してから、[モデル]ツールバーの[デフォーム](Deform) [シュリンクラップ](Shrinkwrap)コマンドを使用して、オリジナルの頭に正確に一致するようにします。[最も近いサーフェイス](Closest Surface)オプションを使用します。完了したら、ShrinkWrap Operator をゲーム メッシュのオペレータ スタックから削除します。
完了したら、頭の[アニメーション]コンストラクション ヒストリのミュートを解除して、正しいアニメーション データを使用します。
頭のメッシュの位置を合わせたら、書き出すメッシュ、つまりゲーム メッシュを選択する必要があります。
[Game Export(ゲームのエクスポート)]プロパティ エディタの[メッシュ]ページで、[メッシュのピック](Pick Mesh)ボタンをクリックして書き出すゲーム メッシュを選択します。
[複製の使用](Use Duplicate)ボタンをクリックしてオリジナルの Face Robot メッシュのコピーを作成した場合は、コピーがすでにゲーム メッシュとして選択されています。
[顔のパーツのコピー](Copy Face Parts)ボタンをクリックしてキャラクタの眼球、歯、舌の各メッシュをゲーム メッシュにコピーします。
キャラクタに睫毛メッシュがある場合は、[睫毛](Eyelashes)オプションを選択してこのメッシュをゲーム メッシュにコピーします。
また、ゲーム メッシュ用の UV のセットを選択するか、新しいセットを生成する必要があります。UV は可能な限り不連続性を少なくして、オーバーラップしないようにする必要があります。Face Robot メッシュと同じ UV を再利用する場合は、GATOR を使用して UV をゲーム メッシュに転送することができます。
ロケータをペイントする目的は、ゲーム エンジンに書き出すボーンの位置を定義することです。これらのボーンによってエンベロープを変形します。
オリジナルの Face Robot メッシュにあるロケータをペイントしてから、エンベロープ ウェイトおよびアニメーションをゲーム メッシュに転送します。
口領域など、大きく変形する部分のアンカーの位置でロケータをペイントする必要があります。主なデフォーメーション部分はすべてボーンで覆われるようにします。
A |
眉の内側 |
B |
目の上部 |
C |
目の下部 |
D |
鼻筋 |
E |
鼻の先端 |
F |
鼻腔 |
G |
ほうれい線 |
H |
上唇(マーカー 3 つ) |
I |
口角 |
J |
下唇(マーカー 3 つ) |
K |
顎 |
L |
顎骨 |
M |
頬の膨らみ |
N |
頬骨 |
顔のデフォーメーションを、ボーンの数は最小にして、できる限り正確にキャプチャする必要があります(ゲームで使用されるボーンの数は通常最大で 30)。適切な位置にボーンを配置するには、試行錯誤で何回か繰り返す必要があります。
参照アニメーションまたはライブ アクション ビデオを常に参照して、顔のどの部分が一番よく動いているかを確認します。
[Game Export(ゲームのエクスポート)]プロパティ エディタの[エンベロープ]ページで、[ロケーション](Locations)ボタンをクリックしてボーンのあるマップのペイントを開始します。
ロケータのウェイト マップがすでに作成されている場合は、[読み込み](Import)ボタンをクリックしてブラウザを開き、ウェイト マップを選択できます。
ロケータのペイントに関するヒント](Tips for Painting Locators):
ボーンのフリッピングなどの問題を回避するには、ディテールの細かい部分にはペイントしないようにします。この問題が発生しないように、唇の部分の内側にはペイントしないようにします。
ボーンの回転を調整するには、[ボーンのスピン](Bone Spin)ボタンをクリックして各ロケータの回転を調整します。これにより、エンベロープのフィッティングの問題を回避します。
現在のペイントしたボーンの数がビューポートの右上隅に表示されます(DisplayInfo セット)。作成できるボーンの最大数は、ほとんどのゲームで 30 です。
ペイント ツールの詳細については、「ウェイト マップをペイントする」を参照してください。
フリップブックを作成して、ボーンのフリッピングなどの問題がないか確認します。その後、必要に応じてロケータをもう一度ペイントします。
[階層](Hierarchy) [親の顎](Jaw Parent)ボタンをクリックして、顎のボーン(下顎)によって実行時に変形される顎の周辺の部分をペイントします。顎マップが作成されます。
顎のボーンを適切にペイントすることによって、アニメーション クリップ間の補間の品質を向上できます。顎マップを作成しない場合は、顎はボーンの親になりません。
[顎の親](Jaw Parent)ボタンをクリックすると、ペイント ブラシがアクティブになり、ゲーム メッシュが非表示になるため、オリジナルの高解像度メッシュにのみペイントできます。
[階層](Hierarchy) [首の親](Neck Parent)ボタンをクリックし、首の周辺の部分をペイントして、首のボーンの子になっているスキンの部分を定義します。首の親マップが作成されます。
首の親マップを作成しない場合は、首はボーンの親になりません。
[首の親](Neck Parent)ボタンをクリックすると、ペイント ブラシがアクティブになり、ゲーム メッシュが非表示になるため、オリジナルの高解像度メッシュにのみペイントできます。
オリジナルの高解像度メッシュでボーンを選択して顎および首のマップをペイントしたら、Face Robot によって低解像度メッシュに自動的にエンベロープ ウェイトが設定され、アニメーションが高解像度メッシュから転送されます。
[Game Export(ゲームのエクスポート)]プロパティ エディタの[エンベロープ]タブで、[エンベロープの設定](Envelope Settings)グループのオプションを設定します。「エンベロープ」(「プロパティ リファレンス」)を参照してください。
エクスポートする前に、[<駆動>エンベロープスムージング](<Driven> Envelope Smoothing)のオプションを使用して、目や口の周辺の難しい部分にあるエンベロープをスムーズにする必要があることもあります。
エンベロープのペイントと設定を終了したら、大きな[生成](Generate)ボタンをクリックしてすべての情報をゲーム メッシュに書き出します。
アニメーションが転送されたら、低解像度メッシュ エンベロープのデフォーメーションが適切か確認します。
タイムラインをスクラブするか、アニメーションのフリップブックを作成して低解像度メッシュにフリッピングの問題がないか確認します。フリッピングがある場合は、ロケータが適切に配置されていなかったということです。ロケータを削除するか、ロケータの新しい位置を選択して再度書き出します。
[Game Export(ゲームエクスポート)]プロパティエディタの[エンベロープ]タブで[<生成時>エンベロープタイムラインの再サンプリング](<On Generation> Envelope Timeline Resampling)オプションを選択すると、[エンベロープタイムラインの再サンプリング設定]グループが表示されます。詳細については、「エンベロープ」を参照してください。
エンベロープが特定のアニメーションにフィットしない場合に、リサンプルを使用して品質を向上できます。このオプションは、書き出す対象にアニメーションが関連付けられている場合にのみ使用します。
[エンベロープタイムラインの再サンプリング]オプションは、タイムラインに沿ってフレームごと、ポイントごとに最善のエンベロープのセットを再構築して、結果の組み合わせをフィットすることによって機能します。書き出すゲーム メッシュを、Face Robot メッシュのウェイトの組み合わせに可能な限り近付けることができます。
睫毛の作成ツール(「睫毛メッシュを作成する」を参照)を使用して睫毛メッシュ リグを作成した場合は、[Game Export(ゲームのエクスポート)]プロパティ エディタにあるオプションを使用して、書き出し用のゲーム リグに転送することができます。
[メッシュ]タブで、[顔のパーツ](Face Parts)グループの[睫毛](Eyelashes)オプションを選択してから、[顔のパーツのコピー](Copy Face Parts)ボタンをクリックして、睫毛リグをゲーム リグに転送します。
[エンベロープ]タブで、[エンベロープの生成](Envelope Generation)グループの[エンベロープ](Envelope)オプションを選択してすべてのエンベロープ設定を表示します。
[<生成時>エンベロープタイムラインの再サンプリング](<On Generation> Envelope Timeline Resampling)オプションを選択して、[エンベロープタイムラインの再サンプリング設定]グループを表示します。
Face Robot では自動的にストレス法線マップおよびストレスのない(静止)法線マップが生成され、ランタイム シェーダに接続します。これらのマップはサーフェイス ディテールをすべてオリジナルの高解像度 Face Robot メッシュから取得し、ゲーム メッシュに転送します。法線マップはエクスポートの外観をよくするために生成する必要があります。
最高の品質を実現するには、ストレスの影響を受けたメッシュも生成してから書き出し、任意のペイント プログラム(Autodesk Mudbox、ZBrush など)の一般的なモデリングおよびディテーリング機能を使用して、しわのビジュアル品質を調整します。その後 Face Robot に戻し、ストレス法線マップとして選択して顔の表情の適切な定義を作成します。
[Game Export(ゲームのエクスポート)]ダイアログボックスの[法線]ページで、生成するマップのオプションを選択します。詳細は「法線」を参照してください。
最高の品質を実現するには、ストレスの影響を受けたメッシュを生成してから書き出し、Autodesk Mudbox や ZBrush といったペイント プログラムでディテールを加えることでしわのビジュアル品質を向上します。
その後、Face Robot に戻せば、ストレス法線マップとして使用し、顔の表情の適切な定義を作成できます。
[Game Export(ゲームのエクスポート)]ダイアログ ボックスの[法線]ページで、[ストレスの影響を受けたメッシュ](Stressed Mesh)オプションを選択し、ストレス マップを適用したゲーム メッシュを作成します。
[法線]ページに戻って[カスタムストレスメッシュを使用](Use Custom Stress Mesh)を選択し、ストレス マップから生成された特定のメッシュを選択して使用します。選択しない場合は、現在のストレス マップが使用されます。
(右)ストレス マップの結果を使用して作成された、ストレスの影響を受けたメッシュのバージョンのゲーム メッシュ。この男性の顔はかなり老けて見えます。
マスクはストレス法線マップと静止法線マップのブレンドを調整します。マスクは 1~3 セットの頂点カラー マップに自動的に設定され、それぞれのカラー チャンネルに 1 つのマスク(1 つの頂点カラーマップにつき 3 つのマスク)が含まれるため、領域マスクの数は 3、6、9 のいずれかになります。
マスクは顔の領域変形範囲(「領域変形範囲で作業する」を参照)を統合して、ゲーム エンジン用の領域のセットを小さくします(最大 9)。マスク 1 つで変形範囲のグループを 1 つに相当するようにします。たとえば、額に 1 つ、左右の頬それぞれに 1 つのようにします。
[マスクをアニメート](Animate Masks)オプションを選択してマスクにアニメーションを生成します。アニメーションによって、マスクのどの部分が適切なタイミングでオンまたはオフになり、ストレス法線マップを表示するかが決まります。
[領域マスク]プロパティ セットにあるスライダを使い、領域のアニメーションをコントロールします(下の手順 6 を参照)。
シェーダの[領域マスク](Region Masks)の生成に使用される顔の領域の数を、3、6、9 のいずれかに設定します。どのマスクも 1 度に 3 つの領域をコントロールできます。最高の結果を得るためには、領域数を 9 に設定し、下のように 3 つの領域マスクを作成します。
マスクのオプションをすべて設定したら、大きな[生成](Generate)ボタンをクリックして、選択したマスクを生成します。
Explorer でゲーム メッシュのクラスタの下にマスクとタンジェント オペレータが生成されていることを確認します。
生成されたマスクはシェーダで使用されます。各マスクに、そのマスクによってコントロールされるデフォーメーション領域が 3 つ表示されます。
シェーダが適用されたら、[領域マスクのプロパティセット](Region Masks Pset)を選択して、スライダで操作します。これにより、アニメーションを誇張して法線マップの影響を調整できます。スライダのウェイトを個別にアニメートすることもできます。
ゲームのリアルタイム シェーダを作成してテクスチャを追加できます。このシェーダはゲーム メッシュの頭のマテリアル ノードに適用されます。
[Game Export(ゲームのエクスポート)]プロパティ エディタの[シェーダ]タブで、作成するリアルタイム シェーダの種類(CgFX、HLSL、カスタム OGL)を選択し、[テクスチャスタック]にテクスチャを追加します。各オプションについては「シェーダ」(「プロパティ リファレンス」)を参照してください。
[シェーダ]タブの下部にある[適用](Apply)ボタンをクリックしてゲーム メッシュのマテリアル ノードにリアルタイム シェーダを適用します。指定したテクスチャがシェーダ上の該当するポートに接続されます。
シェーダが適用されたら、[マスク]ページの[領域マスクのプロパティセット](Region Masks Pset)オプションを選択して、スライダで操作します。
しわの強さが十分ではないか、表情が弱い場合は、シェーダを接続した後でより強力なエフェクトを作成できます。[マスク]ページで[領域マスクのプロパティセット](Region Masks Pset)ボタンをクリックして、設定を開きます。FCurve Editor でスライダの F カーブを編集できます。すべて選択して、エフェクト全体を強力にします。