ポリゴン リダクション

 
 
 

ポリゴン リダクションは、ポリゴンの数を減らすことで重いオブジェクトを軽くする処理です。オリジナルの高解像度のシェイプも、実用に耐えるレベルで保持されます。ポリゴン リダクションを使用して、たとえば、ゲーム コンテンツの最大ポリゴン数の条件を満たしたり、背景オブジェクトを簡略化することでファイル サイズの縮小やレンダリング時間の短縮を実現できます。

また、ポリゴン リダクションを使用して、異なる詳細レベル(LOD)でオブジェクトの複数のバージョンを作成することも可能です。

ポリゴン リダクションでは、エッジがポイントに集約されます。エッジはその「エネルギー」に従って選択されます。このエネルギーとは、エッジの長さや向きなどの条件に基づく測定基準です。さらに、処理によって特定の特徴(たとえば四角形ポリゴンなど)が保持される範囲を制御できるオプションもあります。

   

ポリゴン リダクションを適用するには

  1. ポリゴン メッシュ オブジェクト、ポリゴン クラスタ、またはポリゴンを 1 つ以上選択します。

  2. [モデル]ツールバーから[修正](Modify) [ポリゴンメッシュ](Poly. Mesh) [ポリゴンリダクション](Polygon Reduction)を選択します。.

    ポリゴンが既定の設定で削減され、[Polygon Reduction Op]プロパティ エディタが開きます。設定を調整する方法については、この後のセクションを参照してください。

削減量を制御する

[Polygon Reduction Op]プロパティ エディタの[削減量](Reduction Amount)セクションにあるオプションでは、削減量を指定します。パーセント(比率)で指定するか、頂点や三角形の最終的な数で指定できます。削減量はアニメート可能で、たとえば、式を使用して、カメラからの距離に基づいて削減量をコントロールすることもできます。

これらの値はあくまで目標の値です。さまざまな原因により、オペレータが指定の削減量を正確に達成できない場合もあります。たとえば、オリジナル オブジェクトのポリゴン数が奇数であれば、50% の削減を厳密に達成することは不可能です。

さらに、パラメータ マップを使用するオプションもあります。たとえば、ウェイト マップを使用してウェイトをペイントして、多く削減するエリアと少し削減するエリアを区別できます。

注:

削減量はアニメート可能ですが、アニメートする場合は注意が必要です。すべてのトポロジ オペレータにあてはまることですが、トポロジ オペレータのパラメータがアニメートされている場合にコンストラクション ヒストリの上位に別のオペレータがあると、問題が発生する可能性があります。

アニメートされたトポロジオペレータの詳細については、「トポロジの変更に関する注意事項」を参照してください。

削減量を設定するには

  1. [Polygon Reduction Op]プロパティエディタの[一般]タブで、[単位]を希望の値に設定します。

    • [割合](Ratio):[割合](Ratio)スライダを使用して、元のポリゴン数の削減量をパーセントで設定できます。

    • [最終的な頂点の数](Final vertex count):[頂点の数](Vtx Count)スライダを使用して、結果の頂点の数を設定できます。

    • [最終的な三角形の数](Final triangle count):[三角形の数](Tri Count)スライダを使用して、結果の三角形(テッセレーション後のポリゴン)の数を設定できます。

  2. 削減量のターゲットを設定するには、対応するスライダを使用します。

         

    削減量を増やすと、エネルギーが最も低いエッジが集約され、その後次にエネルギーが低いエッジが集約されます。その後もエネルギーが低い順にエッジが集約されていきます。

