3ds Max 2010 での MAXScript の新機能

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

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

3ds Max の新機能の公開

3ds Max 2010 には以下の新機能が追加され、MAXScript に公開されています。

コンテナ

コンテナ

コンテナは、シーン内のヘルパー オブジェクトで、自己収容型の内容をグループ化して、その内容を管理、公開、継承することができます。また、メモリからコンテンツオブジェクトをロード解除することもできます。

インタフェース: コンテナ

Containers インタフェースは、新しいコンテナ オブジェクトの操作に使用する管理機能を提供します。

Container : ヘルパー

Container ヘルパーは、シーン内のコンテナを作成および管理するために使用されるオブジェクトを表します。

モディファイヤ

Quadify_Mesh : モディファイヤ

新しい[四角面化メッシュ](Quadify_Mesh)モディファイヤは、 ProBoolean テクノロジをベースとし、ジオメトリ オブジェクトのトポロジを手続き的にユーザ定義のサイズの四角形に変更します。

Welder : モディファイヤ

新しい[連結化](Welder)モディファイヤは、Cloth テクノロジをベースとし、手続き的に頂点または法線を連結します。

Cloth Tearing メソッド

既存の[布地](Cloth)モディファイヤ新しいメソッドが 2 つ追加され、布地の裂け目を追加および削除します。

xView ジオメトリ チェッカー

xView ジオメトリ チェッカへのアクセス

xView チェッカーでは、ビューポート内のジオメトリ オブジェクトを相互作用的に確認して、さまざまなエラー状態を確認することができます。

インタフェース: XViewChecker

このコア インタフェースは、xView Checker の機能と相互作用するためのプロパティおよびメソッドを公開します。

インタフェース: FacesOrientation

このコア インタフェースは、背面を異なる色で表示する反転面チェッカーのプロパティおよびメソッドを公開します。インタフェース: FlippedUVWFaces

インタフェース : FlippedUVWFaces

このコア インタフェースは、反転したテクスチャ面を表示する xView チェッカーのプロパティおよびメソッドを公開します。

インタフェース : IsolatedVertices

このコア インタフェースは、どの面からも使用されていない分離した頂点を表示する xView チェッカーのプロパティおよびメソッドを公開します。

インタフェース : MissingUVCoordinates

このコア インタフェースは、不足しているテクスチャ座標を表示する xView チェッカーのプロパティおよびメソッドを公開します。

インタフェース: MultipleEdges

このコア インタフェースは、複数エッジを表示する xView チェッカーのプロパティおよびメソッドを公開します。

インタフェース: OpenEdges

このコア インタフェースは、開いているエッジ (1 つのポリゴンだけを参照するエッジ) を表示するxView チェッカーのプロパティおよびメソッドを公開します。

インタフェース: OverlappedUVWFaces

このコア インタフェースは、オーバーラップしているテクスチャ面を表示する xView チェッカーのプロパティおよびメソッドを公開します。

インタフェース: OverlappingFaces

このコア インタフェースは、通常はビューポートおよびレンダリングにおける Z の競合の原因となる、オーバーラップしている面を表示するxView チェッカーのプロパティおよびメソッドを公開します。

インタフェース: OverlappingVertices

このコア インタフェースは、指定された許容度の範囲内にあるオーバーラップした (連結されていない) 頂点を表示する xView チェッカーのプロパティおよびメソッドを公開します。

インタフェース: TVerts

このコア インタフェースは、エッジが T 字型に交差し、エッジ ループ フローがポリゴン全体によって中断されている T-頂点を検出するxView チェッカーのメソッドを公開します。

チュートリアル - 面領域 xView チェッカーの開発 - 第 1 部

チュートリアル - 面領域 xView チェッカーの開発 - 第 2 部

チュートリアル - 面領域 xView チェッカーの開発 - 第 3 部

チュートリアル - 面領域 xView チェッカーの開発 - 第 4 部

これらのチュートリアルでは、MAXScript 関数を使用してカスタム xView チェッカーを作成する手順を紹介しています。

ビットマップ ページャの公開および自動モード

インタフェース: IBitmapPager

このコア インタフェースは、新しい[ビットマップ ページャ](Bitmap Pager)の設定を公開します。このドキュメントでは、ビットマップ ページャおよび mental ray レンダラーに対して自動的に課される[メモリ制限](Memory Limit)の計算に関するヒューリスティクスについても説明しています。

3ds Max システム ディレクトリ

