値 > MAXWrapper > ノード > GeometryClass > シェイプ > SplineShape |
編集可能メッシュがジオメトリ オブジェクトの編集可能バージョンであるように、SplineShape はシェイプ オブジェクト全般の編集可能バージョンです。SplineShape は、スプライン編集モディファイヤを適用してシェイプの基本オブジェクトでモディファイヤ スタックを集約したときに、シェイプが変換されてできるオブジェクトです。MAXScript では、個々のカーブ(スプライン)とコントロール ポイント(ノット)を追加しながら SplineShapes をゼロから作成したり、既存のシェイプを SplineShape に変換して、以下に示すメソッドを使って作成したりすることができます。
スプライン シェイプの作成および修正の実際の操作例については、以下も参照してください。
このトピックにリストされているメソッドを使用して既存のシェイプを操作するためには、このシェイプを SplineShapes(編集可能スプライン)に変換する必要があります。変換するには、 convertToSplineShape() 関数を使用してください。
updateShape() 関数 のみ が、3ds Max ビューポートの内部キャッシュとイメージを更新できます。これは、更新操作は計算面で負担が大きく、関数呼び出しのたびに更新を実行するのは好ましくないからです。ただし、一連の変更を行った後で、3ds Max でメッシュを操作する前や MAXScript で他の関数を使ってメッシュを操作する前に、必ず updateShape() 関数を呼び出さなければなりません。
ベジェ コントロール ポイントのイン ベクトルとアウト ベクトルは、本当のベクトルではなく、ベクトル ハンドル座標として与えられます。
座標は、MAXScript の作業座標系で与えられます。オブジェクトのローカル座標で常に作用する SDK スプライン関数に慣れている場合は、このことに注意することが重要です。
[修正](Modify)パネルで選択され、現在開かれているオブジェクトに対して updateShape() 関数を呼び出すと、3ds Max のクラッシュを回避するため現在の選択が解除されます。現時点では、[修正](Modify)パネルで開いているオブジェクトに対するスクリプトの変更はサポートされていません。
スプライン オブジェクトを作成または修正するとき、スプラインでまだ updateShape() を実行していない場合、3ds Max ウィンドウを最小化してから最大化すると 3ds Max がクラッシュすることがあります。これは、不完全なスプラインが作成され、内部 3ds Max のスプライン構造が不安定な状態に置かれるためです。
[レンダラーを有効](Enable in Renderer)チェックボックスをオンまたはオフに切り替えます。
[ビューポートを有効](Enable In Viewport)チェック ボックスのオンとオフを切り替えます。true に設定した場合、メッシュはビューポートに表示されます。
<SplineShape>.render_useViewportSettings BooleanClass default: false -- boolean; useViewportSettings
[ビューポート設定を使用](Use Viewport Settings)チェックボックスをオンまたはオフに切り替えます。
true に設定した場合、ビューポートに表示されたメッシュはビューポート設定を使用します。
false の場合、ビューポート メッシュにはレンダリング設定が使用されます。
[マッピング座標の生成](mapping coordinates generation)をオンまたはオフに切り替えます。
U 座標は、スプラインの幅に合わせて一度ラップされます。 V 座標は、スプラインの長さに合わせて一度マッピングされます。
[リアル ワールド マップ サイズ](real-world map size)オプションをオンまたはオフに切り替えます。
<SplineShape>.render_displayRenderSettings BooleanClass default: true -- boolean; displayRenderSettings
[ビューポート/レンダリング]ラジオ ボタンの状態を切り替えます。
true に設定した場合、レンダリング設定がロールアウトに表示されます。
false の場合、代わりにビューポート設定が表示されます。
true に設定した場合、レンダラーで矩形断面モードを使用できるようになります。
false の場合(既定値)、放射状断面モードが有効になります。
レンダリング モードにおける UI の[放射状](Radial)と[矩形](Rectangular)ラジオ ボタンに対応しています。
true に設定した場合、ビューポートで矩形断面モードを使用できるようになります。
false の場合(既定値)、放射状断面モードが有効になります。
ビューポート モードにおける UI の[放射状](Radial)と[矩形](Rectangular)ラジオ ボタンに対応しています。
レンダリング可能な矩形スプライン メッシュの長さを取得/設定します。
レンダリング可能な矩形スプライン メッシュの幅を取得/設定します。
[アスペクト](Aspect)のロック チェックボタンの状態をコントロールします。
true に設定した場合、幅を変更すると、ロックが掛けられた時点でのアスペクトを維持しながら高さが変更されます。 その逆に高さを変更しても同じです。
ビューポート内の矩形スプライン メッシュの長さを取得/設定します。
ビューポート内の矩形スプライン メッシュの幅を取得/設定します。
[アスペクト](Aspect)のロック チェックボタンの状態をコントロールします。
true に設定した場合、幅を変更すると、ロックが掛けられた時点でのアスペクトを維持しながら高さが変更されます。 その逆に高さを変更しても同じです。
[自動スムーズ](Auto Smooth)チェックボックスの状態をコントロールします。
[自動スムーズ](Auto Smooth)の[しきい値](Threshold)の値を取得/設定します。3ds Max 8 以降 で使用可能です。
最高 3*N までの頂点および接線座標をプロパティとして使用できます。N は、スプライン シェイプ内の頂点の数を示します。
コントローラが頂点に割り当てられると、頂点とその接線はプロパティとして使用できます。
コントローラは「頂点およびコントロール ポイントのアニメーションのスクリプト」で説明されている animateVertex() メソッドを使用して頂点に割り当てられます。
たとえば、円オブジェクトが SplineShape に集約され、その頂点のいくつかがアニメートされている場合、頂点と接線のプロパティは次のようになります。
$Circle01.Spline_1___InVec_1 Point3 value: [-75,33,0] -- animatable $Circle01.Spline_1___Vertex_1 Point3 value: [-75,33,0] -- animatable $Circle01.Spline_1___OutVec_1 Point3 value: [-50,0,0] -- animatable $Circle01.Spline_1___InVec_2 Point3 value: [-20,-33,0] -- animatable $Circle01.Spline_1___Vertex_2 Point3 value: [7,-66,0] -- animatable $Circle01.Spline_1___OutVec_2 Point3 value: [32,-95,0] -- animatable
補間ロールアウトの[最適化](Optimize)チェックボックスの状態をコントロールします。
[ラインを作成](Create Line)コマンド モードに入ります。これは、すべてのサブオブジェクト レベルで、サブオブジェクト モード以外のときに有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
[ブレーク](Break)コマンド モードに入ります。これは、頂点およびセグメント サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
[アタッチ](Attach)コマンド モードに入ります。これは、すべてのサブオブジェクト レベルで、サブオブジェクト モード以外のときに有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
ユーザが複数のシェイプを選択して添付できる[複数アタッチ](Attach Multiple)ダイアログ ボックスを表示します。これは、すべてのサブオブジェクト レベルで、サブオブジェクト モード以外のときに有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
[リファイン](Refine)コマンド モードに入ります。これは、頂点およびセグメント サブオブジェクト レベルで有効です。これは、頂点サブオブジェクト レベルおよびセグメント サブオブジェクト レベルで有効です。このメソッドは[接続](Connect)チェックボックスをオフにしないので、事実上 startRefineConnect() メソッドと同じです。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
[リファイン](Refine)コマンド モードに入ります。これは、頂点およびセグメント サブオブジェクト レベルで有効です。これは、頂点サブオブジェクト レベルおよびセグメント サブオブジェクト レベルで有効です。このメソッドは[接続](Connect)チェックボックスをオンにしないので、事実上 startRefine() メソッドと同じです。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
選択した頂点を連結します。これは、頂点サブオブジェクト レベルで有効です。
「シェイプ メソッド - 連結」にある関連メソッドも参照してください。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
[接続](Connect)コマンド モードに入ります。これは、頂点サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
[挿入](Insert)コマンド モードに入ります。これは、すべてのサブオブジェクト レベルで、サブオブジェクト モード以外のときに有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
選択した頂点をスプラインの最初の頂点にします。これは、頂点サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
選択した頂点を融合します。これは、頂点サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
選択したスプラインの頂点の順序を逆に並べ替えます。これは、スプライン サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
スプラインの頂点を循環し、各頂点を選択します。このメソッドが呼び出される前に少なくとも 1 つの頂点が選択されている必要があります。
複数の頂点を選択した状態でこのメソッドを呼び出すと、最初のシェイプの最初の頂点が選択されます。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
[交差挿入](CrossInsert)コマンド モードに入ります。これは、頂点サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
[フィレット](Fillet)コマンド モードに入ります。これは、頂点サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
[面取り](Chamfer)コマンド モードに入ります。これは、頂点サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
[アウトライン](Outline)コマンド モードに入ります。これは、スプライン サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
[ブール演算ユニオン](Boolean Union)コマンド モードに入ります。これは、スプライン サブオブジェクト レベルで有効です。
このコマンド モードに入るには、閉じたスプラインが 1 つだけ選択されていなければなりません。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
[ブール演算の差](Boolean Subtract)コマンド モードに入ります。これは、スプライン サブオブジェクト レベルで有効です。
このコマンド モードに入るには、閉じたスプラインが 1 つだけ選択されていなければなりません。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
[ブール演算の公差](Boolean Intersect)コマンド モードに入ります。これは、スプライン サブオブジェクト レベルで有効です。
このコマンド モードに入るには、閉じたスプラインが 1 つだけ選択されていなければなりません。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
選択したスプラインを水平にミラーします。これは、スプライン サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
選択したスプラインを垂直にミラーします。これは、スプライン サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
選択したスプラインを水平および垂直にミラーします。これは、スプライン サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
[トリム](Trim)コマンド モードに入ります。これは、スプライン サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
[延長](Extend)コマンド モードに入ります。これは、スプライン サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
[接線](Tangent)の[コピー](Copy)コマンド モードに入ります。これは、頂点サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
[接線を貼り付け](Paste Tangent)コマンド モードに入ります。これは、頂点サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
選択したサブオブジェクトを非表示にします。これは、すべてのサブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
非表示のサブオブジェクトをすべて表示します。これは、すべてのサブオブジェクト レベルで、サブオブジェクト モード以外のときに有効です。
「シェイプ メソッド - 非表示と再表示」にある関連メソッドも参照してください。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
[バインド](Bind)コマンド モードに入ります。これは、頂点サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
選択した頂点のバインドを解除します。これは、頂点サブオブジェクト レベルで有効です。
「シェイプ メソッド - バインドとバインド解除」にある関連メソッドも参照してください。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
選択したサブオブジェクトを削除します。これは、すべてのサブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
選択したスプラインを閉じます。これは、スプライン サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
選択したセグメントを分割します。これは、セグメント サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
ユーザがオブジェクト名を指定できる[デタッチ](Detach)ダイアログ ボックスを表示します。これは、すべてのサブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
選択したスプライン内の各セグメントを個別のスプラインまたはオブジェクトに分割します。これは、スプライン サブオブジェクト レベルで有効です。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
「シェイプ メソッド - マテリアル ID」にある関連メソッドも参照してください。
UI に関連するメソッドの完全なリストについては、「編集可能スプラインの修正パネル コマンド モードおよび操作」を参照してください。
このキットの他の関数による変更のすべてを反映させるため、シェイプの内部キャッシュとビューポート表示を更新します。この更新は、3ds Max やその他のコードが修正されたシェイプ オブジェクトを操作する前に実行しなければなりません。
updateShape() 関数は、スクリプト化された変更をすべて、存在するモディファイヤ スタックの最下位への基本オブジェクトのスプライン シェイプに加えます。
スタック内の既存のモディファイヤがトポロジ変更のような修正によって無効になる可能性がありますが、それを警告する機能はないので注意してください。
これは、オブジェクトの無効に関する警告を無視して、[修正](Modify)パネル内で基本オブジェクトを開いて修正することと同じです。
これは、 <shape>.numSplines と同じです。
シェイプ内のスプラインの順序を変えて、番号で指定されたスプラインをシェイプ内の最初のスプラインにします。
この関数は、ロフタにおける複数のスプラインを含むシェイプや、サーフェス ツールのようにスプラインの順序が重要となるその他のモディファイヤを操作する場合に効果的です。
スプラインの最初のノットまたは最後のノットを指定したセグメントの中点にバインドします。
バインドはコンストレイントとして機能し、スプラインの最初のノットまたは最後のノットがセグメントの中点に来るよう強制的に配置されます。
<isEnd_boolean> を true に設定すると、スプラインの最後のノットがバインドされます。それ以外の場合は、最初のノットがバインドされます。
<splineId_integer>は、バインドする最初のノットまたは最後のノットが属するスプラインのインデックスを指定します。<segIndex_integer>は、バインドされるセグメントのインデックスを指定します。<splineSegId_integer>は、セグメントへのバインドが属するスプラインのインデックスを指定します。
指定されたスプラインの指定された最初のノットまたは最後のノットのバインドを解除します。
バインド リストを更新するためにトポロジを変更するときに呼び出されます。たとえば、バインドされたスプラインからノットが削除されたり、スプラインにバインドされたりした場合です。
<vertex_spec> が次のいずれかである splineshape の指定された頂点と接線にコントローラを適用します。
コントローラを頂点と接線に割り当てると、頂点と接線は Master SubAnim に追加され、トラック ビューではアニメート可能として表示されます。このため、これらの頂点と接線をさらにスクリプトで記述できるようになります。
アニメートされた頂点は、インデックス番号で指定されるか、またはすべての頂点をアニメートするキーワード #all で指定されます。
splineshape の頂点と接線へのアクセスについては、「クラスとオブジェクトの調査関数」 と「頂点およびコントロール ポイントのアニメーションのスクリプト」を参照してください。頂点および接線ハンドラに割り当てられたコントローラ値はオブジェクト空間内にあります。ワールド空間からオブジェクト空間への変換については、「ノード変換プロパティの使い方」を参照してください。
新しいスプライン カーブをスプライン シェイプに追加し、そのスプライン カーブのスプライン インデックスを表す整数を返します。
スプライン カーブは、1 で始まるインデックス番号で指定されます。
addNewSpline() 関数は、シェイプ内のカーブのリストの最後に新しいスプライン カーブを追加します。
シェイプ内で選択したスプラインのインデックスを整数の配列で返します。
指定されたシェイプ内の <spline_index_array>によって指定されたスプラインを選択します。
<spline_index_array>は、スプラインのインデックスを指定する整数の配列です。
keep:true が指定されている場合を除いて、既に選択されたスプラインは選択解除されます。
インデックスで指定されたスプライン カーブをシェイプから削除します。
削除の結果を反映させるため、残りのカーブの番号は更新されます。
インデックスで指定されたスプライン内のライン セグメントの数を返します。
これは、閉じたスプラインのノットの数と同じで、開いたスプラインのスプライン数から 1 を引いた値と同じです。
インデックスで指定されたスプライン内のノット(頂点またはコントロール ポイント)の数を整数で返します。
スプラインのインデックスが指定されていない場合は、シェイプ全体のノットの数を返します。
インデックス付きのスプラインが閉じている場合は true を、開いている場合は false を返します。
インデックスで指定されたスプラインの最後のノットと最初のノットの間を開きます。
インデックスで指定されたスプラインでノットの順番を逆にします。
インデックスで指定されたスプラインのノットの順序を変え、指定されたノットをスプライン内の最初のノットにします。
指定された splineShape の中で、指定された許容度内にある選択されているノットを結合します。
従来、Avguard 機能拡張として提供されていた機能です。
getSegLengths <splineShape> <spline_index> [cum:<boolean>] \ [byVertex:<boolean>] [numArcSteps:<integer>]
スプラインの小数と長さ、およびスプラインの全長を使って、セグメント長または頂点距離の配列を返します。
cum:true の場合の結果は累積であり、それ以外の場合は相対です。
byVertex:true の場合の結果は頂点ごとで、それ以外の場合はセグメントごとです。
既定値: cum:false byVertex:false numArcSteps:100
インデックスが指定されたカーブ上の<point3>座標を返します。
pathParam:false の場合、param_float はスプライン長の小数部で、それ以外の場合はセグメント ベース(パス)の小数部です。
インデックスが指定されたカーブ上の<point3>接線を返します。
pathParam:false の場合、param_float はスプライン長の小数部で、それ以外の場合はセグメント ベース(パス)の小数部です。
指定された頂点補間スプライン パラメータのセグメントおよびセグメントの一部が含まれている point2 値を返します。
1 つ目および 2 つ目の引数は、シェイプおよび補完するシェイプ内のスプラインを指定し、3 つ目の引数は補間するパラメータです。
たとえば、10 セグメントのスプラインに 0.5 というパラメータを渡すと、必ず[6,0.0](または 0 に非常に近い値)または[5,1.0]のいずれかを含んだ point2 値が返されます。これは、頂点補間を使用している 10 セグメント スプラインの中央は、必ず 5 番目 のセグメントと 6 番目 のセグメントとの間にある頂点だからです。
3ds Max 2008 以降 で使用可能です。従来、Avguard 機能拡張として提供されていた機能です。
指定された長さ補間スプライン パラメータのセグメントおよびセグメントの一部が含まれている point2 値を返します。
1 つ目および 2 つ目の引数は、シェイプおよび補完するシェイプ内のスプラインを指定し、3 つ目の引数は補間するパラメータです。
findPathSegAndParam() とは対象的に、このメソッドはセグメントの実際の長さを考慮し、全体の長さを 0.0 から 1.0 までの間で正規化してから長さに沿って補間します。10 セグメントのスプラインに対してパラメータ 0.5 を指定すると、スプラインの長さの厳密な中央にあるセグメント内にあるセグメントとパラメータが常に返されます。
3ds Max 2008 以降 で使用可能です。従来、Avguard 機能拡張として提供されていた機能です。
頂点補間と長さ補間: |
スプラインに沿った位置を補完するための方法には、頂点補間と長さ補間の 2 つがあります。 頂点補間(パス補間)を使用する場合は、スプラインは、2 つの頂点間の各セグメントが 0.0 から 1.0 までの領域に正規化されている一連のセグメントとしてとらえられます。セグメントの 2 つの頂点間の距離は補間では無視されます。つまり、セグメントの長さが異なる場合は、スプラインに沿って直線的に補間すると、速度のばらつきが発生します。 [一定速度](Constant Velocity)をオフにして[パス コンストレイント](Path Constraint)を使用すると、2 つの頂点間の長いセグメントをオブジェクトが高速で移動することから、これを視覚的に確認することができます(下のイメージを参照)。 長さ補間を使用する場合はスプラインの長さ全体が正規化され、0.5 というパラメータを使用すると、セグメントの長さにかかわらず、スプラインの厳密な中間点になります。 0.0 から 1.0 までの間で直線的に変化するパラメータを使用してスプラインに沿って補間された点のの速度は、頂点の配置が不規則であっても、スプライン全体を通して一定です。 これは、[パス コンストレイント](Path Constraint)で[一定速度](Constant Velocity)チェックボックスをオンにして長さ補間を有効にすると確認できます。 |
このイメージの一番上のオブジェクトは、さまざまなセグメント長と 10 個のセグメントを使用した SplineShape です。 中央のオブジェクトは同じシェイプのコピーで、[ポイント ヘルパー](Point Helper)によってパスとして使用されたものです。[パス コンストレイント](Path Constraint)の[一定速度](Constant Velocity)チェックボックスはオフであるため、頂点補間が使用されています。100 フレームの間、シェイプは 10 個のセグメントに分割され、各セグメントに 10 個のサンプルが配置されるため、セグメント長に応じて速度が変化します。 下のオブジェクトは同じシェイプのコピーで、別の[ポイント ヘルパー](Point Helper)によってパスとして使用されていますが、[一定速度](Constant Velocity)がオンであるために長さ補間が使用されています。このサンプルには、セグメントを定義している頂点間の距離を無視して、シェイプの全長方向に均等な間隔があることがはっきりと分かります。 タイム スライダはフレーム 50 に設定されています。下部の長さ補間では、ポイント ヘルパーがパス シェイプの厳密な中央に配置されているのに対し、頂点補間では、ポイント ヘルパーが 5 番目 のセグメントと 6 番目 のセグメントとの間の頂点上に配置されています。 |
インデックス付きカーブのセグメントとセグメントの一部の point3 座標を返します。
pathParam:false の場合、param_float はセグメント長の小数部で、それ以外の場合はセグメント ベース(パス)の小数部です。
従来、Avguard 機能拡張として提供されていた機能です。
インデックス付きカーブのセグメントとセグメントの一部の point3 接線を返します。
pathParam:false の場合、param_float はセグメント長の小数部で、それ以外の場合はセグメント ベース(パス)の小数部です。
従来、Avguard 機能拡張として提供されていた機能です。
インデックスで指定されたスプラインで、インデックスで指定されたセグメントのタイプを取得します。
インデックスで指定されたスプラインで、インデックスで指定されたセグメントのタイプを設定します。
インデックスで指定されたカーブのインデックスで指定されたセグメントに新しいノットを追加しまノットは、所定のセグメント補間パラメータに対応するインデックスで指定されたセグメントに沿った場所に追加されます。す。
この値は、セグメントに沿った比率を指定する 0.0 ~ 1.0 の浮動小数点です。
セグメントの既存の曲率を維持するため、新しいノットの座標とイン ベクトルおよびアウト ベクトルが自動的に計算されます。
これは、スプライン編集モディファイヤで refine() 関数によって使われるプリミティブです。
カーブのパス補間パラメータがカーブ内のセグメントで均等に分割されている場合は、MAXScript のスプライン パス補間関数を使ってセグメントのパラメータを派生できます。
パス補間パラメータ u が m セグメントのスプライン内にあるとすると、ターゲット セグメントは次のようになります。
これは次の係数を返し、計算における丸めエラーを減少させます。
refineSegment() 関数は、新たに挿入したノットのインデックスを返します。
指定されたシェイプ スプライン内で選択したセグメントのインデックスを整数の配列で返します。
指定されたシェイプ スプライン内の<segment_index_array>によって指定されたセグメントを選択します。
<segment_index_array>は、セグメント インデックスを指定する整数の配列です。
keep:true が指定されている場合を除いて、既に選択されたセグメントは選択解除されます。
指定したスプライン セグメントのマテリアル ID を設定します。
指定したスプライン セグメントのマテリアル ID を取得します。
addKnot <shape> <spline_index_integer> \ (#smooth | #corner | #bezier | #bezierCorner) \ (#curve | #line) <position_point3> \ [invec_point3 outvec_point3] \ [where_integer]
新しいノット(コントロール ポイント)をインデックスで指定されたスプラインに追加し、追加されたノットのインデックスを整数で返します。
3 番目 の引数はノットのタイプを指定し、4 番目 の引数はノットを除いたセグメントのタイプを指定します。
5 番目 の引数は、追加するノットの座標(現在の作業座標系における座標)を指定します。
ノットのタイプが #bezier または #bezierCorner の場合は、6 番目と 7 番目の引数にイン ベクトルとアウト ベクトルのハンドル座標を指定しなければなりません。 シェイプ内のスプラインがインデックスで識別されるのと同様に、ノットはスプライン内でインデックスによって識別されます。
最後の引数はオプションであり、ノットの挿入位置にあたる既存のノット内での順番を指定します。この引数を省略すると、既定でスプラインの最後にノットが追加されます。
インデックスで指定されたノットをインデックスで指定されたスプラインから削除します。
インデックスで指定されたスプラインで、インデックスで指定されたノットのタイプを返します。
値は、 #smooth 、 #corner 、 #bezier 、または #bezierCorner です。
setKnotType <shape> <spline_index_integer> <knot_index_integer> (#smooth | #corner | #bezier | #bezierCorner)
インデックスで指定されたスプラインで、インデックスで指定されたノットのタイプを設定します。
これは、3ds Max でスプライン編集モディファイヤを使用し、マウスの右ボタンでスプラインのコントロール ポイントに変更を加えることと同じです。
インデックスで指定されたノットの座標を現在の作業座標系における Point3 値で返します。
インデックスで指定されたスプラインで、インデックスで指定されたノットの座標を設定します。
インデックスで指定されたノットのイン ベクトル ハンドルの座標を現在の作業座標系における Point3 値で返します。
インデックスで指定されたノットのイン ベクトル ハンドルの座標を設定します。
インデックスで指定されたノットのアウト ベクトル ハンドルの座標を現在の作業座標系における Point3 値で返します。
インデックスで指定されたノットのアウト ベクトルのハンドル座標を設定します。
指定されたシェイプ スプライン内で選択したノットのインデックスを整数の配列で返します。
指定されたシェイプ スプライン内の<knot_index_array>によって指定されたノットを選択します。<knot_index_array>は、ノットのインデックスを指定する整数の配列です。
keep:true が指定されている場合を除いて、既に選択されたノットは選択解除されます。