パラメータ マップを使用して特定エリアにおける削減をコントロールするには

  1. ポリゴンリダクションを適用する前に、ウェイトマップまたは別のタイプのパラメータマップを作成します。詳細については、「パラメータ マップ」を参照してください。

    パラメータ マップを使用して[ポリゴンリダクション]オペレータを適用するためには、マップを含むクラスタが存在している必要があります。既にポリゴン リダクションを適用している場合は、マップを作成する前にオペレータを無効にします。これは、コンストラクション ヒストリにおいて、ウェイト マップを含むクラスタが[ポリゴンリダクション]オペレータより下位に作成されるようにするためです。

    同様に、クラスタに対してポイントの追加や削除を行ったり、さらにウェイト ストロークをペイントする場合も、最初に[ポリゴンリダクション]オペレータを無効にします。

    スタック内のオペレータを無効化および再有効化する方法の詳細については、「上位スタックを無効にする」を参照してください。

  2. ポリゴン リダクションを適用します。または、[ポリゴンリダクション]オペレータを無効にしている場合は再度有効にします。

  3. [Polygon Reduction Op]プロパティ エディタの[一般]タブで、[乗数](Multiplier)スライダの右側にある接続アイコンを右クリックして[接続](Connect)を選択します。

  4. ポップアップ エクスプローラが表示されたら、該当するクラスタを展開して希望のパラメータ マップを選択します。

    [反転](Invert)がオンの場合は、マップの不透明度が低い領域が、不透明度の高い領域より削減される傾向があります。ウェイトが 1 の領域は最後に削減されます。削減量が非常に多くてウェイト マップのその他の領域からこれ以上削減できないという状況でない限り、ウェイトが 0 の領域は基本的に削減から保護されます。

    マップの効果を反転して、不透明度の低い領域を保護し、高い領域が削減されるようにする場合は、[反転](Invert)をオフにします。

    ウェイト マップを接続した後でウェイト マップ上にさらにストロークをペイントする場合は、最初に[ポリゴン リダクション]オペレータを無効にする必要があります。

    パラメータマップの操作の詳細については、「パラメータ マップ」を参照してください。

  5. 必要に応じて、[乗数](Multiplier)スライダを調整して、エッジが集約される可能性にウェイト マップの値をどの程度影響させるかを調節することができます。

スムーズ トランジションを使用する

[スムーズ トランジション](Smooth Transitions)オプションは、[Polygon Reduction Op]プロパティ エディタの[一般]タブと[LOD コントロール]タブの両方で使用できます。このオプションがオンの場合は、削減量を増やすと、エッジが縮小されてから集約されます。さらに、対応するプロパティ(テクスチャ UV や頂点カラーなど)も補間します。これにより、削減量をアニメートするときにオブジェクトが段階的にモーフィングされ、エッジを集約する際にオブジェクトのシェイプやテクスチャで突然跳ね上がるのを回避できます。

これは特に、[平行なエッジ ループの削減](Reduce parallel edge loops)(「四角形を保持する」を参照)やLOD(「LOD を生成する」を参照)と組み合わせた場合に有用です。

     

[スムーズ トランジション]: エッジが徐々に縮小されてから集約されます。

シェイプを調整する

[Polygon Reduction Op]プロパティ エディタの[一般]タブにあるいくつかのオプションにより、オブジェクトのディテールおよびシェイプに対するリダクションの作用をコントロールできます。

  1. [シャープさ](Sharpness)は、小さくてシャープなディテールを保持するのか、大きなシェイプを保持するのか、というバランスをコントロールします。値が低いほど、オブジェクトの全般的なシェイプに対して相対的に小さなディテールが集約される可能性が高くなります。値が高いほど、それらの小さなディテールが保持されます。

         

    元となるオブジェクト。

    [シャープさ]を小さくすると、最初に短いエッジが除去される傾向が強くなります。

    [シャープさ]を大きくするほど、指やつめのような微細なディテールが保持されます。

  2. オブジェクトをリダクションすると通常は縮小されます。[ボリュームの保持](Preserve volume)では、オブジェクトのボリュームが変化しないように頂点が再配置されます。エッジが 1 つのポイントに集約される場合は、二面角ボリュームの差が再計算され、ポイントがその法線に沿って移動し補正されます。これは、オブジェクトのシルエットを維持したり、指や手足などの突出部が失われるのを防ぐために役立つ場合があります。ただし、特に削減数が多い場合はオブジェクトのシェイプがゆがむ可能性があるため、スライダを使用して良好なバランスを得るようにしてください。

         

    [ボリュームの保持]を使用しないと、削減されたオブジェクトは縮小されます。

    適度な値にすると、オブジェクトのシルエットが保持されます。

    値が大きすぎると、オブジェクトが歪んでしまいます。

    [ボリュームの保持](Preserve volume)ではポイントが移動するため、エッジの長さが変わり、その後のエッジが集約される順序に影響します。

