3ds Max 2012 MAXScript の新機能

このページでは、3ds Max 2012 の MAXScript 言語の変更と改良点について簡単にその概要を説明します。各機能の詳細については、ドキュメントの各ページのリンクをお読みください。

新機能に関する説明以外の MAXScript リファレンスの変更内容については、「3ds Max 2012 におけるドキュメントの変更点」を参照してください。

   

3ds Max の新機能の公開

Nitrous グラフィックス システム

NitrousGraphicsManager コア インタフェースは、新しいビューポート グラフィックス マネージャのコントロールが MAXScript に公開します。また、3ds Max ユーザ インタフェースに公開されていないすべてのフォトリアリスティックではないレンダリング スタイルのすべてのパラメータにスクリプトのみでアクセスできます。このトピックでは、各レンダリング スタイルのプリセットを保存およびロードするためのオプションを含む、公開されたパラメータによるダイナミック ダイアログの生成を実装する完全なスクリプト例も示します。

OGSDiagnostics コア インタフェース は、グラフィックス ハードウェア関連のレポートにアクセスするためのプロパティを提供します。

   

MassFX ダイナミック シミュレーション

インタフェース : 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 テクスチャ マップ

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 レンダラー

iRay_Renderer : RendererClass は、CPU と使用可能な任意の GPU を使用した物理的に正確な照明シミュレーションに使用される iRay パス トレーサへのアクセスを提供します。

iray 文字列オプション は、レンダラーのユーザ インタフェースに現在公開されていない高度な機能へのアクセスを提供します。

   

アニメーション

AutoTangentMan コア インタフェースは、3ds Max で使用される AutoTangent アルゴリズムへのアクセスを提供します。これには、Autodesk 3ds MaxAutodesk Maya および Autodesk Softimage の新たに統合された AutoTangent 実装が含まれます。

   

ヘルプ システム

HelpSystem コア インタフェースは、オンラインおよびローカルの製品ヘルプ システムへのアクセスを提供します。

   

既存の機能への改良点

Quicksilver ハードウェア レンダラー

Quicksilver_Hardware_Renderer が更新されて、新しい Nitrous グラフィックス システムが使用されるようになりました。その結果、ユーザ インタフェース コントロールと対応する機能の MAXScript の公開の両方が大幅に変更されました。

   

[UVW アンラップ](Unwrap UVW)モディファイヤ

Unwrap_UVW モディファイヤ は、3ds Max 2012 で大幅に改良されました。

  • Least Squares Conformal Mapping (LSCM、最小二乗法による等角マップ)アンラップ方法が新たに導入され、マッピング座標の高速ピーリングが可能になりました。
  • 新しい一連の通常マッピング機能がモディファイヤの既存の unwrap6 MixinInterface に追加されました。
  • 新しい一連のグループ機能が UI および MAXScript に追加されました。
  • 新しい一連のクラスタ再スケーリングおよび位置合わせ機能が UI および MAXScript に追加されました。
  • [UVW を編集](Edit UVWs)フロータにカスタムのツールバーとフロータを追加するための新しい一連の機能が MAXScript に追加されました。これらのカスタムの UI 要素は専用の .INI 設定ファイルを使用して手動で定義し、追加のツールを公開できます。
  • Unwrap_UVW モディファイヤのユーザ インタフェースは、コマンド パネルおよび[UVW を編集](Edit UVWs)フロータの両方でデザインが変更され、頻繁に使用する機能へのアクセスが高速化されました。
  • この 10 年の間に MAXScript リファレンス の最も大きいトピックの 1 つとなった Unwrap_UVW モディファイヤのドキュメントは、関連ツールを扱う多くのサブトピックに分割されました。これらのサブトピックには、メインの 「Unwrap_UVW Modifier」から簡単にアクセスできます。

   

廃止、削除された機能、および使用できない機能

インタフェース: ViewportSSB

3ds Max 2012 では ViewportSSB インタフェース は既定で使用できません。これは、ビューポートが Nitrous グラフィックス システムを使用するように設定されているからです。このインタフェースにアクセスするには、ビューポートを Direct3D ドライバに切り替える必要があります。

   

レガシー ダイナミック

