XGen ガイド補間方法

XGen の補間は、ディスクリプションでガイド補間を使用するときに理解しておくべき有用な概念です。このセクションでは追加情報として、ガイドの使い方、XGen がプリミティブの位置を計算する方法、および補間アルゴリズムを使用してシェイプを作成する方法を記載しています。

プロセス

ガイドを配置する場合は、次の点に注意することができます。
  • コントロールを追加したい場合は、新しいガイドを追加します。プリミティブをガイドで囲むのは良い方法です。
  • スプライン プリミティブを使用するときに、モディファイアの CV 数(Modifier CV Count)を、ガイド シェイプをキャプチャするのに十分な高い値に設定します。

スプライン プリミティブを使用するときに、すべてのガイドを異なる CV 数に設定することができます。また、ガイドから CV を削除したり、数を増やして再構築することができます。必要な場所では多くのガイドを使い、必要でない場所では少なくします。

必須ではありませんが、ガイドの配分を(少なくともローカルでは)均一に維持することをお勧めします。プリミティブの境界の周りにガイドが配置されるようにします。ガイドの濃い線は必要ありませんが、ガイドの外側にプリミティブを生成しようとする場合、XGen では、ガイドを補間する代わりに補外する必要があります。ここで返される結果の品質は低く、一般的により困難な作業になります。
注: 何もないパッチがある場合、これは、配置されたガイドによって影響範囲が形成されて、サーフェスのその領域でガイドがオーバーラップしないことが原因です。何もないパッチは、ガイドが不規則すぎたり、少なすぎたりする場合に発生する可能性があります。ガイドをさらに追加してください。

隣接関係

次のイメージは、ガイドの位置のコレクションを示します。

XGen アルゴリズムでは、ガイドによって定義される領域を分割するボロノイ エッジを検出することで、各ガイドのすべての隣り合わせが最初に判定されます。
注: ボロノイは通常 2D で定義されるため、これは本当の意味でのボロノイではありませんが、概念的には同じ考え方です。

XGen では、フェースの隅の 4 つのポイントから始めて、どのガイドが最も近いかを評価します。すべてのガイドを評価した結果が同等な場合は、そのフェースで特に扱う必要があるものはなく、それ以上の処理も必要ありません。4 つのガイドのいずれかが異なって評価される場合、ボックスは 4 つに分割され、評価が繰り返されます。XGen で十分な「解像度」に達するまで、ローカル ガイドの密度に基づいてボックスの分割が繰り返されます。これらの最終的な 4 つのポイントで検出されたガイド値が隣り合わせを決定します。異なる 2 つのポイントは、これらのガイドの領域を分割するボロノイ エッジの異なる側面と同等になるため、隣り合わせとなります。

隣り合わせ同士が特定されると、XGen は、1 つのガイドからその隣り合わせのガイドにスイープを作成し、それらの間の距離を補間することで、各ガイドの周囲にガイドの影響範囲の領域を定義します。これらの距離が、ガイドの周囲にガイドの影響範囲の半径を形成します。これは、ガイドの三角形化ではないことに注意してください。このアプローチでは、2 つのガイドを接続するエッジは取得できないため、プリミティブのシェイプを制御するガイドは 2 つだけになります。代わりに、同じ領域に沿ってオーバーラップする範囲があるため、その境界全体にわたって、隣接するガイドをスムーズにブレンドできます。

次のイメージは、ガイドの影響範囲のいくつかの例を示します。

各ガイドに格納されているガイドの影響範囲の情報は、スイープ角度と半径のコレクションで、Maya では単一の文字列アトリビュートとして表示されます。これは、XGen コレクション ファイル内でも表示することができます。ガイドの影響範囲を編集することはできませんが、理想的な結果が得られるまでガイドを追加することができます。

ここに示す図は、ガイドによってコントロールされる領域が、XGen によってどのように識別されるかを示します。ガイド付近を探し、その周囲を囲むガイドを結ぶ仮想のフェンスを定義します。

アクティブなガイド

補間ワークフローには 3 つの部分があります。
  • アクティブなガイドを判定する
  • ガイドにウェイトを割り当てる
  • それらのウェイトを補間に使用する

例として、イメージの黄色い x 印で示された位置にプリミティブを作成するとします。

