これは、NURBS オブジェクトの作成、または既存の NURBS オブジェクトからのデータの取得に使用されるクラスです。NURBSSet は他のオブジェクトのコンテナとして機能します。
このクラスには、セットの作成に使用されるさまざまな NURBSObject 派生エンティティ (ポイント、カーブ、サーフェス) のテーブルが含まれます。さらに、2 つの「ヒューズ」テーブルがあり、1 つはヒューズ カーブ用、もう 1 つはヒューズ サーフェス用に使われます。このテーブルを使用すると、カーブまたはサーフェス内の CV は一緒に「合わさって」または「くっついて」、1 つのカーブまたはサーフェスが移動すると、他のカーブまたはサーフェスもそれに伴って移動できるようになります。このクラスにも、オブジェクトの多面化をビューポートで使用するために三角メッシュに入れたり、プロダクション レンダラーをコントロールするサーフェス近似プロパティがあります。
オブジェクトのプロパティはすべて、コンストラクタのオプションのキーワード引数によって設定できます。
この関数は、指定された NURBS シーン ノードに対応する NURBSSet の取得に使用されます。これによって、3ds Max の編集可能な NURBS オブジェクト内の内部オブジェクトにアクセスできます。
オプションの #relational パラメータが指定されない場合は、返される NURBSSet には、独立カーブおよびサーフェスだけが含まれます。従属オブジェクトはすべて、対応する独立オブジェクトに分解されます。たとえば、リレーショナル モデル (CV サーフェス 2 つと従属ブレンド サーフェス 1 つと仮定) を含むオブジェクトを渡した場合、このモデルは、3 つの CV サーフェスに分解されます。これは、2 つのサーフェスと 1 つのブレンドを表す CV サーフェスですが、ブレンドに関連するデータは取得されません。 #relational 引数が指定されている場合は、2 つの CV サーフェスと 1 つの NURBS ブレンド サーフェスが返されます。また、NURBSSet がシーン オブジェクトのアクティブな見本となります。その要素の NURBSObject のプロパティに対する変更は、すべて、ソース シーン オブジェクトで直接反映されます。
次のプロパティはサーフェス近似面分割をコントロールします。デュアル セットのプロパティでは、一方がビューポート面分割の制御を、もう一方がレンダラー面分割の制御を行います。プロパティは、NURBS サーフェス モディファイヤ パネルのサーフェス近似コントロールに直接対応しています。これらのプロパティについての詳細は、「NURBSSurfaceApproximation」を参照してください。
<nurbsset>.viewConfig : #isoOnly, #isoAndMesh, #meshOnly <nurbsset>.viewIsoULines : integer <nurbsset>.viewIsoVLines : integer <nurbsset>.viewMeshUSteps : integer <nurbsset>.viewMeshVSteps : integer <nurbsset>.viewMeshApproxType : #parametric, #spatial, #curvature, #regular, #spatialAndCurvature <nurbsset>.viewSpacialEdge : float <nurbsset>.viewCurvatureAngle : float <nurbsset>.viewCurvatureDistance : float <nurbsset>.viewViewDependent : boolean <nurbsset>.renderConfig : #isoOnly, #isoAndMesh, #meshOnly, #regular, #spatialAndCurvature <nurbsset>.renderIsoULines : integer <nurbsset>.renderIsoVLines : integer <nurbsset>.renderMeshUSteps : integer <nurbsset>.renderMeshVSteps : integer <nurbsset>.renderMeshApproxType : #parametric, #spatial, #curvature, #regular, #spatialAndCurvature <nurbsset>.renderSpacialEdge : float <nurbsset>.renderCurvatureAngle : float <nurbsset>.renderCurvatureDistance : float <nurbsset>.renderViewDependent : boolean
ビューポートにおける NURBS オブジェクトの表示で、さまざまなコンポーネントの表示をコントロールする NURBSDisplay クラスのインスタンスを取得/設定します。
<nurbsset>.viewApproximation : NURBSSurfaceApproximation <nurbsset>.renderApproximation : NURBSSurfaceApproximation
これらのプロパティは、NURBSSurfaceApproximation クラスを使用したサーフェス近似へのアクセスや制御に使用されます。このクラスのインスタンスは、ビューポートまたはレンダリングのすべての近似設定をカプセル化します。これらのインスタンスのどちらかでサーフェス近似設定を構築し、それを使用して多くのオブジェクトに対してサーフェス近似を設定できます。
エッジが結合されているか、またはほぼ結合されているようなサーフェス サブオブジェクトの面分割をコントロールします。メッシュを必要とするメッシュ選択としてモディファイヤに入力する場合、および NURBS サーフェスがプロダクション レンダリングで面分割される場合は、既定で、3ds Max によりエッジに沿った面の数が互いに一致するように隣接するサーフェスの面分割が調整されます。 merge 値は、この調整方法をコントロールします。 merge が 0 (ゼロ)である場合、隣接する面は変更されません。 merge 値が大きくなると、それに従って、3ds Max でレンダリング時にサーフェス間でずれを生じさせずにエッジを一致させる方法を計算するために使用される距離が増加します。
NURBSSet 内のサブオブジェクトには、標準の MAXScript 配列のインデックスを指定する演算子 [] を使用してアクセスできます。これは、後述の getObject() および setObject() メソッドを使用する方法と同等です。
指定された NURBSObject (NURBSObject の任意サブクラスのインスタンスおよびその下位のサブクラスの任意インスタンス、すべてのポイント、カーブ、サーフェス)を新規サブオブジェクトとして、指定された NURBSSet に追加します。新しいサブオブジェクトは、次に利用できるインデックスを受け取ります。
インデックスで指定されたサブオブジェクトを指定された NURBSObject に設定します。インデックスは 1 で始まります。この関数は、以前追加したオブジェクトの置換に使用されます。
インデックスで指定されたサブオブジェクト、または NURBSSelection で指定されたサブオブジェクトのセットを NURBSSet から取得します。サブオブジェクトのインデックスは、1 で始まります。NURBSSelection でサブオブジェクトが指定されていない場合は、 undefined 値が返されます。サブオブジェクトが 1 つ指定されている場合は、そのサブオブジェクトのクラスの値が返されます。複数のサブオブジェクトが指定されている場合は、NURBSSet の値が返されます。
指定されたサブオブジェクトを NURBSSet から削除します。残っているサブオブジェクトのうち、インデックス番号が削除されたサブオブジェクトより大きいサブオブジェクトでは、そのインデックスが 1 小さい数字に付けかえられます。
そのシーン オブジェクトからリレーショナルな NURBS セットが切断され、非リレーショナル セットに変更されます。
このメソッドは、NURBSSet のすべての NURBSObject を削除し、メモリを解放します。
getProdTess <nurbsset> <tessType_name> setProdTess <nurbsset> <tessType_name> <NURBSSurfaceApproximation> getViewTess <nurbsset> <tessType_name> setViewTess <nurbsset> <tessType_name> <NURBSSurfaceApproximation>
個々のサーフェスのレンダラーおよびビューポートの NURBSSurfaceApproximation 値を取得および設定します。 <tessType_name> は、サーフェスで制御可能な 3 種類の面分割に対応する #surface 、 #displacement 、または #curve のいずれかになります。
NURBSet のサーフェスについての、指定された面分割タイプのサーフェス近似設定をリセットします。 <tessType_name> は、サーフェスで制御可能な 3 種類の面分割に対応する #surface 、 #displacement 、または #curve のいずれかになります。