新しい #pageFile 列挙値が使用可能なシステム パスのリストに追加されました。

mental ray レンダラー

[グローバル調整パラメータ](Global Tuning Parameters)ロールアウト

mental ray レンダラーに新しく追加されたプロパティで、ソフト シャドウ、光沢反射、光沢屈折の精度に使用する新しいグローバル調整パラメータを公開します。

間接光 再利用 FG と GI ディスク キャッシュ ロールアウトの再使用

mental ray レンダラーに新しく追加されたプロパティで、FG キャッシュおよび GI キャッシュの再利用とキャッシュの補間をコントロールします。

[処理](Processing)/[トランスレータ オプション](Translator Options)ロールアウト/[メモリ オプション](Memory_Options)

mental ray レンダラーに新しく追加されたプロパティで、自動および手動によるメモリ制限の使用をコントロールします。

トラックビューでロック中のトラック

インタフェース : LockedTracksMan

トラックをロックして編集できないようにするための新しい機能を公開する、新しいコア インタフェースです。

トラックビュー の UI MixinInterface

新しいプロパティ . showUnlockedIcons が、既存の MixinInterface に追加されました。

インタフェース: AnimLayerManager

新しいメソッド .getLayerLocked() および .setLayerLocked() が、既存のコア インタフェースに追加されました。

また、[プロパティ](Properties)ダイアログ ボックスを再表示するためのメソッド refreshAnimLayerPropertiesDlg() が同じコア インタフェースに追加されました

エクスプローラ

インタフェース: SceneExplorerManager

新しいメソッド AddLocalizableProperty() および AddLocalizableReadOnlyProperty() が、ローカライズ可能なカスタム列のために既存のインタフェースに追加されました。

固有の列レイアウトを持ったエクスプローラを作成できる CreateExplorer() メソッドおよび既存のエクスプローラの列レイアウトを設定する SetExplorerVisibleColumns() メソッドが既存のインタフェースに追加されました。

すべてのシーン エクスプローラを閉じて[保存されたシーン エクスプローラ](Saved Scene Explorers)メニュー リストをクリアする、新しい clearAllExplorers() メソッドが追加されました。

インタフェース: MaterialExplorerManager

この新しいコア インタフェースは、MAXScript にマテリアル エクスプローラを公開します。

表示補正:ガンマ/LUT

インタフェース: IDisplayGamma

既存のインタフェースに、3 つの新しいプロパティが追加されました。 .colorCorrectionPrefMode は、優先カラー補正モードをコントロールし、INI ファイルに保存されて、異なるファイル間で保持されます。 .affectColorPickers .affectMEdit はカラー ピッカーおよびマテリアル エディタがガンマ設定によって影響を受けるかどうかをコントロールします。

max コマンド

新しいコマンド max file preferences gamma が使用可能な MAX コマンドのリストに追加されました。このコマンドは、[基本設定](Preference Settings)ダイアログ ボックスの[ガンマ](Gamma)タブを開きます。

ビューポート シェーディング

ビューポートのシェーディング設定

新しい maxOps 構造体メソッドは、ソフト シャドウ、アンビエント オクルージョン、露出制御プレビューなどのさまざまな高度なビューポート シェーディング オプションや、間接照明や被写界深度などの実験的な(サポートされていない)プレビュー モードをコントロールするいくつものインタフェースを公開するオブジェクトを提供します。

インタフェース : IViewportShadingMgr

アンビエント オクルージョンの相互作用およびソフト シャドウ フィルタのサイズをコントロールするための 2 つの新しいプロパティが既存のコア インタフェースに追加されました。

インタフェース: ViewportSSB

この新しいコア インタフェースは、ビューポート内におけるソフト シャドウの表示のコントロールに関連するいくつかのプロパティおよびメソッドを公開します。

インタフェース: ViewportButtonMgr

この新しいコア インタフェースは、ビューポート ボタンの表示をコントロールするためのプロパティを公開します。

Direct 3D キャッシュ割り当てクエリー関数

Direct3D メッシュ キャッシュのメモリ、面の数、およびタイミングに関する情報を問い合わせるための 3 つの新しい関数が追加されました。

また、シングル スレッドとマルチ スレッドのメッシュ キャッシュの作成を切り替える別の関数もあります。

編集可能ポリゴン

編集可能ポリゴンの頂点カラー、照明、アルファの取得/設定

選択した頂点および選択したポリゴンの頂点カラー、照明、およびアルファ値を取得および設定するための新しいメソッドが追加されました。