プロパティ .bounce .staticFriction および .slidingFriction は、3ds Max 2. で導入されたレガシーのダイナミック システムが完全に削除されたため、標準マテリアルから削除されました。

次の SpacewarpObject は、3ds Max 2 で導入されたレガシーのダイナミック システムが完全に削除されたため、3ds Max 2012 から削除されました。

   

Reactor Dynamics

すべてのリアクタ インタフェース、モディファイヤ、およびオブジェクトは、3ds Max 5 で導入された Reactor Dynamics システムが完全に削除されたため、3ds Max 2012 から削除されました。

   

MAXScript 言語に関する改善点

maxClass DLL 関連プロパティ

初期のメモリ フットプリントを削減し、スタートアップ処理を高速化するために、3ds Max 2012 では、オンデマンドで遅延およびロードできるプラグインの数が増やされました。

2 つの新しい読み取り専用プロパティ .dllName および .dllIsLoaded が maxClass に追加されて、そのプロパティが定義された DLL に対してクエリーを実行したり、DLL が既にロードされているかどうかをチェックするようになりました。

   

MacroScript マルチ スレッド ロード

MacroScript は、複数のスレッドを使用して 3ds Max のスタートアップ時に処理されるようになりました。

   

ロード時のカスタム アトリビュート バージョン番号のサポート

旧バージョンで、ファイルからロードされるカスタム アトリビュート定義は、常にシーン内の定義を置き換えていました。3ds Max 2012 からは、ロードされたシーンの定義のバージョン番号が、現在の定義のバージョン番号よりも上位の場合にのみ置き換えが行われるようになります。実装の詳細については、このトピックを参照してください

   

リソース文字列の置換

スクリプトのローカライズを簡略化するために、外部の .res ファイルで定義されたリソース ID でハード コード化された文字列を置換することができるようになりました。

   

StringStream 値

append() メソッドが StringStream Value クラスで実装され、文字列値を既存の StringStream にメモリ効率よく追加できるようになりました。

   

Free() メソッド

free() メソッドは 3ds Max 9 から実装されていますが、ドキュメントで説明されていませんでした。このメソッドは、ガベージ コレクションが実行されるのを待たずに、値で使用されているメモリを解放します。このメソッドは、String 値StringStream 値FileStream 値BitMap 値Array 値BitArray 値、Mesh 値クラスで実装されます。

   

ロールアウト ヘルプ イベント

新しい on <rollout> help do() イベント ハンドラをロールアウトで指定すると、ロールアウトにフォーカスがある間に押された F1 を処理することができます。

ロールアウトと UI コントロール キャプション

文字列リテラルとして使用する必要があったロールアウトおよび UI コントロールのキャプション コンストラクション パラメータは、非ローカル変数(構造体またはプラグイン定義のグローバル変数またはトップレベルのローカル変数)にすることができるようになりました。

   

Radiobutton のツールチップ

ツールチップが radiobutton ユーザ インタフェース コントロールに、すべてのラベルに対応する 1 つの文字列、またはラベルごとに 1 つのツールチップとして追加されました。

   

テスト フレームワーク Assert 関数

メッセージ ログを管理する新しい Assert 関数および AssertReporter 構造体がいくつか MAXScript に公開されて、3ds Max の開発時の単位テストに Autodesk によって内部で使用されるようになりました。

   

CRT デバッグ関数

いくつかのC ランタイム デバッグ関数 が MAXScript に公開され、SDK で例として提供されています。これらの関数は、ハードコア プログラム用で、MAXScript ヒープの破壊、ヒープの妥当性のチェック、および C レベルのアサートの生成が許可されます。

   

既存の機能への変更点

EulerAngles 値のトピックで説明した、以前問題があった GetEulerQuatAngleRatio() および GetMatQuatAngleRatio() メソッドが修正され、配列、eulerAngles または参照渡し変数を使用して正しい値が出力されるようになりました。

既存のビューポート描画メソッドは、Nitrous グラフィックス マネージャがアクティブな場合、ビューポート再描画コールバック関数にラップする必要があります。ラップしない場合、gw. メソッドは実行されません。これは、Nitrous システムではプログレッシブ リファイン アプローチが使用されるからです。

関連事項