シェイプの共通プロパティ、演算子、メソッド

> MAXWrapper > ノード > GeometryClass > シェイプ

 

   

シェイプとスプライン - クイック ナビゲーション

一般的なメソッド:

numKnots<shape> [ <spline_index_integer> ] 	 

インデックスで指定されたスプライン内の結び目(頂点またはコントロール ポイント)の数を整数で返します。スプラインのインデックスが指定されていない場合は、シェイプ全体のノットの数を返します。

例:

y = donut()
numKnots y

補間メソッド:

シェイプ シーン オブジェクトを操作する補間関数がいくつかあります。これらの関数は、シェイプ内のカーブ上の座標をとってカーブ沿いにステップを付けたり、カーブの長さをとったり、所定の座標に最も近いカーブ上のポイントを判定します。これらの関数は、カーブ沿いにオブジェクトのクローンを配置したり、アニメーションのときにオブジェクトの集団を「突起」カーブの近くに寄せて配列する上で便利です。

補間関数はいずれも、シェイプ シーン オブジェクト(線分など)、シェイプの中に複数のカーブが存在する場合にはカーブの番号(オプション、既定値は 1)、およびカーブ上のスポットをカーブの長さに対する比率で指定するパラメータ(範囲は 0.01.0)をとります。補間関数には次の 2 つのタイプがあります。

3ds Max の非均一パス補間関数は、間隔が不均等なコントロール ポイントがパスにある場合に、パスでアニメートされるオブジェクトの可変速度を上げます。ここに記載された円弧長補間関数は、制御点の配置がいくら不均等であっても、カーブに沿って均一に補間を行います。パス補間関数の利点は、均一な円弧長補間関数よりも計算面で遥かに効率が良いことにあります。円弧長補間関数はある程度のキャッシュを使って処理速度を上げますが、以下に説明するように、ユーザは円弧長補間関数の使用方法を工夫する必要があります。

後述するオプションの steps: キーワード引数によって、統合ステップを指定できます。既定の steps 値はカーブの 3ds Max 単位長の 5 倍であり、通常はこの長さで十分です。たとえば、カーブが 100 3ds Max 単位の長さの場合、既定のステップ サイズは 500 になります。 補間アルゴリズムの精度は、+ または - (1/steps) 3ds Max 単位以下です。単一のカーブに沿って徐々にステップする一般的なケースでは、このメソッドはキャッシュを使って操作を加速します。このキャッシュはカーブ上の最後のポイントについて状態を記憶しており、ユーザが同じカーブに対し同じアニメーションの時間にこの関数を呼び出す場合には、キャッシュはそのポイントを取得します。これは補間プロセスを指数関数的に加速します。ただし、MAXScript では 1 つの呼び出しから次の呼び出しの間にカーブが編集されたかどうかを認識する方法が用意されていないため、コード内の呼び出し間にユーザがカーブを編集できる場合は、resetLengthInterp() メソッドで必ずキャッシュをリセットする必要があります。

座標はすべて現行の座標系の中にあります。

   

pathInterp<shape> [ <curve_num> ] <parameter>   

3ds Max パス コントローラのパーセント(頂点ベース)補間と一致するパラメータ値(0.0 ~ 1.0)に従って、番号(既定値は 1)で指定されたカーブ上の Point}3 座標を返します。

   

lengthInterp<shape> [ <curve_num> ] <parameter> [  steps:<integer> ] 

カーブの全長に沿って該当部分を指定するパラメータ値(0.0 ~ 1.0)に従って、番号(既定値は 1)で指定されたカーブ上の point3 座標を返します。

   

resetLengthInterp () 

円弧長補間関数のキャッシュをクリアします。この関数は、円弧長補間関数を使って補間するカーブが、呼び出しと呼び出しの間で編集されている可能性がある場合に使用します。

   

curveLength<shape> [ <curve_num> ] 

番号で指定されたカーブの長さを返します。この長さは、シェイプで実行される変換レベルのスケールとは異なります。

   

pathTangent<shape> [ <curve_num> ] <parameter> 

所定のカーブに沿って 3ds Maxパス(頂点ベース)補間関数で補間されるポイントでの接線方向のベクトルを返します。たとえば、この関数を使ってカーブを追随する方向にオブジェクトを設定できます。

   

lengthTangent<shape> [ <curve_num> ] <parameter> [steps:<integer> ] 

所定のカーブに沿って円弧長補間関数で補間される点での正接方向のベクトルを返します。たとえば、この関数を使ってカーブを追随する方向にオブジェクトを設定できます。

   

nearestPathParam<shape> [ <curve_num> ] <point3> [steps:<integer> ] 

指定した <point3> 座標に最も近いカーブ沿いのポイントに対応する補間パラメータ値(0.0 ~ 1.0)を返します。このパラメータは、3ds Max パス(頂点ベース)補間パラメータ値として与えられています。次にこの値を pathInterp に使用して最も近いポイントの座標を見つけたり、あるいは以下の関数のいずれかを使用して円弧長パラメータと 3ds Max パスのパーセント パラメータとの間の変換を行います。

   

pathToLengthParam<shape> [ <curve_num> ] <parameter> [steps:<integer> ] 

このカーブについて、指定した 3ds Max パス(頂点ベース)パラメータに相当する均一円弧長のパラメータを返します。

   

lengthToPathParam<shape> [ <curve_num> ] <parameter> [steps:<integer> ] 

このカーブについて、指定した均一円弧長パラメータに相当する 3ds Max パス(頂点ベース)パラメータを返します。

   

関連事項