OpenSubdiv を使用して作業するには

このトピックでは、はじめにオブジェクトをスムージングする OpenSubdiv モディファイヤを使用する方法と、基本オブジェクトのレベルでエッジと頂点の折り目を導入する方法を示します。その後、CreaseSet モディファイヤがどのように OpenSubdiv と連携してモデルのサブオブジェクトの異なる折り目の値の管理タスクを容易にするのかについて説明していきます。

OpenSubdiv を使用して作業を開始します。

  1. スムージングを適用するモデルを作成またはロードします。

    最良の結果を得るには、スムージング エフェクトが十分得られるように、なるべく鋭角(90 度未満)にする必要があります。次の図は、適切な例を示します。

  2. モデルに OpenSubdiv モディファイヤを適用します。

    [反復](Iterations)の値が既定の 1 である場合は、スムージングが現状の低解像度のままで表示されます。これは、モディファイヤの効果を評価する際に、メッシュの再分割を表示するために役立ちます。

  3. シェーディング ビューポートをアクティブにします。[エッジ面](Edged Faces)切り替えがオフの場合、[エッジ面](Edged Faces)をアクティブにするには、F4 キーを押します。

    最初の反復で、元のオブジェクトの各四辺形ポリゴンが 4 つのポリゴンに再分割されます。

    スムージングの品質が向上させるには、[反復](Iterations)の値を大きくします。

  4. 値を 2 に増やすには、[エッジ面](Edged Faces)をオフにして、OpenSubdiv モディファイヤの[一般コントロール](General Controls)ロールアウトで、[反復](Iterations)スピナーの上矢印をクリックします。

    メッシュ トポロジが細かく分割されるほど、モデルのサーフェスが顕著にスムーズになります。

  5. 5 に達するまで、[反復](Iterations)の値を大きくします。

    この時点で[エッジ面](Edged Faces)をもう一度オンにした場合、モデルが非常に均一に再分割されるのを確認できます。大規模で複雑なモデルでは、メッシュの解像度を高くすると、ビューポートの反応が遅くなる可能性があります。このとき、十分な能力を備えたディスプレイ カードがインストールされている場合は、[操作モード](Operating Mode)設定を[GPU 表示](GPU Display)に切り替えることができます。これにより、グラフィック カードにジオメトリ処理がオフロードされ、ビューポートのフィードバックが大幅に向上します。

    一般的には、[反復](Iterations)の値を 5 にすれば、最小限の折り目を必要とするオブジェクト、または折り目が不要なオブジェクトに対し、十分なスムージングを得ることができます。既定では、ビューポートとレンダリング時の両方のスムージングに適用されます。

    さらにスムージングが必要な場合は、[レンダリングの反復](Render Iterations)に個別の値を設定することができます。その効果はレンダリング出力のみに表われます。次のタスクでは、これについて説明します。

[編集可能ポリゴン](Editable Poly)設定を使用して、折り目を適用します。

    この手順は、前の手順の続きです。ここでは、[編集可能ポリゴン](Editable Poly)レベルで折り目を設定します。OpenSubdiv モディファイヤはこれらの設定を認識し、スムージングされたサーフェスにシャープなエッジを追加するために使用します。

  1. オブジェクトから OpenSubdiv モディファイヤを削除します。モデルのベース レベルが[編集可能ポリゴン](Editable Poly)ではない場合、または[ポリゴンを編集](Edit Poly)モディファイヤが適用されていない場合は、編集可能ポリゴン オブジェクトに変換します。

    頂点およびエッジ サブオブジェクト レベルで[折り目](Crease)設定にアクセスできます。

  2. OpenSubdiv モディファイヤを再適用します。[反復](Iterations)は既定値の 1 のままにします。
  3. モディファイヤ スタックで、[編集可能ポリゴン](Editable Poly)エントリの[エッジ](Edge)サブオブジェクト レベルにアクセスし、[最終結果を表示](End Result On/Off Toggle)をオフにします。

    ベースのスムージングされていないジオメトリがビューポートに表示されるようになりました。この結果、折り目のエッジを選択しやすくなります。

  4. 折り目が必要なエッジを選択します。
    ヒント: 隣接するポリゴン間の角度が大きいほど、エッジの折り目の結果がより明確になります。したがって、同一平面上にあるポリゴン間(つまり、平らな表面)のエッジに折り目を適用しても、実際には効果がありません。
  5. [最終結果を表示](Show End Result)をオンに戻し、[エッジを編集](Edit Edges)ロールアウトで、[折り目](Crease)の値を大きくします。

    設定を調整すると、シェーディングされたビューポートで折り目の鋭さがわずかに増します。

    左: 折り目 = 0.0、右: 折り目 = 0.5

    注: OpenSubdiv では、編集可能ポリゴン オブジェクトのエッジと頂点の[重み](Weight)設定がサポートされません。

    しかし、折り目を明確にするには、[反復](Iterations)の値を大きくする必要があります。これにより再分割の度合いが高くなり、折り目を明確に表示するための、より高いメッシュ解像度を得ることができます。

  6. モディファイヤ スタックで、OpenSubdiv エントリにアクセスし、[一般コントロール](General Controls)ロールアウトで[反復](Iterations)スピナーの上矢印をクリックし、[反復](Iterations)を 2 に変更します。違いを確認し、5 に達するまでゆっくりクリックを続けます。クリックするたびに、折り目の変化を確認してください。

    次の図では、[折り目](Crease)が 0.5 に設定され、[反復](Iterations)が左から右に、1 から 5 に増加します。

    OpenSubdiv モディファイヤの[反復](Iterations)設定で許容される最大値は 6 で、通常は 0.5 以下の折り目の値がサポートされます。鋭い折り目が必要な場合は、次のようにして取得できます。

  7. 編集可能ポリゴン オブジェクトの[エッジ](Edge)レベルで、折り目の値を大きくします。OpenSubdiv モディファイヤで、[レンダリングの反復](Render Iters)をオンにして、大きな値(7 など)に設定します。イメージをレンダリングします。

    折り目 = 0.7、レンダリングの反復 = 7

CreaseSet モディファイヤで折り目セットを作成します。

    前述の手順で、1 つの折り目エッジのセットを作成しました。つまり、モデル内の複数のエッジに同一の折り目の値を割り当てています。複数のエッジのセットに異なる折り目の値を割り当てる場合はどうなるでしょうか?これを手動で実行することはできますが、CreaseSet モディファイヤを使用すると、複数の折り目セットをより簡単に管理できます。

  1. 前述の手順から続行して、OpenSubdiv モディファイヤを削除します。ただし、エッジを選択解除しないでください。
  2. CreaseSet モディファイヤを適用し、OpenSubdiv モディファイヤを適用します。
    重要: OpenSubdiv モディファイヤは、スタックの CreaseSet モディファイヤより常に上位にある必要があります。
  3. スタックの CreaseSet モディファイヤにアクセスし、[オプション](Options)ロールアウトを展開して、[折り目セットを自動生成](Auto-Generate Crease Sets)グループで、[自動生成](Auto-Generate)ボタンをクリックして、表示される確認ダイアログで[はい]ボタンをクリックします。

    [折り目セット](Crease Sets)ロールアウトに新しいエントリが表示されます。その名前は EdgeSet01 で、表示される折り目の値は、以前にエッジに割り当てた値と同じです。

    これは、スタックの編集可能ポリゴン レベルでエッジに折り目の値が設定されているためです。自動生成が動作するために、エッジを選択する必要はありません。[自動生成](Auto-Generate)をクリックすると、折り目の値が同じであるエッジの各セットに対して新しい[折り目セット](Crease Sets)エントリが作成されます。折り目の値が同じ頂点の各セットも同様です。これについては次の手順で詳しく説明します。

    ヒント: サブオブジェクトが折り目セットに属しているかどうかが不明な場合は、リスト内でそのエントリを右クリックし、[セット内の要素を選択](Select Elements In Set)を選択します。また、たとえば、追加のサブオブジェクトを選択し、セットのリスト エントリを右クリックして、[選択をセットに追加](Add Selection To Set)を選択することにより、セットの内容を編集することもできます。
  4. 必要に応じて、モディファイヤ スタックの[編集可能ポリゴン](Editable Poly)レベルに移動して、[エッジ](Edge)サブオブジェクト レベルにアクセスします。
  5. 複数の新しいエッジを選択し、別の折り目の値を割り当てます。
  6. [頂点](Vertex)レベルにアクセスし、いくつかの頂点を選択して、折り目の値を割り当てます。
  7. CreaseSet スタック レベルに移動し、もう一度[自動生成](Auto-Generate)をクリックします。

    [折り目セット](Crease Sets)ロールアウトのリストに、作成したすべてのセットが表示されます。

    また、次のタスクで説明するように、CreaseSet モディファイヤで折り目セットを作成することもできます。