四角形を保持する

四辺形ポリゴン上でエッジが集約されると、三角形が作成されます。[Polygon Reduction Op]プロパティ エディタの[一般]タブにあるいくつかのオプション(これらのオプションは相互に排他的です)を使用すると、2 つの方法で、最終結果にできるだけ多くの四角形を残すことができます。

[平行なエッジ ループの削減](Reduce parallel edge loops)では、新たに非四角形が作成されることはありませんが、ジオメトリによっては一部のオブジェクトがゆがむ可能性があります。[四角形ラインの保持](Preserve quad lines)にはスライダがあり、これを調整してゆがみを最小化できます。ただし、その代わりに非四角形が作成されます。どのような組み合わせが最良の結果につながるのかを確認するには、その都度さまざまな設定を試してみる必要があります。

  • [平行なエッジ ループの削減](Reduce parallel edge loops)では、個々のエッジを 1 つずつ集約する代わりに、平行エッジのループ全体がまとめて集約されます。

       

    平行なエッジループの削減

    平均エネルギーが最も低いエッジ ループが最初に集約されます。

    [平行なエッジ ループの削減](Reduce parallel edge loops)[対称を維持](Enforce symmetry)と互換性がありませんが、正確に対称なオブジェクトについては、対称性の保持が試みられます。

  • [四角形ラインの保持](Preserve quad lines)は、結果として残される四角形の量を相対的にコントロールします。エネルギーが最も低いエッジが集約された後、次にそのエッジに並行なエッジが(それらのエネルギーが低下しているかのように)一時的に集約される可能性があります。

    この効果の強さはスライダでコントロールできます。値を大きくするほど、多くの四角形が最終結果に残ります。値を 0 にすると、このオプションをオフにするのと同じになります。

       

    [四角形ラインの保持]の値を小さくすると、多数の三角形が作成されます。

    [四角形ラインの保持]の値を大きくすると、四角形が多く作成されます。

対称を維持する

ポリゴン リダクションの処理において対称性を維持するには、対称マップを使用するかどうかで 2 通りの方法があります。

  • 対称マップを使用しない場合、削減オペレータは独自の内部メソッドを使用して対称的なエッジを判別します。これにより、同じ指の 2 つの面の間などローカルな対称性や、反対側の手の指の間などグローバルな対称性を判別できます。

    ただし、複数の対称的な平面があるオブジェクト(球など)の場合は、内部メソッドによって多数の対称的なエッジのうち 1 組が任意に抽出されます。そのような場合は対称マップを使用するとよいでしょう。

  • 対称マップを接続すると、オペレータではマップを使用してどのエッジが対称かを判別します。これは、オブジェクトがその対称ベース シェイプでない場合に便利です。また、複数の対称的な平面が存在する場合のあいまいさが解消され、計算が不正確になりがちでも対称的なエッジを必ず見つけることができます。

    ポリゴンの削減を適用する前に対称マップが存在しなければなりません。

いずれの場合も、オペレータは、一方のエッジを集約した後で自動的に対称エッジを集約し、続いてその次にエネルギーが少ないエッジの処理に進みます。

対称マップを使用せずに対称を維持するには

  1. [Polygon Reduction Op]プロパティ エディタの[一般]タブで、[対称を維持](Enforce symmetry)をオンにします。

    対称マップを使用しない場合は、[ポリゴン リダクション]オペレータが独自の内部メソッドによって、どのエッジが対称かを判別します。

  2. 必要に応じて、[許容レベル](Tolerance level)を調整できます。この許容範囲は、対称エッジ間のエネルギー差の最大値になります。対称エッジのエネルギーの差が許容レベルよりも大きい場合、そのエッジは自動的に集約されません(ただし、そのエッジ自体のエネルギーによっては、以降のプロセスで集約される可能性があります)。

