このページでは、3ds Max 2010 の MAXScript 言語の変更と改良点について簡単にその概要を説明します。各機能の詳細については、ドキュメントの各ページのリンクをお読みください。
新機能に関する説明以外の MAXScript リファレンスの変更内容については、「3ds Max 2010 におけるドキュメントの変更点」を参照してください。
3ds Max 2010 には以下の新機能が追加され、MAXScript に公開されています。
コンテナは、シーン内のヘルパー オブジェクトで、自己収容型の内容をグループ化して、その内容を管理、公開、継承することができます。また、メモリからコンテンツオブジェクトをロード解除することもできます。
新しい[四角面化メッシュ](Quadify_Mesh)モディファイヤは、 ProBoolean テクノロジをベースとし、ジオメトリ オブジェクトのトポロジを手続き的にユーザ定義のサイズの四角形に変更します。
新しい[連結化](Welder)モディファイヤは、Cloth テクノロジをベースとし、手続き的に頂点または法線を連結します。
既存の[布地](Cloth)モディファイヤ に新しいメソッドが 2 つ追加され、布地の裂け目を追加および削除します。
xView チェッカーでは、ビューポート内のジオメトリ オブジェクトを相互作用的に確認して、さまざまなエラー状態を確認することができます。
このコア インタフェースは、xView Checker の機能と相互作用するためのプロパティおよびメソッドを公開します。
このコア インタフェースは、背面を異なる色で表示する反転面チェッカーのプロパティおよびメソッドを公開します。インタフェース: FlippedUVWFaces
このコア インタフェースは、反転したテクスチャ面を表示する xView チェッカーのプロパティおよびメソッドを公開します。
このコア インタフェースは、どの面からも使用されていない分離した頂点を表示する xView チェッカーのプロパティおよびメソッドを公開します。
インタフェース : MissingUVCoordinates
このコア インタフェースは、不足しているテクスチャ座標を表示する xView チェッカーのプロパティおよびメソッドを公開します。
このコア インタフェースは、複数エッジを表示する xView チェッカーのプロパティおよびメソッドを公開します。
このコア インタフェースは、開いているエッジ (1 つのポリゴンだけを参照するエッジ) を表示するxView チェッカーのプロパティおよびメソッドを公開します。
このコア インタフェースは、オーバーラップしているテクスチャ面を表示する xView チェッカーのプロパティおよびメソッドを公開します。
このコア インタフェースは、通常はビューポートおよびレンダリングにおける Z の競合の原因となる、オーバーラップしている面を表示するxView チェッカーのプロパティおよびメソッドを公開します。
このコア インタフェースは、指定された許容度の範囲内にあるオーバーラップした (連結されていない) 頂点を表示する xView チェッカーのプロパティおよびメソッドを公開します。
このコア インタフェースは、エッジが T 字型に交差し、エッジ ループ フローがポリゴン全体によって中断されている T-頂点を検出するxView チェッカーのメソッドを公開します。
チュートリアル - 面領域 xView チェッカーの開発 - 第 1 部
チュートリアル - 面領域 xView チェッカーの開発 - 第 2 部
チュートリアル - 面領域 xView チェッカーの開発 - 第 3 部
チュートリアル - 面領域 xView チェッカーの開発 - 第 4 部
これらのチュートリアルでは、MAXScript 関数を使用してカスタム xView チェッカーを作成する手順を紹介しています。
このコア インタフェースは、新しい[ビットマップ ページャ](Bitmap Pager)の設定を公開します。このドキュメントでは、ビットマップ ページャおよび mental ray レンダラーに対して自動的に課される[メモリ制限](Memory Limit)の計算に関するヒューリスティクスについても説明しています。
[グローバル調整パラメータ](Global Tuning Parameters)ロールアウト
mental ray レンダラーに新しく追加されたプロパティで、ソフト シャドウ、光沢反射、光沢屈折の精度に使用する新しいグローバル調整パラメータを公開します。
間接光 再利用 FG と GI ディスク キャッシュ ロールアウトの再使用
mental ray レンダラーに新しく追加されたプロパティで、FG キャッシュおよび GI キャッシュの再利用とキャッシュの補間をコントロールします。
[処理](Processing)/[トランスレータ オプション](Translator Options)ロールアウト/[メモリ オプション](Memory_Options)
mental ray レンダラーに新しく追加されたプロパティで、自動および手動によるメモリ制限の使用をコントロールします。
トラックをロックして編集できないようにするための新しい機能を公開する、新しいコア インタフェースです。
新しいプロパティ . showUnlockedIcons が、既存の MixinInterface に追加されました。
新しいメソッド .getLayerLocked() および .setLayerLocked() が、既存のコア インタフェースに追加されました。
また、[プロパティ](Properties)ダイアログ ボックスを再表示するためのメソッド refreshAnimLayerPropertiesDlg() が同じコア インタフェースに追加されました。
新しいメソッド AddLocalizableProperty() および AddLocalizableReadOnlyProperty() が、ローカライズ可能なカスタム列のために既存のインタフェースに追加されました。
固有の列レイアウトを持ったエクスプローラを作成できる CreateExplorer() メソッドおよび既存のエクスプローラの列レイアウトを設定する SetExplorerVisibleColumns() メソッドが既存のインタフェースに追加されました。
すべてのシーン エクスプローラを閉じて[保存されたシーン エクスプローラ](Saved Scene Explorers)メニュー リストをクリアする、新しい clearAllExplorers() メソッドが追加されました。
既存のインタフェースに、3 つの新しいプロパティが追加されました。 .colorCorrectionPrefMode は、優先カラー補正モードをコントロールし、INI ファイルに保存されて、異なるファイル間で保持されます。 .affectColorPickers と .affectMEdit はカラー ピッカーおよびマテリアル エディタがガンマ設定によって影響を受けるかどうかをコントロールします。
新しいコマンド max file preferences gamma が使用可能な MAX コマンドのリストに追加されました。このコマンドは、[基本設定](Preference Settings)ダイアログ ボックスの[ガンマ](Gamma)タブを開きます。
新しい maxOps 構造体メソッドは、ソフト シャドウ、アンビエント オクルージョン、露出制御プレビューなどのさまざまな高度なビューポート シェーディング オプションや、間接照明や被写界深度などの実験的な(サポートされていない)プレビュー モードをコントロールするいくつものインタフェースを公開するオブジェクトを提供します。
アンビエント オクルージョンの相互作用およびソフト シャドウ フィルタのサイズをコントロールするための 2 つの新しいプロパティが既存のコア インタフェースに追加されました。
この新しいコア インタフェースは、ビューポート内におけるソフト シャドウの表示のコントロールに関連するいくつかのプロパティおよびメソッドを公開します。
この新しいコア インタフェースは、ビューポート ボタンの表示をコントロールするためのプロパティを公開します。
Direct3D メッシュ キャッシュのメモリ、面の数、およびタイミングに関する情報を問い合わせるための 3 つの新しい関数が追加されました。
選択した頂点および選択したポリゴンの頂点カラー、照明、およびアルファ値を取得および設定するための新しいメソッドが追加されました。
マテリアル IDロールアウトのポリゴン: マテリアル IDフロータ バージョンの可視性を切り替え、フロータの可視性をテストするための 2 つの新しいメソッドが追加されました。
編集可能ポリゴンの[ポリゴン: マテリアル ID](Polygon Material IDs)フロータ
[マテリアル ID](Material IDs)ロールアウトの[ポリゴン: マテリアル ID](Material IDs)フロータ バージョンの可視性を切り替え、フロータの可視性をテストするための 2 つの新しいメソッドが追加されました。
編集可能ポリゴンの[ポリゴン: スムージング グループ](Polygon Smoothing Groups )フロータ
[スムージング グループ](Smoothing Groups)ロールアウトの[ポリゴン: スムージング グループ](Smoothing Groups)フロータ バージョンの可視性を切り替え、フロータの可視性をテストするための 2 つの新しいメソッドが追加されました。
ポリゴンを編集の[ポリゴン: マテリアル ID](Polygon Material IDs)フロータ
[マテリアル ID](Material IDs)ロールアウトの[ポリゴン: マテリアル ID](Material IDs)フロータ バージョンの可視性を切り替え、フロータの可視性をテストするための 2 つの新しいメソッドが追加されました。
ポリゴンを編集の[ポリゴン: スムージング グループ](Polygon Smoothing Groups)フロータ
[スムージング グループ](Smoothing Groups)ロールアウトの[ポリゴン: スムージング グループ](Smoothing Groups)フロータ バージョンの可視性を切り替え、フロータの可視性をテストするための 2 つの新しいメソッドが追加されました。
MAX ファイルの AssetManager、AssetUser、アセット メタデータへのアクセス
3ds Max 全体における外部アセットの作成、管理、保存方法が根底から作り直されました。アセット データ管理を処理するための新しいインタフェース、オブジェクト、メソッドが追加されています。
アセット マネージャおよび AssetUser IObject と相互作用するためのメソッドを公開する新しいコア インタフェースです。
アセット データの保存および管理に使用される、新しい AssetUser Class のインスタンスです。パラメータ ブロック内に保存される MAXScript ファイル名は、'<object>.filename as AssetUser' という形式を使用して強制的に AssetUser クラスのインスタンスにできるようになりました。
MAX ファイル アセット メタデータのストリーム アクセス
.MAX ファイル形式では、すべてのアセット データ情報が、メタデータとして個別のストリームに保存されるようになりました。このデータは、外部アプリケーションまたは MAXScript を使用して、シーン自体をロードすることなくアクセスおよび変更することができます。.Max ファイルに保存されたメタデータに読み込みアクセスおよび書き込みアクセスを行うための 2 つのメソッドが用意されています。
重複した名前を持ったマテリアルの合成をコントロールするための新しいオプション dupMtlNameAction: が、既存の xrefs.addNewXRefObject() 関数に追加されました。
3ds Max 2009 で公開された mr_Proxy の 2 つのプロパティは、同じ名前のノードレベルのプロパティで衝突を発生していました。この問題を解決するために、mr_Proxy オブジェクトの .points プロパティおよび .scale プロパティに、2 つの新しいエイリアスが追加されました。ドキュメントには、オブジェクトの .baseobject プロパティを代用して値にアクセスする方法についても記述されています。
2 つの OBJ I/O プラグインでは、設定およびプリセットが純然たる ASCII INI ファイル形式で保存されるようになり、標準の getIniSetting() および setIniSetting() MAXScript 関数を使用して読み込みおよび修正できるようになりました。いずれも、現在の INI ファイル名およびプリセット INI ファイル名にアクセスするためのメソッドを公開します。
これらのインタフェースは、3ds Max 2009 では OpenFlight シミュレーション データベース I/O 用の Flight Studio アドオンによって追加されていましたが、3ds Max 2010 では組み込み機能になりました。
qat インタフェースでは、アプリケーション アイコンの隣にあるクイック アクセス ツールバーのアクション項目の追加、入れ替え、削除を行うことができます。MacroScript によって定義されたアクション項目もこの対象です。
[修正](Modify)パネルの[スタックをロック](Pin Stack)ボタンの状態にアクセスしてコントロールするための新しい 3 つのメソッドが、既存の modPanel 構造体に追加されました。
新しいプロパティ maxOps.productID が、スクリプトが実行されている 3ds Max の「種類」(3ds Max Entertainment または 3ds Max Design)を判別するために既存のインタフェースに追加されました。
アドバンスド パーティクル フロー 拡張機能は、以前は Orbaz Particle Flow Toolbox #1 に含まれていたオペレータを提供します。
アドバンスド パーティクル フロー Extensionは、これまでは Orbaz Particle Flow Toolbox #1 だけに含まれていた Express_Save オペレータを提供し、このオペレータが含まれている既存のシーンをロードする場合の下位互換性を維持します。このオペレータの機能はパーティクル フローのコアに完全に統合され、このオペレータは 廃止されました。
アドバンスド パーティクル フロー Extension は、従来の ShapeStandard ヘルパーを置き換える新しい既定値の Shape オペレータを提供します。従来のオペレータをロードしたり MAXScript で作成したりすることはできますが、パーティクル フロー Depot による公開は終了しました。
既存の ParticleFlow インタフェースに 5 つの新しいメソッドが追加され、従来は Orbaz Particle Flow Toolbox #1 に含まれていたクリーンアップ機能を、パーティクル フロー ユーティリティおよびユーティリティ オペレータを使用して実装できるようになりました。
3ds Max 2010 では、MAXScript 言語に以下の新機能が追加されました。
行番号が MAXScript コード ツリーでサポートされるようになり、エラー メッセージとデバッガにおいて、エラーまたは中断が発生したコード内の行をレポートできるようになりました。新しいメソッド getSourceFileLine() は、呼び出し元のソース ファイル行番号を返します。
行番号のサポートにより、 Assert() 関数を使用して開発者がスクリプト コード内で述語をアサートできるようになり、コードの実行が正しいことを論理的に判断できるようになりました。
構造体定義における Pirvate メンバと Public メンバ
構造体のメンバ(関数および変数)を public または private として宣言して、外部コードおよびデバッガに対する可視性をコントロールできるようになりました。
以前のバージョンの 3ds Max では、MAXScript ガベージ コレクションを実行することによって DotNet イベント ハンドラの削除の実行が早くなりすぎてしまいました。新しいメソッドを使用することにより、この問題を回避できます。
MAXScript 値を DotNet 値に明示的に変換する新しいメソッドが追加され、特に MAXScript 配列から DotNet 配列を作成する場合に便利です。
ファイルおよびディレクトリのセキュリティ属性およびアクセス性をテストする 2 つの関数、 getFileSecurityInfo() および isDirectoryWriteable() が追加されました。
既存の hiddenDOSCommand() メソッドがアップデートされ、オプションの開始パス引数を指定しなくても正しく動作できるようになりました。これまでのリリースでは、開始パス引数を省略すると実行できませんでした。さらに、参照変数を使用して DOS コマンドのリターン コードへのアクセスを提供する新しいオプション引数が追加されました。
メイン メニュー の[グループ](Group) > [アタッチ](Attach)または[デタッチ](Detach)の操作をミラー化するための新しい 2 つの関数、 attachNodesToGroup() および detachNodesFromGroup() が MAXScript に追加されました。
既存の関数が強化され、2 つのイメージを合成して 1 つのイメージを作成する、カスタム MAXScript 関数がサポートされるようになりました。この関数は 2 つのピクセルのカラーと位置を渡し、作成されるピクセル カラーを返します。この関数は、結合するピクセルのペアごとに内部的に呼び出され、MAXScript の FOR ループで getPixels() および setPixels() を使用するよりも高速です。
新しい on rightClick do() ハンドラが、既存のユーザ インタフェース コントロールに追加されました。
新しいツールチップ作図パラメータとプロパティが、既存のスピナー ユーザ インタフェース コントロールに追加されました。
新しいツールチップ作図パラメータとプロパティが、既存のスライダ ユーザ インタフェース コントロールに追加されました。
MacroScript autoUndoEnabled パラメータ
既存の MacroScript コンストラクタに、新しい autoUndoEnabled 作図パラメータが追加され、MacroScript 本体全体に対して、Undo レコードの自動生成を無効化できるようになりました。
ユーザ インタフェース コントロールのイベント ハンドラを、ユーザ インタフェース[グループ](Group)の本体の内部に追加できるようになりました。これまでは、[グループ](Groups)にイベント ハンドラを追加すると構文エラーになっていました。
画像をサポートする 9 番目の新しいオプション要素が追加されました。Windows カラー テーマの使用をコントロールする構築パラメータおよびボタン、チェックボタン、マップボタン、マテリアルボタンのプロパティが追加されました。