3ds Max 4 ではMAXScript が大幅に拡張され、ソフトウェア内のほとんどすべての動作がスクリプト可能になりました。この公開の大部分は、関数公開とインタフェース によるものです。また、この公開はParamBlock から ParamBlock2 にさらに多くのプラグインが移った必然的な結果でもあります。残りの公開は、MAXScript SDK を使用して、関数を MAXScript に公開しています。
ParamBlock2s では、プラグインがすべての表示可能なユーザ パラメータを 1 つまたは複数のパラメータ ブロックにホスト化できます。これには、ReferenceTargets、Sub-Anims、ダイナミックパラメータ テーブル (Tabs<>)、およびクラス パラメータも含まれます。パラメータ ブロックは古いバージョンの読み込みと参照の管理を自動的に処理します。パラメータ ブロックはパラメータ マップ機能を強化しており、自動 UI を新しいパラメータ タイプに提供しています。新しいパラメータ タイプには、ノード ピッカーおよびテクスチャ マップ セレクタなどの共通 3ds Max コントロールや表形式のパラメータ用のリストボックスが含まれます。さらに、一般的な状況のもとで ParamMaps と ParamDlgs の作成を自動化します。加えて、ParamBlock2 ではすべてのパラメータ ブロックとプラグインのパラメータをメタデータ「反映」API とともに記述するシステムを提供します。これにより、MAXScript、マクロ レコーダー、スケマティク ビュー、およびカスタム エクスポータのようなシステムは自動的にプラグインのデータにアクセスできます。このようなメタデータには、バージョンおよび位置に依存しないパラメータ IDと、ローカルおよび固定のクラスやパラメータのすべてのマシン解析可能な名前が含まれます。これは、バージョンの互換性の問題や、MAXScript/エクスポータのローカリゼーション問題の対応に役立ちます。
設計の詳細については、SDK のヘルプ トピック「Parameter Blocks and Maps in Release 3」を参照してください。
MAXScript SDK は Visual C++ ヘッダの集まりであり、C++ のプログラマが MAXScript を拡張するために使用できるライブラリをインポートします。これらの拡張機能は、新しいビルトイン関数、新しいシステムのグローバル関数、または新しい 3ds Max のプラグイン クラスのプロパティの記述子のフォームにすることができます。これは、サードパーティのプラグインの開発者が、プラグインに対するカスタム スクリプティング インタフェースを記述したり、プログラマがカスタム C++ のパフォーマンス コードを記述したり、混成ツールに対するスクリプトを使ってそれを実行したりする際に便利です。
MAXScript SDK を使用すると、MAXScript によってロードされる MAXScript 固有の DLL ファイル タイプを介して段階的に、または既存のプラグインの中から MAXScript を実行時に直接呼び出すことによって、拡張機能を追加することができます。
デザインの詳細については、SDK のヘルプ トピック「MAXScript SDK」を参照してください。
関数公開で公開されたこの文書の領域では、「showInterfaces」機能で提供される情報を、Properties、Methods、および Actions という 3 つのセクションに分けて表示します。Properties セクションでは、インタフェースによって公開されたプロパティがそのデータ型または列挙値とともに一覧表示されます。また、そのプロパティが読み書き可能かどうかも表示されます。Methods セクションには、各メソッドが、返されるタイプおよび引数のリストとともに表示されます。各引数の値のタイプも表示されます。返されるタイプが <void> と表示される場合、メソッドは値 'ok' を返します。Action によって使用されるメソッドについては、そのことがコメントとして記載されます。一般に、これらのメソッドを使用する場合、適切なコマンド パネルでオブジェクトが選択されアクティブになっている必要があります。 [Actions] セクションでは、各アクションとともに、[ユーザ インタフェースをカスタマイズ](Customize User Interface)ダイアログ ボックスに表示されるカテゴリおよびアクションの説明、およびショートカット キー(アクションにショートカット キーが割り当てられている場合)が表示されます。
次のトピックは MAXScript に新しく追加されたものです。
「MAXScript トレーニング」 - MAXScript を初めて使うユーザのためのウォークスルー チュートリアル。
3ds Max 4 以前のリリースで「燃焼効果」と呼ばれていた環境効果は、「Fire_Effect」という名前になりました。
Pspawnflector は POmniflect になりました。
Sspawnflector は SOmniflect になりました。
UspawnDeflector は UOmniflect になりました。
これらのオブジェクトを持つスクリプトは、正しい名前に更新する必要があります。
3ds Max 4 の MAXScript の新機能を次に示します。
MAXScript ロールアウト内の ActiveX コントロール:
MAXScript ロールアウト内の ActiveX コントロール
RenderEffect 進行状況コールバック機能 - [レンダリング効果](RenderEffects )ダイアログ ボックスの進行状況バーを、いくつかのコールバックを使用してコントロールできます。
[アニメート](Animate)ボタンのオンとオフの変化に関するコールバックの通知
HD IK コントローラ チェーンを既存の階層に割り当てることができる
スクリプト プラグインのパラメータ ブロック内の type:#integer パラメータ
オブジェクト スクリプト プラグイン用 on detachedFromNode
スクリプト ロールアウト内の複数行の editText UI 項目
3ds Max 4 の MAXScript 言語に関する改良点
以下に 3ds Max 4 の新しい MAXScript メソッドを示します。
getMAXSaveFileName & getMAXOpenFileName
bitArray から配列へ、および整数配列から bitArrays へのコアージョン
UVWUnwrap に追加された forceUpdate 関数
'selection' および '$' オブジェクトセットの反復およびインデックス処理のパフォーマンスの向上
RubberBanding in pickObject() 関数
Subanim 名を処理する MAX オブジェクトの Subanim インデックス付け演算子、[]
ベジェ キー inTangentLength および outTangentLength
ビットマップ マネージャ - BMM (Bitmap Manager) コントロールの関数公開
ユーティリティ、グローバル ユーティリティ、およびレンダリング要素プラグイン
2 つの新しいスクリプト プラグイン: スクリプト Camera および simpleManipulator
BitmapTex の reload および viewImage
BMP、PNG、JPEG および TGA I/O インタフェース
マテリアル レベルの Show-in-viewport 状態
isActive (atmos)
isActive (renderEffect)
[元に戻す/やり直し](Undo/Redo)ドロップダウンのラベル
拡張ビューポートとしての MAXScript ダイアログ ボックスとロールアウト フロータ
3ds Max 4 の新しい MAXScript インタフェース:
次のトピックには、これまでの MAXScript のマニュアルに記載された内容の最新情報があります。
一般イベント コールバック機能 - 新しい通知機能(#systemPreReset 以降はすべて新しいものです)。
マクロ スクリプトの定義 - マクロ スクリプトのローカル変数がメモリ スタックでどのように扱われるかについての説明(新しく見る必要があるのは、「通常のローカルは...」という段落だけです)。
Editable_Mesh: GeometryClass および TriMesh: Value - 新しい MeshOps です。サブオブジェクトのサポートも含まれます。
Multimaterial (materialIDList, material1)
FFD_2x2x2 (変形タイプ)
FFD_3x3x3 (変形タイプ)
FFD_4x4x4 (変形タイプ)
FFD_Box (変形タイプ)
FFD_Cyl (変形タイプ)
CompositeMaterial (amount, baseMaterial)
RaytraceMaterial (enable_Raytraced_refractions)
SpaceFFDBox (変形タイプ)
SpaceFFDCyl (変形タイプ)
StandardMaterial (バウンド係数、静止摩擦、動的摩擦、周囲光、拡散反射光、鏡面反射光、自己照明、カラー、鏡面反射光レベル、光沢、ソフト)