ポリゴンメッシュでのユーザ法線の設定

 
 
 

自動的に生成される法線ではなく、カスタム法線を指定してそれをシェーディングに使用することができます。カスタム法線は、3ds Max などの他のソフトウェアでは「ユーザ法線」または「明示的な法線」と呼ばれます。ユーザ法線では、最小限のポリゴン数で丸い角を持つボックスなどを作成することができます。

ベベルされたエッジを持つ立方体では、自動法線の補間により、広く平らな側面にわたってグラデーションのあるシェーディングが生成されます。

ボックスに丸い角を表現するには、補間によって正しいシェーディングが生成されるようにユーザ法線を設定することができます。

法線のインタラクティブな調整に説明されているように、ユーザ法線調整ツールでユーザ法線をインタラクティブに編集することができます。または、[に説明されているように、](Modify) [修正](Component) [コンポーネント](Set User Normals)[ユーザ法線の設定]コマンドによるユーザ法線の設定から対応するオプションを設定することができます。ツールおよびコマンドの操作方法を制御するプリファレンスについては、「[法線の調整]プリファレンス」(「プリファレンス リファレンス」)を参照してください。

ユーザ法線について

ユーザ法線は、オブジェクト空間に相対的に保存されます。ただし、オブジェクトを変形してもユーザ法線は更新されません。エンベロープのデフォーメーションは例外として変形が更新されます。エンベロープの場合、ユーザ法線はジオメトリとともに変形され、再度正規化されます。

ユーザ法線は、ポリノード(または「ポリゴンノード」または「テクスチャサンプルポイント」とも呼ばれる)に保存されます。ポリゴンの角ごとに 1 つのポリノードが存在します。頂点では、ポリノードの数は隣接するポリゴンと同じ数になります。

ポリゴンメッシュには、自動法線とユーザ法線の両方をミックスして含むことができます。法線を編集すると、対応するポリノードがUser_Normal_Clusterに自動的に追加されます。ポリノードにユーザ法線が含まれている場合(つまり、User_Normal_Clusterに含まれる場合)、そのユーザ法線は自動法線の代わりに表示およびレンダリングに自動的に使用されます。特にユーザ法線は、ハードエッジ、自動による不連続性、自動法線を制御するその他の方法より優先されます。

ユーザ法線を編集すると、User_Normal_Propertyのコンストラクションスタックにオペレータが追加されます。このスタックをフリーズするには、プロパティを選択し、MCPの[Edit]パネルの[フリーズ](Freeze)をクリックするか、特定のオペレータからフリーズする場合は、そのオペレータを選択し[フリーズ](Freeze)をクリックすることができます。スタックのすべてまたは一部をフリーズすると、ジェネレータを含む、オブジェクトのメインコンストラクションスタックの下に存在するすべてのオペレータもフリーズされます。また、オブジェクトのオペレータスタックまたはそのモデリング領域をフリーズすると、User_Normal_Propertyのスタックもフリーズされます。オペレータスタックのフリーズの詳細については、「オペレータ スタックをフリーズする」(「モデリングおよびデフォーメーションの基本」)を参照してください。

同じオブジェクト上に複数のユーザ法線のセットを設定することはできません。ユーザ法線プロパティを使用してユーザ法線クラスタを複製することはできますが、編集できるのは最初のクラスタだけです。

法線のインタラクティブな調整

ユーザ法線調整ツールでは、ポリノード、頂点、エッジ、およびポリゴンのユーザ法線をインタラクティブに回転させることができます。これは、コンポーネント調整ツールと同じように機能します(「コンポーネント調整ツールを使用する」(「モデリングおよびデフォーメーションの基本」)を参照)。調整には、次の2つの方法があります。

  • 高速かつスムーズに行うには、クリックアンドドラッグ操作を使用します。

  • さまざまな制御を使って操作するには、1つまたは複数のコンポーネントを選択し、マニピュレータを使用して対応する法線を回転します。

ユーザ法線調整ツールでは、ユーザ法線を含むポリノードの法線(つまり、すでに User_Normal_Cluster に含まれるもの)が実線で描画され、自動法線を使用するポリノードの法線が点線で描画されます。