対称マップを接続するには

  1. ポリゴン リダクションを適用する前に、オブジェクトを選択し、任意のツールバーから[取得](Get) [プロパティ](Property) [対称マップ](Symmetry Map)を選択して対称マップを作成します。

    この対称マップは、[ポリゴン リダクション]オペレータを適用する前に存在している必要があります。既にポリゴン リダクションを適用している場合は、対称マップを作成する前にオペレータを無効にします。これは、コンストラクション ヒストリにおいて、対称マップが[ポリゴンリダクション]オペレータより下位に作成されるようにするためです。

    スタック内のオペレータを無効化および再有効化する方法の詳細については、「上位スタックを無効にする」を参照してください。対称マップの詳細については、「対称マップを適用する」を参照してください。

  2. ポリゴン リダクションを適用します。

  3. [対称マップを使用](Use symmetry map)接続アイコンを右クリックし、[接続](Connect)を選択します。

  4. ポップアップ エクスプローラが開いたら、該当するクラスタを展開して希望の対称マップを選択します。接続アイコンが赤で表示され、マップが接続されていることが示されます。

    対称マップを接続解除する場合や別の対称マップを接続する場合は、[対称マップを使用](Use symmetry map)接続アイコンを再度右クリックして[接続解除]を選択します。マップが接続されていない状態になると、接続アイコンが灰色になります。

注:対称マップを使用している場合は、[対称を維持](Enforce symmetry)をオンにする必要はありません。対称マップが接続されている場合は常にこのオプションも使用されます。

特徴を保持する

[Polygon Reduction Op]プロパティ エディタの[特徴の保持]タブにあるいくつかのオプションは、リダクション処理において特定の特徴を保持するのに役立ちます。

特定の条件に従ってエッジを保持するには

[保持](Preserve)の各スライダを使用して、以下の条件と合致するエッジを保持するように優先度をコントロールできます。

  • [境界](Boundaries): 単一のポリゴンでのみ共有されるエッジ。

  • [入力クラスタ境界](Input cluster boundaries): ポリゴン リダクションを適用したポリゴンまたはポリゴン クラスタの境界(ポリゴン リダクションをオブジェクト全体に適用していない場合)。

  • [ハード エッジ](Hard edges):[修正](Modify) [コンポーネント](Component) [マーク ハード エッジ/頂点](Mark Hard Edge/Vertex)でハード エッジとしてマークされているエッジ。

  • クリースは、[修正](Modify) [コンポーネント](Component) [エッジ/頂点クリース値の設定](Set Edge/Vertex Crease Value)を使用してクリースの値が設定されているエッジです。

  • [マテリアル境界](Material boundaries): ローカル マテリアルを持つポリゴン クラスタの境界。

  • [プロパティ不連続性](Property discontinuities): テクスチャ UV、ユーザ法線、または頂点カラー([CAV])プロパティにおけるブレーク。ユーザ データは考慮されません。

スライダを最大値に設定すると、対応するエッジが完全に維持され、オペレータが[一般]タブで設定された削減数に達するのを回避できます。値を 0 に設定すると、ポリゴンを削減する際に基準がまったく考慮されません。チェックボックスをオフにすることは、値を 0 に設定することと同じです。

