高度なボックス変換

注:これは、「ボックスの操作 - MAXScript での最初の手順」チュートリアルの前のレッスン「MAXScript によるボックスの描画」、「ボックスの修正」および「標準変換の適用」の続きです。このレッスンを行うには、変数 mybox が定義済みで、ボックス プリミティブのインスタンスが含まれていることが必要です。前のレッスンからの続きとして行っていない場合は、少なくとも以下の行を評価して、
mybox = box()
次の例を 3ds Max シーンに適用する必要があります。

   

以下の行を使って、さらに複雑なボックス変換を行います。MAXScript を使って側面すべてのボックス セグメント数を変更し、パラメータロールアウトにある[マッピング座標を生成](Generate Mapping Coords)ボックスにチェックマークをつけます。

以下の 4 行のコードを入力してください:

mybox.lengthsegs = 10
mybox.widthsegs = 10
mybox.heightsegs = 10
mybox.mapCoords = true

[パラメータ](Parameters)ロールアウトで、MAXScript がこの固有の設定に変更されます。

 

3ds Max オブジェクトのプロパティを変更すると、MAXScript はいつでもすぐにそのシーンとユーザ インタフェースに変更を適用します。

また、モディファイヤを作成してオブジェクトに追加することもできます。

モディファイヤの作成と割り当て

モディファイヤの作成

モディファイヤの作成は非常に簡単です。addModifier コマンドを使って、使用するモディファイヤの名称と適したパラメータを指定します。

30 度に設定したツイスト モディファイヤを作成して、これをボックスに適用する場合は、次のように入力します。

次のように入力します。

addModifier mybox (twist angle:30)

 

パース ビューポートにあるボックスはツイストされ、インタフェースによって新しい[ツイスト](Twist)モディファイヤがそのパラメータと一緒にモディファイヤ スタックの中に表示されます。

 

モディファイヤの変更

モディファイヤの変更は作成パラメータの変更と同様です。ここでもオブジェクトに変数名を使っており、モディファイヤもオブジェクト変数に追加されているため、オブジェクトの新しいモディファイヤのプロパティに簡単にアクセスできるようになります。

[ツイスト](twist)モディファイヤの角度を 60 度に変更するには、

次のように入力します。

mybox.twist.angle = 60

 

ボックスのツイストは、明らかに大きくなり、[ツイスト](Twist)モディファイヤの角度パラメータには新しい値が表示されます。

 

ここで、好きなようにその他のモディファイヤを追加し変更することが可能になります。構文はすべてのモディファイヤで同じです。他のモディファイヤの名称を検索するには、「Modifier : MAXWrapper」を参照してください。

上記のコマンドを入力した場合は、 [元に戻す](Undo)を 2 回クリックしてボックスを元の状態に戻します。

ボックスのアニメート

MAXScript には、[オート キー](Auto Key)ボタン、タイム スライダ、アクティブ座標系などの主な UI ツールに対応するいくつかの構文形式があります。

次の例では、ソフトウェアの UI を使用する場合と同じように、[オート キー](Auto Key)ボタンをオンにして、スライダをいくつかの値に設定し、ボックスのプロパティを調整します。

例:

animate on
(
  at time 0 (mybox.pos = [-100, 0, 0]; mybox.scale = [1, 1, 0.25])
  at time 100 (mybox.pos = [100, 0, 0]; mybox.scale = [1, 1, 3])
)

スライダをドラッグすると、MAXScript がボックスをアニメートして、キーフレームを 0 と 100 に配置していることがわかります。

MAXScript を使用してオブジェクトをアニメートする場合、UI の実際の[オート キー](Auto Key)ボタンはオンにならず、タイム スライダも移動しません。これらは MAXScript の内部で実行されます。

この例では、単純な数値で時間を指定しています。単位を指定しない場合、MAXScript はこれをフレーム番号として解釈します。また、次のように時間リテラルを使用することもできます。

例:

2.5s-- 2.5 seconds
20f-- 20 frames
4800t-- 4800 ticks = 1 sec
1m3s5f-- 1 min, 3 seconds, 5 frames
1:15.5-- SMPTE: 1 min, 15 seconds, 5 frames
注:

すべての時間は自動的にフレームに変換されます。

経緯説明:

3ds Max バージョン 2 および 3 では[アニメート](Animate)というボタンが現在の[オート キー](Auto Key)ボタンと同じ機能を実行していました。このため、アニメーション作成の MAXScript コンテキストはオート キーではなくアニメートと呼ばれます。

次のトピック

スクリプト エディタ