ユーザ法線調整ツールは、対称([Transform]パネルの[対称](Sym)モード)に対応します。対称の詳細については、「コンポーネントの対称処理」を参照してください。

ユーザ法線調整ツールを使用するには

  1. ポリゴン メッシュ オブジェクトを選択します。

  2. [Model]ツールバーで[修正](Modify) [コンポーネント](Component) [ユーザ法線調整ツール](Tweak User Normals Tool)を選択して、ユーザ法線調整ツールを有効にします。

  3. オブジェクトのコンポーネントの上へマウスのポインタを持ってくると、コンポーネントがハイライトされます。ポインタを移動すると、ポインタの下のコンポーネントがハイライトされます。

    • ポリノードの2等分線(紫色の線)をクリックすると、そのポリノードにある法線のみが処理されます。[Display]のプリファレンスで、ポリノードの2等分線の表示を制御することができます(「[Display]プリファレンス」(「プリファレンス リファレンス」)を参照)。

    • 頂点をクリックすると、その頂点にあるすべてのポリノードの法線も処理されます。

    • エッジをクリックすると、そのエッジを共有する4つのポリノードの法線が処理されます(同じエッジを共有する2つのポリゴンのそれぞれに2つ)。[エッジ/ポリゴンのブリード]がオンになっている場合、エッジを共有する2つの頂点にあるすべてのポリノードの法線が処理されます。

    • ポリゴンをクリックすると、そのポリゴンが所有するすべてのポリノードの法線も処理されます。[エッジ/ポリゴンのブリード]がオンになっている場合、ポリゴンのすべての頂点にあるすべてのポリノードの法線も処理されます。

    プリファレンスで[エッジ/ポリゴンのブリード]のオン/オフを切り替えることができます。「[法線の調整]プリファレンス」(「プリファレンス リファレンス」)を参照してください。

    選択半径内に複数のタイプのコンポーネントがある場合、優先度は頂点、ポリノード、エッジ、ポリゴンの順になります。

  4. 次のいずれかの操作を実行します。

    • クリックアンドドラッグ操作で、表示空間にある法線を回転します。

    • ハイライトされたコンポーネントをクリックして、コンポーネントを選択します。マニピュレータが表示されます(マニピュレータをオフに切り替えていない場合)。マニピュレータを使用すると、選択した法線を回転できますが、選択した法線を最初に変更する場合は、ピボットを変更してから別のオプションを設定します。

    コンポーネント調整ツールでは、Ctrl、Shift、およびAltの各モディファイアキーとマウスの中央ボタンを使用して、さまざまな機能を実行します。Softimageウィンドウ下部のマウス/ステータス行に機能の簡単な説明が表示されます。このセクションの後半でも、その詳細を説明しています。マウスの右ボタンをクリックすると、コンテキストメニューが開きます。

  5. ユーザ法線調整ツールは引き続き有効であるため、必要に応じて手順 3 と 4 を繰り返し、さらに他のコンポーネントを操作できます。

    操作が完了したら、Escキーを押してツールをオフにするか、別のツールを有効にします。

操作モードの設定

マニピュレータを使用している場合、[Transform]パネルの操作モード(グローバル、ローカル、ビュー、オブジェクト、参照、およびプレーン)を使用して、マニピュレータの位置と向きを制御することができます。これらのモードについては、「コンポーネント操作モード」(「モデリングおよびデフォーメーションの基本」)を参照してください。

マニピュレータを使用していない場合は、法線が[ビュー]モードで回転されます。

軸のアクティブ化

マニピュレータを使用している場合、[Transform]パネルで軸を有効または無効にすることができます。「軸を指定する」(「モデリングおよびデフォーメーションの基本」)を参照してください。

または、マニピュレータで1つの軸をダブルクリックして、その軸を有効にすることもできます。同じ軸を再度ダブルクリックするとすべての軸が再度有効になり、別の軸とクリックするとその軸が有効になります。

コンポーネントを選択する

ユーザ法線調整ツールを使用すると、通常の選択ツールと同じような方法でコンポーネントを選択できます。なお、相違点もいくつかあります。

ユーザ法線調整ツールの選択は、[SI|3D 選択モデル](SI|3D Selection Model)または[拡張コンポーネント選択](Extended Component Selection)での選択を反映しません。