編集可能ポリゴンのペイント変形

マテリアル IDロールアウトのポリゴン: マテリアル IDフロータ バージョンの可視性を切り替え、フロータの可視性をテストするための 2 つの新しいメソッドが追加されました。

編集可能ポリゴンの[ポリゴン: マテリアル ID](Polygon Material IDs)フロータ

[マテリアル ID](Material IDs)ロールアウトの[ポリゴン: マテリアル ID](Material IDs)フロータ バージョンの可視性を切り替え、フロータの可視性をテストするための 2 つの新しいメソッドが追加されました。

編集可能ポリゴンの[ポリゴン: スムージング グループ](Polygon Smoothing Groups )フロータ

[スムージング グループ](Smoothing Groups)ロールアウトの[ポリゴン: スムージング グループ](Smoothing Groups)フロータ バージョンの可視性を切り替え、フロータの可視性をテストするための 2 つの新しいメソッドが追加されました。

[ポリゴンを編集](Edit Poly)モディファイヤ

ポリゴンを編集の[ポリゴン: マテリアル ID](Polygon Material IDs)フロータ

[マテリアル ID](Material IDs)ロールアウトの[ポリゴン: マテリアル ID](Material IDs)フロータ バージョンの可視性を切り替え、フロータの可視性をテストするための 2 つの新しいメソッドが追加されました。

ポリゴンを編集の[ポリゴン: スムージング グループ](Polygon Smoothing Groups)フロータ

[スムージング グループ](Smoothing Groups)ロールアウトの[ポリゴン: スムージング グループ](Smoothing Groups)フロータ バージョンの可視性を切り替え、フロータの可視性をテストするための 2 つの新しいメソッドが追加されました。

アセット マネージャと Max ファイル メタデータ

MAX ファイルの AssetManager、AssetUser、アセット メタデータへのアクセス

3ds Max 全体における外部アセットの作成、管理、保存方法が根底から作り直されました。アセット データ管理を処理するための新しいインタフェース、オブジェクト、メソッドが追加されています。

インタフェース: AssetManager

アセット マネージャおよび AssetUser IObject と相互作用するためのメソッドを公開する新しいコア インタフェースです。

IObject:AssetUser

アセット データの保存および管理に使用される、新しい AssetUser Class のインスタンスです。パラメータ ブロック内に保存される MAXScript ファイル名は、'<object>.filename as AssetUser' という形式を使用して強制的に AssetUser クラスのインスタンスにできるようになりました。

MAX ファイル アセット メタデータのストリーム アクセス

.MAX ファイル形式では、すべてのアセット データ情報が、メタデータとして個別のストリームに保存されるようになりました。このデータは、外部アプリケーションまたは MAXScript を使用して、シーン自体をロードすることなくアクセスおよび変更することができます。.Max ファイルに保存されたメタデータに読み込みアクセスおよび書き込みアクセスを行うための 2 つのメソッドが用意されています。

インタフェース: FileResolutionManager

アセット ファイルを解決するためのメソッドを公開する新しいコア インタフェースです。

外部参照オブジェクト

外部参照オブジェクト : ノード

重複した名前を持ったマテリアルの合成をコントロールするための新しいオプション dupMtlNameAction: が、既存の xrefs.addNewXRefObject() 関数に追加されました。

mr_Proxy オブジェクト

mr プロキシ: GeometryClass

3ds Max 2009 で公開された mr_Proxy の 2 つのプロパティは、同じ名前のノードレベルのプロパティで衝突を発生していました。この問題を解決するために、mr_Proxy オブジェクトの .points プロパティおよび .scale プロパティに、2 つの新しいエイリアスが追加されました。ドキュメントには、オブジェクトの .baseobject プロパティを代用して値にアクセスする方法についても記述されています。

OBJ 読み込みおよび書き出し設定へのアクセス

ObjExp : ExporterPlugin

ObjImp : ImporterPlugin

2 つの OBJ I/O プラグインでは、設定およびプリセットが純然たる ASCII INI ファイル形式で保存されるようになり、標準の getIniSetting() および setIniSetting() MAXScript 関数を使用して読み込みおよび修正できるようになりました。いずれも、現在の INI ファイル名およびプリセット INI ファイル名にアクセスするためのメソッドを公開します。

布地

Cloth : モディファイヤ

[布地](Cloth)モディファイヤに、連結、圧力、引き裂きの機能をコントロールするプロパティが追加されました。