特定の頂点を保持するには

  1. ポリゴン リダクションを適用する前に、保持するポイントを含むクラスタを作成します。

    このクラスタは、[ポリゴン リダクション]オペレータを適用する前に存在している必要があります。既にポリゴン リダクションを適用している場合は、クラスタを作成する前にオペレータを無効にします。これは、コンストラクション ヒストリにおいて、クラスタが[ポリゴンリダクション]オペレータより下位に作成されるようにするためです。

    同様に、クラスタに対してポイントの追加/削除を行う場合も、最初に[ポリゴンリダクション]オペレータを無効にする必要があります。

    スタック内のオペレータを無効化および再有効化する方法の詳細については、「上位スタックを無効にする」を参照してください。

  2. ポリゴン リダクションを適用します。または、[ポリゴンリダクション]オペレータを無効にしている場合は再度有効にします。

  3. [Polygon Reduction Op]プロパティ エディタの[特徴の保持]タブで、[接続された頂点クラスタ](Connected vertex cluster)接続アイコンを右クリックして[接続](Connect)を選択します。

  4. ポップアップ エクスプローラが表示されたら、希望のクラスタを選択します。接続アイコンが赤で表示され、クラスタが接続されていることが示されます。

  5. [接続された頂点クラスタ](Connected vertex cluster)スライダを使用して、接続されたクラスタの頂点を保持するよう優先度を設定します。

    他のプロパティと同様に、スライダを最大値に設定すると、対応するエッジを完全に保持できます。また、[一般]タブで設定されている削減量にオペレータが到達するのを防ぐことができます。値を 0 に設定すると、ポリゴン リダクションにおいて接続されている頂点が考慮されなくなります。チェックボックスをオフにした場合は、値を 0 に設定した場合と等価です。

    クラスタを接続解除する場合や別のクラスタを接続する場合は、[接続された頂点クラスタ](Connected vertex cluster)接続アイコンを再度右クリックし、[接続解除]を選択します。クラスタが接続されていない状態になると、接続アイコンが灰色になります。

特定の属性のリダクション処理を最適化するには

[属性の最適化](Optimize for attributes)のスライダを使用すると、[UV のウェイト]、[カラーのウェイト]、[ウェイト マップのウェイト]、[ユーザ法線のウェイト]などの他のプロパティとの値の差を考慮に入れて、リダクション処理にバイアスをかけることができます。値が 0 の場合は、削減するエッジを検討する際に属性が無視され、値が 0 以外の場合は、エッジのジオメトリック エネルギーとともに考慮されるウェイト付けされた優先度が設定されます。

既存の頂点の位置を使用するには

通常はエッジが集約される際に、そのエッジの中点に新しい頂点が作成されます。ただし、[スムーズ]プロパティ エディタの[特徴の保持]タブで[既存の頂点位置使用](Use existing vertex positions)が有効になっている場合は、エッジはその 2 つのエンド ポイントのいずれかに集約されます。つまり、削減されるオブジェクト内の各ポイントの位置は、削減されないオブジェクト内の 1 つのポイントと共有されます。これは、たとえば、複数のジオメトリのバージョンを書き出して、属性を補間しないエンジンで使用する場合などに便利です。

このオプションを使用する場合は、[スムーズ]プロパティ エディタの[一般]タブで[ボリュームの保持](Preserve volume)を 0 に設定する必要もあります。そうしないと、エッジが集約された後にポイントが移動し、位置が対応しなくなるためです。

また、エッジが対称平面を横切っている場合は、[既存の頂点位置使用](Use existing vertex positions)によって対称性が失われることにも注意してください。

LOD を生成する

[Polygon Reduction Op]プロパティ エディタの[LOD コントロール]タブでは、詳細レベルを変えてオブジェクトの複数バージョンを作成できます。オペレータによって各バージョンごとにジオメトリが事前に計算され、その結果がキャッシュされます。これには以下のような利点があります。

  • 削減量をアニメートした場合に、時間を要する再計算を回避できます。

  • 個々の LOD の間のトランジションをスムーズにし、エッジを個別に集約した場合に起こる、テクスチャが突然ポップするなどのアーティファクトを回避できます。

  • 同一オブジェクトから LOD の異なるさまざまなバージョンをあらかじめ作成することができます(ゲーム コンテンツなどの用途に有用です)。

