technote
タイトル MAXScriptの使い方「シェイプクラスの定義方法」
報告内容 ■スプラインシェイプの概念
MAXスクリプトでシェイプクラスを作るには、まず、スプラインシェイプの構造を 理解しておく必要があります。以下の図のようになっています。
 
 
 
ここにかかれている全体がスプラインシェイプ。それぞれのラインがスプラインとなり、1からの番号で識別されます。また、スプラインの中は、これも1からの番号で頂点が定義されます。
 
■実際の作り方。
 
1)ノードのサブクラスであるスプラインシェイプクラスを作ります。
 
sp = splineshape()
 
これは、単なる入れ物で、ジオメトリーはこの下にスプラインクラスを定義するスプラインクラスにあります。
 
2)スプラインシェイプクラスにスプラインクラスを追加する

addNewSpline sp
 
先ほどの入れ物にジオメトリー保持の実態部分であるスプラインクラスを追加します。
 
3)スプラインに対して頂点を追加していく
 
addknot sp 1 #corner #line [x,y,z]
 
そして、そのスプラインクラスに対して、頂点を一づつ定義していきます。
この例では、頂点をコーナータイプに、セグメントタイプをラインにしています。
 
addKnot ( #smooth | #corner | #bezier | #bezierCorner ) \
( #curve | #line )  [invec_point3 outvec_point3] [where_integer]
 
  :スプラインシェイプクラス
  :何番目のスプラインに対して頂点を定義するか
* ( #smooth | #corner | #bezier | #bezierCorner ) >()内は省略可能を示す。
     :頂点タイプ。
     :スムーズ、コーナー、ベジェ、ベジェコーナーです。
*( #curve | #line )  :セグメントタイプ。カーブ、ラインです。
  :頂点座標(point3タイプ)
*[invec_point3 outvec_point3]
     :頂点タイプがベジェ、ベジェコーナーを指定した場合の
     :インベクトルとアウトベクトルをpoint3タイプで指定。
*(where_integer)   :どこに頂点を追加するか?省略すると最後に追加される。
 
4)シェイプをアップデート
updateshape sp
 
このコマンドによって、ジオメトリーに与えた変更が実際のシェイプに与えられます。
名前 上坂浩光
日時 2001/8/3
データ machine name:NU
os(version):Windows2000(SP1)
application:3DStudioMAX
other: