値 > MAXWrapper > ノード |
次のプロパティとメソッドは、ノードから派生した任意の値に適用できます。
<node_constructor> [name: <string> ] \ [ prefix: <string> ] \ [ material: <material> ] \ [ target: <node> ] \ [ pos: <point3> ] \-- default [0,0,0] [ position: <point3> ] \-- synonym for pos [ rotation: <quat> ] \-- default 0 rotation [ scale: <point3> ] \-- default 100% scale [ pivot: <point3> ] \-- default normal node pivot location [ transform: <matrix3> ] \-- default identity [ isSelected: <boolean> ] \-- default false [ dir: <point3> ]-- set local z direction
「coordsys grid」が現在使用中の座標系の場合、位置と回転の値は現在のアクティブ グリッドに対する相対値になります。
<node_constructor> は、「ノードのサブクラス」でリストされているボックス、球、QuadPatch、SplineShape などのシーン ノード クラスのいずれかです。
すべてのノード コンストラクタには、上記のオプションのキーワード引数を指定でき、さらに一般ノード プロパティまたは特定のノード クラスのプロパティもキーワード引数として指定できます。
name キーワードは、作成したノードの名前の指定に使用できます。3ds Max では、複数のノードに同じ名前を使用できます。
prefix キーワードは、キーワード引数 name の場所に使われて、ノード名の開始部分を指定します。3ds Max は、これをもとにオブジェクトをインタラクティブに作成するときのように、一連の桁を付け加えて一意の名前を生成します。
material キーワードを使用すると、作成したノードに指定したマテリアルを適用できます。
target キーワードを使用すると、自動的にノードの変換トラックにルックアット コントローラが適用され、指定したノードがルックアット ターゲットとして設定されます。
変換引数 pos 、 scale 、 rotation 、および pivot は、コンストラクタの呼び出しで指定されている順番で新しいオブジェクトに適用されるため、ユーザは変換の順序をコントロールできます。 pos 、 scale 、 rotation 引数は、代替手段として 1 回の実行でノードの完全な変換行列を設定可能な transform 引数と相互に排他的です。
target キーワードを指定した場合は注意が必要です。ターゲット オブジェクトを指定すると、ターゲット オブジェクトと、ターゲットの元になる最後のオブジェクトが共に 3ds Max に格納されます。そのターゲット オブジェクトを削除すると、参照元のオブジェクトも削除されます。ターゲット オブジェクトが targetobject クラスのオブジェクトの場合、参照元のオブジェクトを削除すると、ほかのオブジェクトがターゲット オブジェクトを参照している場合でも、そのターゲット オブジェクトは削除されます。
3ds Max 4では、「selection」および「$」オブジェクト セットの反復とインデックス処理のパフォーマンスが大幅に改善されました。3ds Max 4 以前のバージョンでは、インデックス処理、反復処理、または配列へのスナップショットの取り込みを行う場合、選択されたノードを検索するのにシーン全体が走査されたため、サイズの大きなシーンでは大きな遅延を引き起こしていました。バージョン 4 の「selection」オブジェクト セットは、SDK の明示的な現在の選択への直接アクセスを使用します。
シーン ノードでアクセス可能なプロパティの詳細は、「一般的なノードのプロパティ」および「ノード変換プロパティ」を参照してください。
ほとんどのノード メソッドは、ノードのコレクションに自動的にマップされます。
<var> がノード値で、ノードが削除されていない場合は true を返します。それ以外の場合は false を返します。
move <node> <point3> -- mapped scale <node> <point3> -- mapped rotate <node> <angle> <axis_point3> -- mapped -- angle in degrees rotate <node> <quat> -- mapped rotate <node> <eulerangles> -- mapped
変換操作はいずれも、現行の作業座標系で行われます。「Context Expressions」を参照してください。
すべてのクローン操作には、標準のノード作成用のオプションのキーワード引数を指定できます。このキーワード引数は、ノードがコピーされた後に適用されます。
これらの関数は、オリジナルのノードの変換コントローラとキーのすべてについてクローンを作成し、かつ可視トラックが割り当てられている場合には可視コントローラおよびそのキーのクローンを作成します。
この関数は、3ds Max のスナップショット ツールと同様の機能を持ちます。スナップショットが作成されるときに、ソース <node> のワールド状態メッシュのコピーを含む新しいノードを生成します。既存のモディファイヤはすべて新しいノードから集約され、メッシュ スナップショットには、現在適用されているすべてのスペース ワープが反映されます。クローン メソッド(コピー、リファレンス、インスタンス)については、 pos: 、 name: などのすべての標準ノード作成キーワード引数を追加できます。
次の例では、3ds Max のスナップショット ツールと同様のアニメーション ベースのスナップショットが得られます。
既存のノードをインスタンス、および他のノードへの参照にします。たとえば、これを使ってあるノードのジオメトリを別のノードのものに置換して、カスタムの詳細レベル ツールを実装することができます。<dest_node> はインスタンス、または <src_node> への参照になります。
<dest_node> は、インスタンスまたは <src_node> への参照に変換されます。新しいインスタンスの場合、既存のジオメトリとモディファイヤは削除され、 <src_node> に置き換えられますが、ノード関連のプロパティ(マテリアル、変換、可視性、名前など)はすべて保持されます。新しい参照として、 <dest_node> の基本オブジェクトは、 <src_node> のワールド状態になるため、src_node の変更はすべての <dest_node> に影響しますが、 <dest_node> の変更はローカルに適用されます。
これらの関数と mergeMAXFile() 関数を使用してファイル/置換関数のカスタム スクリプト バージョンを作成できます。この場合、現在のシーンにあるノードの名前を一時的に変更し、次にその指定されたノードに別のノードを合成します。新しく合成されたノードのインスタンスを instanceReplace() を使って最初のノードに設定し、新しく合成されたノードを削除して前のノードの名前に戻します。
これらの関数はどちらもコレクション マップ型であるため、オブジェクト(すべてのインスタンス)から選択するか、同じオブジェクトを参照することができます。
2 つのノードがインスタンスの場合、 true を返します。
3ds Max 2008 以降 で使用可能です。従来、Avguard 機能拡張として提供されていた機能です。
<node2> を <node1> の子にします。 move:false が指定されていない場合、 <node2> の現在の位置を <node1> にリセットします。
シーン ノードをスペース ワープ オブジェクトのシーン ノードにバインドします。スペース ワープをバインドしたものはモディファイヤ スタックに表示され、他のモディファイヤと同じようにアクセスできます。スペース ワープからオブジェクトのバインドを解除するには、deleteModifier() 関数を使用します。モディファイヤ スタックを使った操作の詳細は、「モディファイヤおよび SpacewarpModifier」を参照してください。
2 つの要素の配列を返します。最初の要素はノードの現在の面の数、2 番目の要素はノードの現在の頂点の数です。返された面と頂点の数は、ノードをメッシュ オブジェクトに変換した場合に存在する数です。
ノードがシェイプ オブジェクトの場合は true を返し、その他の場合は false を返します。
オブジェクトのパラメトリック サーフェスの数を返します。現時点では、複数のサーフェスを持つオブジェクトは Loft オブジェクト(ドーナツ形状のロフト)のみです。
パラメトリック サーフェスが U 次元と V 次元において閉じているかどうかを示す 2 つの要素の配列を返します(円環体は U 次元と V 次元の両方において閉じています)。すべてのオブジェクトにこのメソッドが実装されているわけではないことに注意してください。そのような場合は既定値の #(true, true) が返されます。
ノードのインデックス付き軸システムの変換軸を <matrix3> 値で返します。通常、ノードの変換軸は 1 つだけです。ただし、ノードがローカル参照座標系にある場合、オブジェクト SO モードの場合、複数の SO が選択されている場合などは、複数の変換軸が存在します。インデックス > 変換軸の数の場合は、最初の変換軸の変換が返されます。
最初の引数がノードではなく「undefined」という値である場合、ビューポートの共通の軸が返されます。座標系の中心(getCoordCenter())が #local であるか、 参照座標系(getRefCoordSys())が #local、#parent、#gimbal である場合、最後に計算された共通の軸を返します。
このメソッドによって返された変換を「in coordsys」コンテキストおよび「about」コンテキストで使用して、現在の 3ds Max UI 参照座標系の中心のまわりで、オブジェクトの移動、回転、およびスケールを行うことができます。
ノードの変換行列キャッシュを無効にし、変換行列が変更されたことをノードのサブツリーに通知します。
次の MAXScript 関数は、変換がスクリプト コントローラ(位置トラック上のスクリプト コントローラなど)によって部分的にコントロールされるオブジェクトを強制的に更新する場合に使用できます。
指定されたノードまたはルート ノードの変換行列を Matrix3value として返します。ルート ノードは外部参照シーンのオブジェクトのルート ノードである場合があります。3ds Max 2008 以降 で使用可能です。従来、Avguard 機能拡張として提供されていた機能です。
指定された名前を持つ最初のノードを返します。 exact が false(既定値)である場合、通常の MAXScript ノード名の比較が行われます。
ignoreCase は、比較するときに大文字と小文字を区別するかどうかを指定します。true に設定すると、大文字と小文字を区別しない比較が実行されます。
all が true の場合、指定された名前のノードの配列が返されます。
既定値は exact:false ignoreCase:true all:false です。
getInheritanceFlags <node> setInheritanceFlags <node> (#all|#none| <bitarray>) keepPos:<boolean>-- mapped
指定されたノードの継承フラグを<bitarray>で取得および設定します。
ビットがオンの場合、対応する継承はオンになります。ビットの順序は、次のとおりです。#POS_X,POS_Y,POS_Z,ROT_X,ROT_Y,ROT_Z,SCALE_X,SCALE_Y,SCALE_Z
keepPos:false が指定されている場合は、継承がオンまたはオフになったときにノードが移動することがあります。
getTransformLockFlags <node> -- mapped setTransformLockFlags <node> (#all|#none| <bitarray>)-- mapped
指定されたノードの変換ロックフラグを<bitarray>で取得および設定します。
ビットがオンの場合、対応する継承ロックはオンになります。ビットの順序は、次のとおりです。#POS_X,POS_Y,POS_Z,ROT_X,ROT_Y,ROT_Z,SCALE_X,SCALE_Y,SCALE_Z
#none を指定すると、すべてのロックがチェックされません。
例については、「チュートリアル - 変換ロック スクリプトの開発」を参照してください。
ノードの可視性コントローラのインスタンスを返します。ノードに可視トラックがない場合は undefined を返します。
親オブジェクトが存在し、ノードが親の可視性を継承する場合は true を返し、その他の場合は false を返します。
親オブジェクトが存在し、ノードが親の可視性を継承するかどうかを設定します。 <boolean> が true の場合、ノードは可視性を継承します。 <boolean> が false の場合、ノードは可視性を継承しません。
ノードのイメージ モーション ブラー マルチプライヤ コントローラを返します。ノードにイメージ モーション ブラー マルチプライヤ コントローラが割り当てられていない場合は、undefined を返します。
ノードのイメージ モーション ブラー マルチプライヤ値を指定した時間に指定した値に設定します。
ノードのイメージ モーション ブラー マルチプライヤ コントローラを指定したコントローラに設定します。
ノードに対してどのタイプのモーション ブラーを使用するかを設定します。 <integer> が 1 の場合は、なしです。 <integer> が 2 の場合は、オブジェクト モーション ブラーです。 <integer> が 3 の場合は、イメージ モーション ブラーです。
ノードがレンダリング可能かどうかを設定します。 <boolean> が true の場合、ノードはレンダリング可能です。 <boolean> が false の場合、ノードはレンダリングできません。
ノードの RenderID を返します。シーンがまだレンダリングされていない場合、またはノードがレンダリング不可能の場合は、65535 という値が返されます。ノードの RenderID とは、レンダラーによる NODE_RENDER_ID G-バッファ チャネルへの出力です。
ノードの RenderID を指定した値に設定します。この値は、「スティッキー」ではありません。つまり、シーンとともに保存されることはなく、次にレンダリングを行うときにレンダラーによって置き換えられます。
指定したノードのグループを作成し、グループ ノードを返します。オプションで、グループ名またはグループ名のプレフィックスを指定することもできます。グループ名やグループ名のプレフィックスを指定しないでおくと、一意のグループ名を確実に割り当てることができます。 select:true を指定すると、作成後にグループが選択されます。
result = group $box* if (isvalidnode result) do ...
ノード コレクションを既存のグループにアタッチします。既にグループのメンバーの場合は他のグループにアタッチできません。
<ノード_collection> は、targetノード のグループにアタッチするノードの配列です。
<targetノード> は、グループ メンバー、またはグループ ヘッドのノードでなければいけません。<ノードCollection> のメンバーにはなれません。
<node_collection>は、グループ ヘッドからデタッチされたノードの配列です。<nodeCollection> のメンバーは、グループ メンバーを開きます。
ノードがグループ ヘッドの場合は true を返し、その他の場合は false を返します。
<node> がグループのヘッドで、そのグループが開かれている場合は true を返します。
ノードがグループ内にある場合は true を返し、その他の場合は false を返します。
<node> がグループのメンバで、そのグループが開かれている場合は true を返します。
グループを開くか、閉じるかを設定します。 <boolean> が true の場合、グループは開いた状態として設定されます。 <boolean> が false の場合、グループは閉じた状態として設定されます。
ノードをグループ メンバとするかどうかを設定します。 <boolean> が true の場合は、ノードはグループ メンバとして設定されます。 <boolean> が false でノードがグループ メンバの場合は、ノードはグループ メンバではないように設定されており、グループ ヘッドとリンクされていません。
ノードをグループ ヘッドとしてフラグ設定するかどうかを設定します。 <boolean> が true の場合は、ノードはグループのヘッドとしてフラグ設定されます。 <boolean> が false の場合は、ノードはグループのヘッドではないように設定されます。
オプションの doLayer キーワードを true に設定して、そのノードを非表示のレイヤに配置すると、レイヤ全体が表示されます。 false (既定値)の場合は、ノードが表示されるだけです。
指定したノードまたはノード コレクションをフリーズ解除します。
オプションの doLayer キーワードを true に設定して、そのノードをフリーズされたレイヤに配置すると、レイヤ全体がフリーズ解除されます。false (既定値)の場合は、ノードがフリーズ解除されるだけです。
ビューポートのフォアグラウンド/バックグラウンド面におけるシーン ノードの状態を設定します。これにより、特定のノードに対してインタラクティブに操作できます。フォアグラウンド平面に配置されたノードは個別に再描画されるため、スクリプトで書かれたロールアウト パネルでスピナーからそのノードをインタラクティブに変更する作業は、大幅に高速になります。
ブール値の引数が true の場合には、シーン ノードをフォアグラウンド平面に配置します。 false の場合には、バックグラウンド平面に配置します。フォアグラウンド平面にあまり多くのオブジェクトを配置するとフォアグラウンド平面のパフォーマンスが低下しますので、フォアグラウンド平面にノードを配置する場合には十分注意してください。オブジェクトをインタラクティブにコントロールする必要がなくなった場合には、オブジェクトのフラグを解除するようにしてください。
ノードの軌道が表示された場合は true を返し、その他の場合は false を返します。
ノードの軌道を表示するかどうかを設定します。 <boolean> が true の場合、軌道は表示されます。 <boolean> が false の場合、軌道は表示されません。
ノードの showLinksOnly プロパティが true の場合、 true を返します。
シェーディングされたビューポート内の頂点カラーを使用してノードが表示された場合は true を返し、その他の場合は false を返します。
シェーディングされたビューポート内で、ノードに割り当てられた頂点カラーの効果を表示するかどうかを設定します。 <boolean> が true の場合は、ノードは頂点カラーを使用して表示されます。 <boolean> が false の場合は、ノードはマテリアルまたはワイヤフレームのカラーで表示されます。
ノードの頂点カラーの表示がビューポートでシェーディングされている場合は true を返し、その他の場合は false を返します。
ビューポート内でノードの頂点カラーの表示をシェーディングするかどうかを設定します。 true の場合、カラーはシェーディングされず、純粋な RGB 値で表示されます。 false の場合、カラーはビューポートに割り当てられた他のカラーと同じように表示されます。
現在選択されているオブジェクトをすべて選択解除し、指定したノードを選択します。
選択されているオブジェクトのセットに、ノードを追加します。選択オブジェクトのセットをループ内で最初から作成する場合は、 clearSelection() を使用してループに入る前に選択を解除し、ループ内で selectMore() を使用して、選択オブジェクトのセットにオブジェクトを追加できます。
現在選択されているシーン ノードをすべて選択解除します。 redraw:false が指定されている場合を除いて、シーンは再描画されません。
指定された <node> または、オブジェクト セットやグループ内のすべてのオブジェクトに特定のモディファイヤまたはモディファイヤ クラスが追加できるかどうかをテストします。追加できる場合は true を返し、追加できない場合は false を返します。
validModifier() メソッドは、モディファイヤの適用性を判断するときには[修正](Modify)パネルと同様に機能します。変形可能なオブジェクトを受け入れるモディファイヤはすべて、ヘルプ以外のすべてのシーン オブジェクトに対して true を返します。これは、[ベンド](Bend)、[テーパ](Taper)などのモディファイヤを、ライト、カメラ、スペース ワープ オブジェクトなどの他に、ボックス、球などのジオメトリ タイプに対して適用できるようにする一方で、ダミーやボーンなどのヘルパーには適用できない修正パネルの動作に対応します。
validModifier() メソッドは、空の <objectset> が指定されるか、または <group> が指定されたグループのすべてのメンバに対応するモディファイヤが有効になっている場合は、 true を返します。このような場合、 addModifier() メソッドを使ったモディファイヤの適用は失敗します。これは、 <objectset> が空である(最初のケース)か、グループの各オブジェク の親オブジェクトであるダミー オブジェクトにモディファイヤを適用できないためです。これらの条件については、スクリプトや「修正パネル」で説明されている modPanel.addModToSelection() メソッドを使ってテストする必要があります。
関数が適用されるノードのすべての インスタンスにモディファイヤを追加します。オプションの before: キーワード引数を使用して、ノードのモディファイヤ スタックの最上位から見てインデックス付けされたモディファイヤの直前の位置にモディファイヤを挿入できます。
3ds Max 3 以降、 addModifier() では、モディファイヤを追加するときに、モディファイヤ スタック内でアクティブである可能性のあるサブオブジェクト選択は保持されなくなりました。モディファイヤを追加すると同時にサブオブジェクト選択を保持する必要のある場合は、「[修正](Modify)パネル」で説明されている modPanel.addModToSelection() メソッドを使用します。
<node> がコレクションの場合、モディファイヤのインスタンスはコレクション内のすべてのノードに配置されます。インタラクティブにモディファイヤを選択に対して適用するのとは異なり、各モディファイヤ インスタンスのギズモの位置とサイズは、モディファイヤ インスタンスを適用するノードの位置とサイズに対応します。3ds Maxがモディファイヤを適用するときと同じ方法で、コレクションにモディファイヤを適用するには、「[修正](Modify)パネル」で説明されている modPanel.addModToSelection() メソッドを使用します。
詳細は、「モディファイヤ および SpacewarpModifier」 を参照してください。
モディファイヤ スタックからモディファイヤを削除できます。 <node> スタックに存在するモディファイヤの値を取るか、またはインデックスを取り、スタックの最上位から見て削除するモディファイヤのインデックスを指定します。
スタックからモディファイヤを集約して、スタックの最上位のノードのクラスに対応する編集可能基本オブジェクトを残します。これを呼び出すときにスタックの中にモディファイヤが存在しない場合は、何も行われません。オブジェクトを強制的に編集可能メッシュにする場合は、次の convertToMesh() 関数を使用します。
モディファイヤ サブオブジェクト ギズモで使われたローカル座標に、モディファイヤのコンテキスト変換を提供する Matrix3 値を返します。
モディファイヤのサブオブジェクトの変換プロパティ(MAXScript のギズモや中心など)にアクセスすると、そのモディファイヤのコンテキスト変換に相対した値が生成されます。これは、トラック ビューで表示される変換プロパティの値と同じです。モディファイヤが面や頂点の選択などのサブオブジェクト選択で機能しない場合、またはモディファイヤをオブジェクトの選択にインタラクティブに適用した場合、このコンテキスト TM はオブジェクトのローカル座標空間になります。一方、モディファイヤがオブジェクト選択セットまたはサブオブジェクト選択で機能している場合、このコンテキスト変換により、その選択の位置と方向が与えられるため、 getModContextTM() 関数を使って、そのサブオブジェクトのワールド空間変換プロパティを取得できます。
特定のノード上の指定されたモディファイヤのモディファイヤ コンテキスト変換行列を設定します。
3ds Max 2008 以降 で使用可能です。従来、Avguard 機能拡張として提供されていた機能です。
これらの関数は getModContextTM() 関数を補完するもので、これを使ってモディファイヤ コンテキストのバウンディング ボックスのワールド空間座標を派生させることができます。たとえば、これを使ってサブ選択に作用するモディファイヤの境界や、FFD ラティスの境界を決定できます。FFD コントロール ポイントの位置をスクリプト記述する場合に、このことが特に役立ちます。これは、これらのコントロール ポイントが 0 対 1 のラティス空間に存在するためです。モディファイヤ コンテキストのバウンディング ボックスにより、このラティス空間のワールド空間境界が設定されることで、スケール処理したラティス空間座標をワールド座標から計算できるようになります。この関数は、バウンディング ボックスの最小範囲と最大範囲に対して Point3 値を返します。
特定のノード上のモディファイヤのモディファイヤ コンテキスト バウンディング ボックスを指定された最小値および最大値に設定します。
3ds Max 2008 以降 で使用可能です。従来、Avguard 機能拡張として提供されていた機能です。
上のメソッドの使用例については、「モディファイヤ サブオブジェクト変換プロパティ」を参照してください。
ノードのオブジェクトが変形可能である場合に true を返します。3ds Max 2008 以降 で使用可能です。
従来、Avguard 機能拡張として提供されていた機能です。
変形可能なオブジェクトとは |
変形可能なオブジェクトとは、修正可能なポイントが含まれているオブジェクトです。そのようなポイントは、オブジェクトが要求する任意の形式で内部的に保存することができます。「i 番目」のポイントを取得および設定するためのメソッドを使用して、仮想配列インタフェースを介してアクセスします。 この抽象レイヤによって 3ds Max は同じモディファイヤを、さまざまなジオメトリ クラス(編集可能メッシュ、編集可能ポリゴン、スプライン、パッチ、NURBS)に適用することができます。このとき、これらのクラスの内部構造に関する専門知識は必要ありません。モディファイヤは、仮想配列インタフェース メソッドを介してオブジェクトによって提供されるポイントに対して単に動作しますが、これらのポイントは、頂点、ベジェ スプラインのノットおよび接線、パッチのノットおよび接線などになります。 'on map <index> <point> do' ハンドラを実装することによって、ポイント上でこのような動作が可能なスクリプト化されたモディファイヤについては、「スクリプト SimpleMod プラグイン」を参照してください。 |
ノードのオブジェクトの変形可能ポイントの数を返します。3ds Max 2008 以降 で使用可能です。従来、Avguard 機能拡張として提供されていた機能です。
ノードのオブジェクトの、インデックスで指定されたポイントの位置を返します。位置は現在の座標系に戻ります。3ds Max 2008 以降 で使用可能です。従来、Avguard 機能拡張として提供されていた機能です。
座標系 matrix3 におけるノードのバウンディング ボックスの最小ポイントおよび最大ポイントが含まれている 2 要素配列を point3 値として返します。返される位置は必ず指定された matrix3 座標系における位置です。
3ds Max 2008 以降 で使用可能です。従来、Avguard 機能拡張として提供されていた機能です。
ノードのローカル バウンディング ボックスの最小ポイントおよび最大ポイントが含まれている 2 要素配列を返します。ここで「位置」とは、現在の座標系における位置です。
3ds Max 2008 以降 で使用可能です。従来、Avguard 機能拡張として提供されていた機能です。
この関数は、該当するシーン オブジェクトのタイプを編集可能メッシュに変換します。この関数は、存在するすべてのモディファイヤを削除する collapseStack() に似ていますが、 collapseStack() とは異なり、たとえモディファイヤが存在しない場合でも、基本オブジェクトを編集可能メッシュに常に置き換えます。
convertToMesh() は、メッシュ編集モディファイヤが作用可能なオブジェクトすべてに適用できます。たとえば、ジオメトリやシェイプには適用できますが、ヘルパー、スペース ワープ、ライトなどには適用できません。オブジェクトが変換不可能な場合、関数は undefined を返します。
指定されたシーン ノードを SplineShape オブジェクトに変換します。オブジェクトを変換できない(通常はオブジェクトがシェイプでない)場合、この関数は undefined を返します。存在するモディファイヤはすべて集約されます。 collapseStack() 関数も、3ds Max の[モディファイヤ スタック](modifier stack)ダイアログ ボックスにおける[集約](collapse)ボタンと同じ用途で使用できます。いずれもスプライン シェイプを生成しますが、これは少なくとも 1 つのモディファイヤが存在するときに限られます。
これにより、指定されたノードが指定されたクラスに変換可能かどうかをテストできます。 true または false を返します。
オブジェクトを変換できるクラスは汎用の編集可能形式のもので、Mesh、SplineShape、NURBSCurve、NURBSSurface などがあります。
この関数は、既存の特定の変換関数( convertToMesh() 、 convertToSplineShape() など)の標準形式です。
convertToSplineShape() は次のように記述することができます。
変換がサポートされていない場合、関数は undefined 値を返します。
これらの関数は、NURBS への変換をサポートしている基本的なジオメトリおよびシェイプのクラス(四角形、球、円、線など)に作用します。オブジェクトが変換をサポートしていない場合、この関数は undefined を返します。
オブジェクトが既に削除されている場合、この関数は true を返し、オブジェクトがまだシーン内に存在している場合は、 false を返します。この関数の使用は、3ds Max オブジェクトへの参照が変数や配列内に保持される場合や、パラメータとして渡され、オブジェクトがシーンから削除されているかどうかを判断したい状況でのみ役立ちます。変数や配列で参照された削除済みの 3ds Max オブジェクトで演算が実行されると、他の方法で例外が発生します。シーン オブジェクト、モディファイヤ、コントローラ、マテリアルなど、どの種類の 3ds Max オブジェクトもこの方法でテストすることができます。
<node> == undefined は false を返します。
<node> != undefined は true を返します。
レイと指定したノードのサーフェスのもっとも近い交差を計算します。3D スペースにおいて交差の位置を定義する別のレイと、その点におけるサーフェスの法線ベクトルを返します。交差のテストではノード面の法線が考慮されます。面の法線がレイのソースとは離れた方向を指している場合には、その面に対しては交差のテストは実行されません。 intersectRay() は、ノードのワールド状態(ノード スタックの最上位にあるノードの状態)に、編集可能メッシュ、標準プリミティブ、拡張プリミティブ、合成プリミティブ、パッチ、または NURBS サーフェス オブジェクトのようなサーフェスがある場合に機能します。スプラインおよび NURBS カーブにはサーフェスはありません。レイがノードと交差しない場合、レイが交差する面がレイの位置とは離れた方向を指している場合、またはノードにサーフェスがない場合は、 undefined が返されます。
レイをとって、所定のノードのサーフェスから最も近い交差点を計算します。次の 3 つの要素を持つ配列を返します。
ノードがもともと編集可能メッシュであったか、ノードをメッシュに変換するモディファイヤが適用されているために、ノードのワールド状態がメッシュとなっている場合にのみ、このメソッドは機能します。 intersectRay() とは異なり、このメソッドはノードが標準プリミティブまたは拡張プリミティブである場合には機能しません。ノードのスタックは、メッシュに対して評価する必要があります。交差のテストではノード面の法線が考慮されます。面の法線がレイのソースとは離れた方向を指している場合には、その面に対しては交差のテストは実行されません。レイがノードと交差しない場合、レイが交差する面がレイの位置とは離れた方向を指している場合、またはノードがメッシュでない場合、 undefined が返されます。
シーン内のすべてのノード上で intersectRay を実行します。
ノード ヒットあたり 1 エントリの結果の配列を返します。各エントリは、ノードおよびそのノードに対する intersectRay の結果が含まれている 2 要素配列です。
この交差は、非表示のオブジェクトを含む、すべてのジオメトリ オブジェクトに対して実行されます。
3ds Max 2008 以降 で使用可能です。従来、Avguard 機能拡張として提供されていた機能です。
指定した 2 つのノードのバウンディング ボックスが重なる場合は true 、重ならない場合は false を返します。
指定されたノードに対する現在のモディファイヤ スタックの表示を出力します。
getLastMergedNodes()
前回の合成操作(mergeMAXFile()など)によってロードされたノードの配列を返します。
指定したキーのノードのユーザ定義プロパティを文字列として取得します。 <key_string> は文字列値または名前値です。キーが存在しない場合は、 undefined 値が返されます。
ノードに対して、指定したキーのユーザ プロパティを指定した値に設定します。
ユーザ プロパティ バッファ全体をすべてのユーザ プロパティ設定を含む文字列として取得します。これは、[3ds Max オブジェクト プロパティ](Object Properties)ダイアログ ボックスの[ユーザ定義プロパティ](User Defined Properties)ボックスの内容と同じです。
ユーザ定義プロパティ バッファを指定した文字列に設定します。
これらのメソッドの詳細は、「ノードのユーザ定義プロパティとメソッド」を参照してください。
次のメソッドは、[階層](Hierarchy)パネルの[オブジェクト パラメータ](Object Parameters)ロールアウトに表示されるノードの IK 値を取得および設定します。
指定した軸で位置バインドまたは回転バインドがオンになったかどうかにより、 true または false を返します。軸がオフになった場合、指定した軸は従属オブジェクトや IK コントローラ位置エンド エフェクタによって影響を受けることはありません。 <pos_or_rot_integer> により、メソッドによって返されるのが位置状態であるか、回転状態であるかを設定します。0 は位置状態、1 は回転状態になります。 <axis_integer> により、確認する軸を設定します。0 は X 軸、1 は Y 軸、2 は Z 軸になります。
位置バインドまたは回転バインドの軸状態を指定したブール値に設定します。パラメータの詳細については、 getTaskAxisState() を参照してください。
指定したノードの変換コントローラ上の指定した IK コンストレイントを、指定した軸に対してミラーします。 <axis_integer> により、反射の軸を指定します。0 は X 軸、1 は Y 軸、2 は Z 軸になります。 <pos_or_rot_integer> は、ミラーされるコンストレイントのタイプを指定します。0 は位置状態、1 は回転状態になります。
このメソッドは、ノード レベルの IK パラメータを変更したときに呼び出します。
<ik_node> が従属オブジェクトとして <node> にバインドする場合は true を返し、その他の場合は false を返します。 <ik_node> が IK システムの一部でない場合は、このメソッドは必ず true を返します。このメソッドは、 <node> をテストしてその変換が IK システムに従属であるかどうかを確認し、従属の場合は false を返します。
ノードのワールド状態(スタックのトップにおけるノードの状態)のクラスを返します。基本オブジェクトにモディファイヤが適用されていない場合、返されるクラスは基本オブジェクトのクラスになります。基本オブジェクトにモディファイヤが適用されている場合は、返されるクラスはノードが最後のモディファイヤを終了するときのクラスになります。たとえば、ボックスにベンド モディファイヤを適用した場合、ベンド モディファイヤにより入ってくるボックス プリミティブがメッシュに変換され、 classOf によって返されたクラスは Editable_Mesh となります。 classOf <node>.baseObject を使用して、すべての場合に基本オブジェクトのクラスを取得できます。
指定したポイントが選択されている場合は true を返し、選択されていない場合は false を返します。
「ポイント」の定義は、オブジェクト タイプによって異なります。
NURBS オブジェクトの場合は頂点やコントロール ポイントになります。
スプラインの場合は、ノットとその入出力ベジェ ハンドルになります。スプラインには 3 倍のノットが含まれ、ノットが選択されると、そのベジェ ハンドルも選択されたとみなされます。したがって、正しいノット値をクエリーするには、<point_index>に 3 を乗算する必要があります。たとえば、編集可能スプラインのノット 1 が選択され、ノット 2 が選択されていない場合、インデックス 1、2、3 では True が返されますが、インデックス 4、5、6 では False が返されます。
オブジェクトがソフト選択をサポートしている場合は、選択したポイントに重みを付けた浮動小数点数を返します。ほとんどのオブジェクト タイプは、ポイントが選択されている場合に 1.0 を返し、選択されていない場合は 0.0 を返します。現在、重み付きポイントの選択がサポートされているのは、NURBS、編集可能メッシュ、および編集可能ポリゴン オブジェクトのみです。
ノードが占めているビューポート内の長方形を無効にします。無効としてフラグ設定された長方形は、次に画面が再描画されるときに更新されます。
このメソッドは現在のオブジェクトの作成を中止します(作成中の場合)。このメソッドは、主に NURBS オブジェクトが完全に作成されている(作成が中止されるまで)ことを確認する目的で使用されます。また、このメソッドは、[作成](Create)パネルでアクティブになっているオブジェクト作成用の各ボタンを非アクティブにします。
シーン内にオブジェクトを作成する場合に 3ds Max で行われるのと同様の方法で、一連の桁数を追加することによってプレフィックス文字列から一意のシーン ノード名を生成します。この名前は、次のシーン ノードが生成されるまでの間に限り、その固有性が保証されます。
3ds Max 2011 以降で使用できるオプションのキーワード引数 numDigits: で、使用する桁数をコントロールします。
この値が提供されない場合、3ds Max 2011 以降のバージョンでは既定値として 3 桁に設定されます。
3ds Max 2011 以前のリリースではこの桁数は 2 でした。