CreaseSet モディファイヤ内全体の折り目セットを作成します。

    この手順は、前の手順の続きです。

  1. モディファイヤ スタックで、CreaseSet エントリを展開し、[頂点](Vertex)または[エッジ](Edge)のいずれかをクリックします。
    注: これらのサブオブジェクト レベルでは、再分割されたオブジェクトではなく、元のジオメトリを参照します。CreaseSet モディファイヤがアクティブになっている場合は、再分割されたオブジェクトを囲むワイヤフレーム ケージとして、元のジオメトリを表示することができます。
  2. 一部のサブオブジェクトを選択し、[折り目セット](Crease Set)リストの下の[セットを作成](Create Set)ボタンをクリックします。
    ヒント: エッジをダブルクリックしてエッジ ループを選択し、次にエッジ リングを選択して、同じリング内の別のエッジを [Shift]+クリックします。

    新しいセットの既定の名前と折り目の値がリストに表示されます。次の手順では折り目の値を変更する方法とセット名を変更する方法について説明します。

    注: 選択したサブオブジェクトのいずれかが既存のセットに属している場合は、新しいセットを作成すると、自動的にそのセットから削除されます。各エッジおよび頂点が属することができる折り目セットは 1 つだけです。
  3. セットの名前を変更するには、そのリスト エントリを右クリックし、[名前変更](Rename)を選択して、表示されるダイアログ ボックスを使用して名前を編集し、[OK]をクリックします。

    また、作成する次のセットの名前を指定することもできます。

  4. [セットを作成](Create Set)ボタンの横にあるテキスト フィールドの内容を編集し、いくつかの頂点またはエッジを選択して、[セットを作成](Create Set)をクリックします。

    新しいセットが、指定した名前に番号が追加されてリストに表示されます。

    このタスクの前の手順で説明したように、CreaseSet モディファイヤに関する重要な点は、サブオブジェクトが一度に属することができるセットは 1 つだけである点です。

  5. いくつかのサブオブジェクトを選択して、セットを作成します。
  6. 何も変更せずに、もう一度[セットを作成](Create Set)をクリックします。

    新しいセットがリストに表示され、古いセットの名前は角括弧で囲まれます(たとえば、"[CornerVerts]")。角括弧はそのセットが空白であることを示し、その名前を右クリックして、[セット内の要素を選択](Select Elements in Set)を選択すると、これを簡単に確認できます。その結果として、すべてのサブオブジェクトが選択解除されます。

CreaseSet モディファイヤで折り目を調整します。

    CreaseSet モディファイヤでは、一度に 1 つの折り目の値を直接調整でき、相対的には一括して調整できます。

  1. CreaseSet モディファイヤが適用されたオブジェクトを選択し、CreaseSet モディファイヤをアクティブにします。
  2. 必要に応じて、いくつかの折り目セットを作成します。
  3. 1 つのセットの折り目の値を変更するには、セット名の右にある数値フィールドの値を編集します。
  4. 複数のセットの折り目の値を変更するには、まず変更するすべてのセットを選択します。選択したセットのバックグラウンド カラーは青色になります。[相対値の調整](Relative Adjust)フィールドで、選択した折り目の値を変更する量を入力します。その後、[相対値の調整](Relative Adjust)の値(正または負の値)が、選択したすべてのセットの折り目の値に追加されます。
  5. ヒント: 折り目の値の変更結果を確認するには、CreaseSet モディファイヤの上の OpenSubdiv モディファイヤを適用し、[最終結果を表示](Show End Result)をオンにします。

CreaseSet で複数のオブジェクトを使用する

CreaseSet モディファイヤは複数のオブジェクトをの折り目を管理するために設計されています。これは、大量のデータが含まれているシーン内のジオメトリの編集を高速化するために役立ちます。

複数のオブジェクトの折り目を同時に調整します。

  1. 1 つまたは複数のオブジェクトのインスタンス化された複数のコピーが含まれるシーンを作成します。

    たとえば、シーンにトラックの複数のコピーが含まれているとします。これらはインスタンスではなくコピーであるため、それぞれの車両を識別するために役立つ、モデリングのわずかな差を取り込むことができます。

  2. 折り目および OpenSubdiv に適用されるオブジェクトのすべてのコピーを選択します。
  3. CreaseSet モディファイヤを適用します。

    これにより、各オブジェクトにモディファイヤのインスタンス化されたコピーが適用されます。

  4. 各オブジェクトに OpenSubdiv モディファイヤを適用します。
    ヒント: 各オブジェクトに異なるスムージング値を使用する場合は、個別に OpenSubdiv を適用します。そうでない場合は、CreaseSet と同様に、インスタンス化されたバージョンを適用します。
  5. すべてのオブジェクトを選択し、CreaseSet モディファイヤの[エッジ]または[頂点]サブオブジェクト レベルに移動し、すべてが同じ折り目の値を取得するサブオブジェクトを選択します。

    たとえば、各トラックのフードの凸領域のエッジを選択するとします。

  6. セットに名前を付け、[折り目セット](Crease Set)をクリックします。
  7. セットの[折り目](Crease)を設定します。指定された領域のすべてが変更された値を受け取ります。