XGen は、作成するプリミティブがその範囲内に含まれる、ガイドの影響範囲のシェイプを計算して、使用するガイドを特定します。これには、重要なものに集中できるようにガイドの大部分を除外する、最適化の技術が備わっています。XGen では、曲率(つまり、モデルの反対側)と領域マップに基づく方法でも、ガイドが除外されます。この例で、XGen は、赤、青、および緑のガイドがアクティブにしておく必要があるガイドであると判定します。

ウェイト

XGen では、ガイドの影響範囲を使用して、ガイドからプリミティブまでに形成されるレイを交差させることで、これらのガイドのウェイトを決定します。このイメージは、プリミティブのウェイトが計算されるところを示します。

XGen では、境界からの距離がそのガイドのウェイトとして使用されるという点に注意してください。このため、ガイドの影響範囲の境界に近づくほど、そのガイドのウェイトが低くなります。逆に、ガイドの影響範囲の境界から離れるほど、そのウェイトが大きくなります。

すべてのガイドのウェイトが計算されると、プリミティブのシェイプを計算するのに使用できるように、ウェイトが正規化されます。

シェイプの補間

XGen でアクティブなガイドが識別されると、それらのガイドを補間することができます。アクティブなガイドはそれぞれ、プリミティブの位置に変換されます。必要に応じて、XGen では各ガイドを同じ数の CV (スプライン プリミティブなど)に再構築します。各 CV について、XGen では、前に計算したウェイトを使用するガイドの加重平均を使用します。

このプロセスは、相対的な補間と呼ばれます。相対的な補間は、ガイドの配置が最小限の場合でも、ファー、草、およびそれに類するものに適しています。相対的な補間は、ガイドの数が少し多い場合のヘアにも適しています。頭部モデルに 10 個のガイドのみを使用して良好な結果を期待することはできないと、認識することが重要です。相対的な補間の方法では、ガイド間のサーフェスの曲率を非常に小さくする必要があります。

少し実験をしてみると、ガイドの適切な密度を見つけるのに役立ちます。この密度は、XGen の旧バージョンで使用していたものよりも高くなることがありますが、より予測しやすく、直感的になります。

ブレンディング

ファーをグルーミングするときに、XGen でガイドを正確に一致させるため、補間が正確過ぎてスムーズな外観が得られない場合があります。このような状況は、より適切な方法としてガイドを追加した場合でも発生することがあります。しかし、ファーの場合は、よりスムーズな外観を維持するために、多くのガイドを管理したくない場合があります。このような場合は、ブレンド(Blend)アトリビュートを使用します。ブレンド(Blend)アトリビュートを使用すると、ガイドの影響範囲を拡大することができ、それらの隣り合わせとブレンドすることができます。

ガイドのコレクションを選択し、それらすべてのブレンドの値を 0 より大きい値に設定した場合は、それらのガイドはその隣り合わせにブレンドされ、領域がスムージングされます。このアトリビュートはガイドごとに実行され、要素全体で良い結果になるように値を設定できます。たとえば、ある程度の鮮明度を維持するために、フェースではブレンド(Blend)アトリビュートを 0.2 に設定し、外観をソフトにするために、それ以外の場所では 0.8 に設定することができます。次に、フェースとボディの間の領域を選択し、トランジション領域をスムーズにするために値を 0.5 に設定します。

ビジュアライザ

XGen には、ガイドの影響範囲を視覚化するために使用できるツールがあります。プレビュー、レンダー、またはエクスポート後に、XGen では、そのディスクリプションのすべての接続情報が格納される ${DESC} フォルダに connectivity.xgc ファイルが作成されます。XGen では、接続または隣り合わせの情報のいずれかが内部的に使用されることはありませんが、この情報はシミュレーション用に役に立つだけでなく、デバッグおよびビジュアライゼーションにも有用です。

ガイドの影響範囲と接続をガイドごとにそれぞれのカラーで描画するためにこのファイルを使用するには、ガイド > ガイドの影響範囲を表示(Guide > Display Guide Range-of-Influence)をクリックします。既定では、ディスクリプションの完全な接続が表示されますが、必要な場合は、ガイドを選択して表示を制限することができます。