選択、選択解除、および選択の拡張

以下のように、キーボードとマウスの操作を組み合せて選択します。

  • 選択するコンポーネントをクリックします。

  • 選択にさらにコンポーネントを追加するには、Shiftキーを押しながら追加するコンポーネントをクリックします。

  • コンポーネントの選択と選択解除を切り替えるには、Shiftキーを押しながらマウスの中央ボタンでコンポーネントをクリックします。

  • コンポーネントの選択を解除するには、Ctrl+Shiftキーを押しながらコンポーネントをクリックします。

  • すべてのコンポーネントをすばやく選択解除するには、オブジェクトの外側をクリックします。デフォルトでは、オブジェクトの外側にある 20 のピクセルをクリックする必要がありますが、この設定は[Tools]>[Tweak Normals]プリファレンスの[境界ピックのサイズ(ピクセル)](Boundary Pick Size)で変更できます(「[法線の調整]プリファレンス」(「プリファレンス リファレンス」)を参照)。

複数のコンポーネントを選択する場合、選択できるコンポーネントは同じタイプに限られるので注意してください。ポリノード、ポイント、エッジ、およびポリゴンを混ぜて選択することはできません。

範囲選択とループ選択

コンポーネントの範囲選択とループ選択にはAltキーを使用します。ループならびにポイント、エッジ、およびポリゴンの範囲を選択できます。この手順は、ポリノードには使用できません。

  1. 最初のコンポーネントまたは「アンカー」コンポーネントをクリックします。

  2. 次のいずれかの操作を実行します。

    • Alt キーを押しながら 2 番目のコンポーネントをクリックして、2つ目のコンポーネントとの間のパスにあるコンポーネントをすべて選択します。

    • Alt キーを押しながらマウスの中央ボタンで 2 番目のコンポーネントをクリックして、1 つ目と 2 つ目のコンポーネントを含むループ内にあるコンポーネントをすべて選択します。

  3. 追加で範囲選択またはループ選択を行うには、Shift キーを押しながら新しいアンカーをクリックし、続いて Alt+Shift キーを押しながら新しい範囲を指定するか、Alt+Shift キーを押しながらマウスの中央ボタンで新しいループを指定します。

エッジのループ選択の場合、方向は暗黙的に指定されるので、Alt キーを押しながらマウスの中央ボタンでエッジをクリックしてループを選択し、Alt+Shift キーを押しながらマウスの中央ボタンを押して追加のループを選択するだけです。ただし、並行エッジループを選択するには、前述されているように 2 つのコンポーネントを指定する必要があります。

タイプによる選択

ユーザ法線調整ツールでは、ポリノード、ポイント、エッジ、およびポリゴンを操作できますが、必要に応じて、特定タイプのコンポーネントに限定することができます。コンテキストメニューを使用して、[Tweak All][Samples(polynodes)](Samples (polynodes))[Points][Edges][Polygons]、または[Points + Samples]をオンにします。

選択半径の設定

ユーザ法線調整ツールでは、プリファレンスを使用して、マウスポインタの移動に伴うコンポーネントの対象範囲を設定します。移動量(ピクセル単位)を変更するには、[ファイル]>[設定]を選択して[Preferences]を開き、[Tools]>[Tweak Normals]プリファレンスの[ピックサイズ](Pick Size)を調整します。「[法線の調整]プリファレンス」(「プリファレンス リファレンス」)を参照してください。

ピボットの設定

コンポーネントをマウスの中央ボタンでクリックすることにより、ピボットをすばやく設定できます。たとえば、エッジの 1 つでポリゴンの法線を回転するには、ポリゴンをクリックして選択し、続いてマウスの中央ボタンをクリックしてエッジをリファレンスとして指定します。マニピュレータは中央ボタンのクリック操作には反応しないため、ビュー内でコンポーネントがマニピュレータの範囲にあってもコンポーネントを選択することができます。

中央ボタンクリックにより、一時的に参照操作モードに切り替わります。新しいコンポーネントを選択すると、直ちに前の操作モードに戻ります。複数の調整に同じピボットを保持する場合は、手動で[参照]モードに切り替え、続いてマウスの中央ボタンでリファレンスをクリックして指定します。この方法では、新しいコンポーネントを選択して操作する際、リファレンスフレームが前回のモードに戻りません。