Flight Studio

インタフェース: FlightStudio

インタフェース: FlightStudioExport

インタフェース: FlightStudioImport

インタフェース: FlightStudioImage

これらのインタフェースは、3ds Max 2009 では OpenFlight シミュレーション データベース I/O 用の Flight Studio アドオンによって追加されていましたが、3ds Max 2010 では組み込み機能になりました。

ユーザ インタフェースのカスタマイズ

インタフェース: qat

qat インタフェースでは、アプリケーション アイコンの隣にあるクイック アクセス ツールバーのアクション項目の追加、入れ替え、削除を行うことができます。MacroScript によって定義されたアクション項目もこの対象です。

[修正](Modify)パネルのコントロール アクセス

[スタックをロック](Pin Stack)ボタン

[修正](Modify)パネルの[スタックをロック](Pin Stack)ボタンの状態にアクセスしてコントロールするための新しい 3 つのメソッドが、既存の modPanel 構造体に追加されました。

プロダクト ID および言語へのアクセス

インタフェース : maxOps

新しいプロパティ maxOps.productID が、スクリプトが実行されている 3ds Max の「種類」(3ds Max Entertainment または 3ds Max Design)を判別するために既存のインタフェースに追加されました。

sysinfo.GetMaxLanguage()

3ds Max 言語を返す新しいシステム情報メソッドが追加されました。

character studio

Biped の指関節および親指第一関節のプロパティ

指関節および親指第一間接をコントロールするための 2 つの新しいプロパティが追加されました。

Biped レイヤ再ターゲット メソッド

Biped レイヤ再ターゲットをコントロールするためのいくつかの新しいメソッドが追加されました。

Extension

以下の機能は、はじめにサブスクリプションメンバー用の 3ds Max 2009 用 Extension として提供され、3ds Max 2010 で組み込まれたものです。

プロ オプティマイザー

ProOptimizer モディファイヤ

[プロ オプティマイザー](ProOptimizer)モディファイヤは、高度な最適化機能を提供します。

インタフェース: BatchProOptimizer

BatchProOptimizer Interface は、最適化タスクをバッチで処理することができます。

プロ サウンド Extension

プロ サウンド Extension

プロ サウンド 機能は、最大 100 のステレオ サウンド トラックをサポートし、数多くの機能を MAXScript に公開します。

アドバンスド パーティクル フロー

Birth_Paint : Helper

Birth_Texture : Helper

Initial_State : Helper

Group_Operator : Helper

Group_Select : Helper

Lock_Bond : Helper

Mapping_Object : Helper

Placement_Paint : Helper

Split_Group : Helper

Particle_Paint : Helper

アドバンスド パーティクル フロー 拡張機能は、以前は Orbaz Particle Flow Toolbox #1 に含まれていたオペレータを提供します。

Express_Save : Helper

アドバンスド パーティクル フロー Extensionは、これまでは Orbaz Particle Flow Toolbox #1 だけに含まれていた Express_Save オペレータを提供し、このオペレータが含まれている既存のシーンをロードする場合の下位互換性を維持します。このオペレータの機能はパーティクル フローのコアに完全に統合され、このオペレータは 廃止されました

シェイプ ライブラリ: ヘルパー

アドバンスド パーティクル フロー Extension は、従来の ShapeStandard ヘルパーを置き換える新しい既定値の Shape オペレータを提供します。従来のオペレータをロードしたり MAXScript で作成したりすることはできますが、パーティクル フロー Depot による公開は終了しました。

particleFlow グローバル インタフェース

既存の ParticleFlow インタフェースに 5 つの新しいメソッドが追加され、従来は Orbaz Particle Flow Toolbox #1 に含まれていたクリーンアップ機能を、パーティクル フロー ユーティリティおよびユーティリティ オペレータを使用して実装できるようになりました。

MAXScript 言語に関する改善点

3ds Max 2010 では、MAXScript 言語に以下の新機能が追加されました。

デバッグ

MAXScript のソース ファイル名へのアクセス

行番号が MAXScript コード ツリーでサポートされるようになり、エラー メッセージとデバッガにおいて、エラーまたは中断が発生したコード内の行をレポートできるようになりました。新しいメソッド getSourceFileLine() は、呼び出し元のソース ファイル行番号を返します。

assert 関数

行番号のサポートにより、 Assert() 関数を使用して開発者がスクリプト コード内で述語をアサートできるようになり、コードの実行が正しいことを論理的に判断できるようになりました。