LOD を有効化する

  1. [Polygon Reduction Op]プロパティ エディタの[LOD コントロール]タブで、[LOD 使用](Use LODs)をオンにします。

  2. [設定](Settings)を調整して削減量をコントロールします。

    • [LOD 毎の削減比率](Reduction ratio per LOD)は、各 LOD ごとに連続的に適用される削減率です。たとえば、この値が 50 の場合、最初の LOD での削減率は 50%、2 番目の LOD での合計削減率は 75%(残りのポリゴンの半分)、3 番目の LOD での合計削減率は 87.5% といった具合です。

    • [最大比率](Max ratio)は、総削減量の最大値を設定するクランプです。この値によって、[一般]タブで設定された削減数が上書きされ、削減数が多い場合にオブジェクトが変形しすぎるのを回避できます。

LOD をコントロールする

どの LOD を現在使用中の LOD とするかをコントロールするには、2 つの方法があります。

  • [LODステージでコントロール](Control by LOD Stage) - [有効](Activate)がオフの場合は、[Polygon Reduction Op]ノードの[一般]タブで[削減量](Reduction Amount)を調整します。削減量に最も近い LOD が使用されます。[スムーズトランジション](Smooth transitions)がオンの場合は、分散した LOD の範囲に収まる削減数が、各レベル間でモーフィングされます。

  • [LODステージでコントロール](Control by LOD Stage) - [アクティブ](Activate)がオンの場合は、[LODステージ](LOD Stage)を使用してLODを直接指定します。これは、LOD をゲームのコンテンツなどの目的で書き出す場合に特に便利です。

削減量を使用して LOD をコントロールするには

  1. [LOD]を有効にし、[LOD ステージでコントロール > アクティブ](Control by LOD Stage - Activate)をオフにします。

  2. 必要に応じて、[Polygon Reduction Op]プロパティ エディタの[一般]タブまたは[LOD コントロール]タブで、[スムーズ トランジション](Smooth transitions)をオンにします。

    • このオプションをオンにすると、削減量がレベル間で変動する場合に、オブジェクトが LOD 間でスムーズにモーフされます。

    • このオプションをオフにすると、削減量が変化したときに、ジオメトリは最も近い LOD に急にスナップされます。

    また、[トランジション サイズ](Transition size)を使用すると、モーフが行われる間隔を LOD 間の間隔の比率に制限することができます。

  3. [一般]タブの[削減量](Reduction Amount)を調整します。

LOD を直接コントロールするには

  1. [LOD]を有効にし、[LOD ステージでコントロール]セクションの[有効](Control by LOD Stage - Activate)をオンにします。

  2. [LOD ステージ](LOD Stage)を調整して[LOD]を指定します。ステージの意味は、[スムーズ トランジション](Smooth transitions)がオンなのかオフなのかによって異なります。

    [スムーズトランジション](Smooth transitions)がオフの場合:

    • [0]: 削減なし

    • [1]: 第 1 レベルの削減

    • [2]: 第 2 レベルの削減(3 以降も同様)

    [LOD ステージでコントロール]([スムーズ トランジション]がオフの場合)

       
         

    ステージ 0 ジオメトリが削減されていない。

    ステージ 1 ジオメトリが削減されている。

    ステージ 2 さらにジオメトリが削減されている。

    [スムーズトランジション](Smooth transitions)がオンの場合:

    • [0]: 削減なし

    • [1]: オブジェクトは削減されず、削減の第 1 レベルまでモーフされます。エッジの長さはゼロに縮小されますが、一致するポイントはマージされません。頂点の数はレベル 0 と同じです。

    • [2]: 一致するポイントがマージされた後の、第 1 レベルの削減

    • [3]: 第 2 レベルの削減までモーフされた第 1 レベルの削減(4 以降も同様)

    [LOD ステージでコントロール](Control by LOD Stage)([スムーズ トランジション](Smooth transitions)がオンの場合)

       
         

    ステージ 0

    ジオメトリが削減されていない。

    ステージ 1

    ステージ 0 と同数のポイント。ただし、ステージにモーフ。

    ステージ 2

    ジオメトリが削減されている。