マニピュレータの非表示

マニピュレータで作業しない場合は、ビューの下部に表示されているボタンをクリックするか、コンテキストメニューから[マニピュレータのトグル](Toggle Manipulator)を選択して、マニピュレータの表示/非表示を切り替えることができます。

[マニピュレータのトグル]ボタン

マニピュレータがオフの場合、コンポーネント調整ツールは常にクリックアンドドラッグモードになります。つまり、複数のコンポーネントを選択し、すべての法線を一度に調整することはできません。また、操作画面は常に[ビュー]モードとなります。

[Tweak Normals Tool]グループの[Toggle Manipulator]にホットキーを割り当てることもできます(「キー マップ」(「カスタマイズ」)を参照)。ホットキーはスープラキーと同じように機能します。キーを押したり離したりしてマニピュレータのオンとオフをすばやく切り替えたり、キーを押したままにして現在の状態を一時的に切り替えることができます。

コマンドによるユーザ法線の設定

選択したコンポーネントの法線を選択し、それを1回で処理できるコマンドに適用することができます。これらのコマンドは、ユーザ法線をさまざまな値に設定したり、コンポーネントにユーザ法線と自動法線のどちらを含むようにするかを指定するために使用することができます。また、法線をコピーし、それを別のコンポーネントに貼り付けることもできます。

この操作手順は、すべてのコマンドで同じです。

  1. ポリゴンメッシュオブジェクトまたはそのコンポーネントのいくつかを選択します。サンプル(ポリノード)、頂点、エッジ、またはポリゴンを選択することもできます。

    • 頂点を選択すると、その頂点にあるすべてのポリノードも選択されることになります。

    • エッジを選択すると、そのエッジを共有する 4 つのポリノードも選択されることになります(同じエッジを共有する 2 つのポリゴンのそれぞれに 2 つ)。[エッジ/ポリゴンのブリード]をオンにすると、エッジを共有する 2 つの頂点にあるすべてのポリノードが選択されます。

    • ポリゴンを選択すると、その角にあるすべてのポリノードも選択されることになります。[エッジ/ポリゴンのブリード]をオンにすると、ポリゴンのすべての頂点にあるすべてのポリノードが選択されます。

    • オブジェクトを選択することは、オブジェクト上のすべてのポリノードを選択することと同等です。

    プリファレンスで[エッジ/ポリゴンのブリード]のオン/オフを切り替えることができます。「[法線の調整]プリファレンス」(「プリファレンス リファレンス」)を参照してください。

  2. [Model]ツールバーの[修正](Modify) [コンポーネント](Component) [ユーザ法線の設定](Set User Normals)サブメニューから、コマンドを選択します。

    これらのコマンドは、ユーザ法線調整ツールを使用するときにコンテキストメニューからも使用できます。

ここでは、これらの各コマンドの機能について説明します。

Average

[修正](Modify) [コンポーネント](Component) [ユーザ法線の設定](Set User Normals) [平均](Average)コマンドを選択すると、選択した内容にある各ポリノードの法線が、同じ頂点内で選択されているポリノードの現在の法線の平均に設定されます。

これは、選択したエッジや隣接ポリゴンでシェーディングをスムーズにするのに役立ちます。

このコマンドは、[平均の距離の閾値](Average Distance Threshold)を使用して、平均を計算するときに使用するコンポーネントを決定します。このパラメータを0.0より上に設定すると、接続しないエッジ間がスムーズになります。「[法線の調整]プリファレンス」(「プリファレンス リファレンス」)を参照してください。

このコマンドは、[エッジ/ポリゴンのブリード]をオンにしない限り、選択した1つのポリゴンには反映されません。

頂点

[修正](Modify) [コンポーネント](Component) [ユーザ法線の設定](Set User Normals) [頂点](Vertex)コマンドを選択すると、選択した内容にある各ポリノードの法線が、対応する頂点の法線に設定されます。これは、自動による不連続性がオフになっており、ハードエッジが定義されていない場合、シェーディングの自動法線と同じです。

ポリゴン