構造体定義

構造体定義における Pirvate メンバと Public メンバ

構造体のメンバ(関数および変数)を public または private として宣言して、外部コードおよびデバッガに対する可視性をコントロールできるようになりました。

構造体の作成およびクローン作成用イベント ハンドラ

構造体定義は、private イベント ハンドラとして実装し、作成時またはクローン作成時に呼び出せるようになりました。

DotNet

DotNet オブジェクトおよびクラスの寿命制御

以前のバージョンの 3ds Max では、MAXScript ガベージ コレクションを実行することによって DotNet イベント ハンドラの削除の実行が早くなりすぎてしまいました。新しいメソッドを使用することにより、この問題を回避できます。

MAXScript と Dotnet の値の変換

MAXScript 値を DotNet 値に明示的に変換する新しいメソッドが追加され、特に MAXScript 配列から DotNet 配列を作成する場合に便利です。

ファイルおよびディレクトリのセキュリティ メソッド

外部ファイル メソッド

ファイルおよびディレクトリのセキュリティ属性およびアクセス性をテストする 2 つの関数、 getFileSecurityInfo() および isDirectoryWriteable() が追加されました。

外部コマンドの実行

既存の hiddenDOSCommand() メソッドがアップデートされ、オプションの開始パス引数を指定しなくても正しく動作できるようになりました。これまでのリリースでは、開始パス引数を省略すると実行できませんでした。さらに、参照変数を使用して DOS コマンドのリターン コードへのアクセスを提供する新しいオプション引数が追加されました。

ノードの共通メソッド

ノードの共通メソッド - グループ メソッド

メイン メニュー の[グループ](Group) > [アタッチ](Attach)または[デタッチ](Detach)の操作をミラー化するための新しい 2 つの関数、 attachNodesToGroup() および detachNodesFromGroup() が MAXScript に追加されました。

[作成](Create)パネル - オブジェクトの作成

isCreatingObject メソッド

このメソッドは、引数が未定義の場合には false を返し、OkToCreate() メソッドと矛盾しないようになりました。

カスタム ビットマップの合成

pasteBitmap

既存の関数が強化され、2 つのイメージを合成して 1 つのイメージを作成する、カスタム MAXScript 関数がサポートされるようになりました。この関数は 2 つのピクセルのカラーと位置を渡し、作成されるピクセル カラーを返します。この関数は、結合するピクセルのペアごとに内部的に呼び出され、MAXScript の FOR ループで getPixels() および setPixels() を使用するよりも高速です。

MAXScript ユーザ インタフェース コントロール

Angle

Checkbox

Combobox

Curve Control

Dropdownlist

HyperLink

Listbox

MultiListBox

ProgressBar

Radiobuttons

Slider

新しい on rightClick do() ハンドラが、既存のユーザ インタフェース コントロールに追加されました。

編集ボックス

新しいツールチップ作図パラメータとプロパティが、既存のスピナー ユーザ インタフェース コントロールに追加されました。

スライダ

新しいツールチップ作図パラメータとプロパティが、既存のスライダ ユーザ インタフェース コントロールに追加されました。

MacroScript autoUndoEnabled パラメータ

既存の MacroScript コンストラクタに、新しい autoUndoEnabled 作図パラメータが追加され、MacroScript 本体全体に対して、Undo レコードの自動生成を無効化できるようになりました。

[グループ](Group)ユーザ インタフェース項目

ユーザ インタフェース コントロールのイベント ハンドラを、ユーザ インタフェース[グループ](Group)の本体の内部に追加できるようになりました。これまでは、[グループ](Groups)にイベント ハンドラを追加すると構文エラーになっていました。

イメージ ボタン

画像をサポートする 9 番目の新しいオプション要素が追加されました。Windows カラー テーマの使用をコントロールする構築パラメータおよびボタン、チェックボタン、マップボタン、マテリアルボタンのプロパティが追加されました。

起動スクリプトのロード順序の改良

スタートアップ スクリプト

起動スクリプト (特に ¥Startup フォルダからロードされるもの) のロード順序が改良され、コマンド ラインから起動された .MAX ファイルをロードする場合、または 3ds Max のデスクトップ ショートカット アイコンに .MAX ファイルをドラッグアンドドロップしてロードする場合に、¥Startup フォルダで評価されたコードを使用するため #preFileOpen コールバック イベントを使用できるようになりました。

関連事項