このページでは、3ds Max 2012 の MAXScript 言語の変更と改良点について簡単にその概要を説明します。各機能の詳細については、ドキュメントの各ページのリンクをお読みください。
新機能に関する説明以外の MAXScript リファレンスの変更内容については、「3ds Max 2012 におけるドキュメントの変更点」を参照してください。
NitrousGraphicsManager コア インタフェースは、新しいビューポート グラフィックス マネージャのコントロールが MAXScript に公開します。また、3ds Max ユーザ インタフェースに公開されていないすべてのフォトリアリスティックではないレンダリング スタイルのすべてのパラメータにスクリプトのみでアクセスできます。このトピックでは、各レンダリング スタイルのプリセットを保存およびロードするためのオプションを含む、公開されたパラメータによるダイナミック ダイアログの生成を実装する完全なスクリプト例も示します。
OGSDiagnostics コア インタフェース は、グラフィックス ハードウェア関連のレポートにアクセスするためのプロパティを提供します。
インタフェース : nvpx は、MassFX システムの設定を MAXScript に公開します。
PhysXPanel : ReferenceTarget は、MassFX コントロール パネルおよびそのコントロールの設定を MAXScript に公開します。
UConstraint : ヘルパーを使用して、MassFX システムでコンストレイントを定義します。
pxJoint : ヘルパー オブジェクトを使用して、MassFX システムで結合を定義します。
Skeleton : ヘルパー オブジェクトを使用して、アニメートされたキャラクタを MassFX シミュレーションを起動するキネマティック スケルトン オブジェクトとして導入します。
nvRagdoll : ヘルパーを使用して、MassFX システムでラグドール リグを定義します。
MassFX_RBody : モディファイヤを MassFX システムで使用して、リジッド ボディ オブジェクトのプロパティを定義します。
nvBox : GeometryClass は、MassFX リジッド ボディ モディファイヤで物理シミュレーション用のカスタムの直方体形シェルを定義するために使用される専用のジオメトリ オブジェクトです。
nvCapsule : GeometryClass は、MassFX リジッド ボディ モディファイヤで物理シミュレーション用のカスタムのカプセル形シェルを定義するために使用される専用のジオメトリ オブジェクトです。
nvSphere : GeometryClass は、MassFX リジッド ボディ モディファイヤで物理シミュレーション用のカスタムの球状シェルを定義するために使用される専用のジオメトリ オブジェクトです。
Birth_File : ヘルパーは、Autodesk Softimage ICE で保存された Autodesk Maya Nucleus パーティクル キャッシュ形式のパーティクル シミュレーション ファイルのロードを実装します。
Substance textureMap は、Substance 手続き型 2D マップ ローダを MAXScript に公開します。
SubstanceShader textureMap は、Substance ローダの mental ray shader を実装します。
Substance_Output textureMap は、Substance textureMap の出力セレクタとして機能します。これにより、スレート マテリアル エディタで 1 つの Substance textureMap を複数の Substance_Output ノードに接続し、さまざまな出力を抽出できます。
max_vector displacement : textureMap クラスは、Autodesk Mudbox で生成されたディスプレイスメント データをロードするために使用されるベクトル ディスプレイスメント マップを公開します。
max_vdm : textureMap クラスは、Autodesk Mudbox で生成されたベクトル ディスプレイスメント マップをレンダリングするための mental ray shader を実装します。
iRay_Renderer : RendererClass は、CPU と使用可能な任意の GPU を使用した物理的に正確な照明シミュレーションに使用される iRay パス トレーサへのアクセスを提供します。
iray 文字列オプション は、レンダラーのユーザ インタフェースに現在公開されていない高度な機能へのアクセスを提供します。
AutoTangentMan コア インタフェースは、3ds Max で使用される AutoTangent アルゴリズムへのアクセスを提供します。これには、Autodesk 3ds Max、Autodesk Maya および Autodesk Softimage の新たに統合された AutoTangent 実装が含まれます。
Quicksilver_Hardware_Renderer が更新されて、新しい Nitrous グラフィックス システムが使用されるようになりました。その結果、ユーザ インタフェース コントロールと対応する機能の MAXScript の公開の両方が大幅に変更されました。
Unwrap_UVW モディファイヤ は、3ds Max 2012 で大幅に改良されました。
3ds Max 2012 では ViewportSSB インタフェース は既定で使用できません。これは、ビューポートが Nitrous グラフィックス システムを使用するように設定されているからです。このインタフェースにアクセスするには、ビューポートを Direct3D ドライバに切り替える必要があります。
プロパティ .bounce 、 .staticFriction および .slidingFriction は、3ds Max 2. で導入されたレガシーのダイナミック システムが完全に削除されたため、標準マテリアルから削除されました。
次の SpacewarpObject は、3ds Max 2 で導入されたレガシーのダイナミック システムが完全に削除されたため、3ds Max 2012 から削除されました。
すべてのリアクタ インタフェース、モディファイヤ、およびオブジェクトは、3ds Max 5 で導入された Reactor Dynamics システムが完全に削除されたため、3ds Max 2012 から削除されました。
初期のメモリ フットプリントを削減し、スタートアップ処理を高速化するために、3ds Max 2012 では、オンデマンドで遅延およびロードできるプラグインの数が増やされました。
2 つの新しい読み取り専用プロパティ の .dllName および .dllIsLoaded が maxClass に追加されて、そのプロパティが定義された DLL に対してクエリーを実行したり、DLL が既にロードされているかどうかをチェックするようになりました。
旧バージョンで、ファイルからロードされるカスタム アトリビュート定義は、常にシーン内の定義を置き換えていました。3ds Max 2012 からは、ロードされたシーンの定義のバージョン番号が、現在の定義のバージョン番号よりも上位の場合にのみ置き換えが行われるようになります。実装の詳細については、このトピックを参照してください。
append() メソッドが StringStream Value クラスで実装され、文字列値を既存の StringStream にメモリ効率よく追加できるようになりました。
free() メソッドは 3ds Max 9 から実装されていますが、ドキュメントで説明されていませんでした。このメソッドは、ガベージ コレクションが実行されるのを待たずに、値で使用されているメモリを解放します。このメソッドは、String 値、StringStream 値、FileStream 値、BitMap 値、Array 値、BitArray 値、Mesh 値クラスで実装されます。
新しい on <rollout> help do() イベント ハンドラをロールアウトで指定すると、ロールアウトにフォーカスがある間に押された F1 を処理することができます。
文字列リテラルとして使用する必要があったロールアウトおよび UI コントロールのキャプション コンストラクション パラメータは、非ローカル変数(構造体またはプラグイン定義のグローバル変数またはトップレベルのローカル変数)にすることができるようになりました。
ツールチップが radiobutton ユーザ インタフェース コントロールに、すべてのラベルに対応する 1 つの文字列、またはラベルごとに 1 つのツールチップとして追加されました。
メッセージ ログを管理する新しい Assert 関数および AssertReporter 構造体がいくつか MAXScript に公開されて、3ds Max の開発時の単位テストに Autodesk によって内部で使用されるようになりました。
いくつかのC ランタイム デバッグ関数 が MAXScript に公開され、SDK で例として提供されています。これらの関数は、ハードコア プログラム用で、MAXScript ヒープの破壊、ヒープの妥当性のチェック、および C レベルのアサートの生成が許可されます。
EulerAngles 値のトピックで説明した、以前問題があった GetEulerQuatAngleRatio() および GetMatQuatAngleRatio() メソッドが修正され、配列、eulerAngles または参照渡し変数を使用して正しい値が出力されるようになりました。
既存のビューポート描画メソッドは、Nitrous グラフィックス マネージャがアクティブな場合、ビューポート再描画コールバック関数にラップする必要があります。ラップしない場合、gw. メソッドは実行されません。これは、Nitrous システムではプログレッシブ リファイン アプローチが使用されるからです。