[修正](Modify) [コンポーネント](Component) [ユーザ法線の設定](Set User Normals) [ポリゴン](Polygon)コマンドを選択すると、選択した内容にある各ポリノードの法線が、その法線を所有するポリゴンのジオメトリ法線に設定されます。これは、ファセットされた外観を作成する場合に便利です。

[エッジ/ポリゴンのブリード]をオンにすると、選択したポリゴンの頂点にあるすべてのポリノードが、ジオメトリ法線に設定されます。複数の隣接ポリゴンが選択されている場合、法線は、頂点を共有するポリゴンの平均ジオメトリ法線に設定されます。これにより、ポリゴン間に、丸い角を持つ平らな領域やスムーズな領域が作成しやすくなります。

[エッジ/ポリゴンのブリード]をオンにして法線をポリゴンに設定した結果。

反転

[修正](Modify) [コンポーネント](Component) [ユーザ法線の設定](Set User Normals) [反転](Invert)コマンドを選択すると、選択した内容にある各ポリノードの法線が反転されます。

[修正](Modify) [ポリゴン メッシュ](Poly. Mesh) [ポリゴンの反転](Invert Polygons)コマンドは、ユーザ法線に影響を与えません。

正規化

[修正](Modify) [コンポーネント](Component) [ユーザ法線の設定](Set User Normals) [正規化](Normalize)コマンドを選択すると、選択したポリノードにある法線の長さが、向きはそのままで 1.0 に設定されます。法線の長さは常に 1.0 単位で設定されますが、[正規化]チェックボックスをオフにして[値の設定]コマンドを使用する場合は長くなったり短くなったりすることがあります。

値の設定

[修正](Modify) [コンポーネント](Component) [ユーザ法線の設定](Set User Normals) [値の設定](Set Value)コマンドを選択すると、選択したポリノードの法線を数値で設定することができます。X、Y、およびZに値を入力するか、整列ボタン(X、Y、Z、-X、-Y、-Z)を使用して、軸に沿った単位ベクトルを求めます。

正規化

入力した値を自動的に調整して、法線が同じ向きで 1.0 単位の長さとなるようにします。

ワールド空間

グローバルリファレンスフレームに相対的に値を入力できます。このオプションをオフにすると、値はオブジェクト空間で解釈されます(オブジェクトの中心に相対)。

コピー

[修正](Modify) [コンポーネント](Component) [ユーザ法線の設定](Set User Normals) [コピー](Copy)コマンドを選択すると、選択したポリノードの法線がコピーされるので、別のポリノードを選択し、そこに法線を貼り付けることができます。法線は一度に1つずつコピーできます。または、ユーザ法線調整ツールがオンになっているときに[Ctrl]+[C]を押しても同じ結果を得ることができます。

貼り付け

[修正](Modify) [コンポーネント](Component) [ユーザ法線の設定](Set User Normals) [貼り付け](Paste)コマンドを選択すると、前回コピーした法線が、選択したすべてのポリノードに貼り付けられます。または、ユーザ法線調整ツールがオンになっているときに[Ctrl]+[V]を押しても同じ結果を得ることができます。

リセット

[修正](Modify) [コンポーネント](Component) [ユーザ法線の設定](Set User Normals) [リセット](Reset)コマンドを選択すると、選択した内容にある各ポリノードの法線が、自動による不連続性とハードエッジのエフェクトを含む、自動シェーディング法線に設定されます。設定された法線は、自動法線と同じ値になりますが、ユーザ法線に変わりないことに注意してください。

ユーザ

[修正](Modify) [コンポーネント](Component) [ユーザ法線の設定](Set User Normals) [ユーザ](User)コマンドを選択すると、選択したすべてのポリノードが User_Normal_Cluster に追加されます(まだこのクラスタのメンバでない場合)。クラスタの新しいメンバのユーザ法線は、自動による不連続性とハードエッジのエフェクトを含む、現在の自動シェーディング法線に設定されます。クラスタの既存のメンバのユーザ法線は変化しません。

自動

[修正](Modify) [コンポーネント](Component) [ユーザ法線の設定](Set User Normals) [自動](Auto)コマンドを選択すると、選択したポリノードが User_Normal_Cluster から削除されます。影響を受けるポリノードのシェーディング法線は、自動法線に戻ります。