3ds Max 2008 MAXScript の新機能

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

SciTE MAXScript エディタ

[MAXScript エディタ](MAXScript Editor)ウィンドウ

従来の RichEdit をベースにした MAXScript エディタの大部分は、オープン ソースの Scintilla コントロールおよび SciTE エディタをベースにした新しいタブ付きのエディタに置き換えられました。

MAXScript エディタのほか、MAXScript リスナーと、その GUI の左下隅にある MacroRecorder 領域および ミニリスナーでも Scintilla コントロールが使用されるようになり、最大 500 回の操作を元に戻すことができるようになりました

MAXScript タブ付きエディタの概要

このトピックでは、新しいエディタと主な機能および利点について紹介しています。

MAXScript エディタのコマンド

このトピックは、新しいエディタ、メニュー、コマンド、キーボード ショートカットの使用法とさまざまなカスタマイズ方法について説明した個別のトピックのインデックスになっています。同じリンクを以下に用意しておきます。

MAXScript エディタ - キーボード ショートカット

MAXScript エディタ - キーボード ショートカット

3ds Max での新機能の公開

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

ビューポートのシェーディング - イルミネーションとシャドウ

インタフェース : IViewportShadingMgr

このインタフェースは、シャドウおよびピクセル単位のシェーディングを含めてビューポート シェーディング システム を MAXScript に公開します。

インタフェース : INodeShadingProperties

このノード インタフェースは、ビューポート シェーディング ノード プロパティを MAXScript に公開します。

最適表示

最適表示アクセス

viewport 構造体におけるこれらの新しいメソッドを使用すると、完全に書き替えられた最適表示システムのすべてのコントロールを取得および設定することができます。

インタフェース: INodeDisplayProperties

最適表示からノードを除外するときに使用する .neverDegrade プロパティにアクセスするための新しいノード インタフェースです。

ビューポート内でマップを表示

ビューポート内でハードウェア マップを表示

新しい enableHardwareMaterial() メソッドおよび showHWTextureMap() メソッドは、[ビューポート内でマップを表示](Show Map In Viewport)アイコンの新しいフライアウト オプションを切り替える場合に使用します。

ビューポート コントロール

ビューポート.SetFOV

新しい viewport.setFOV() メソッドは、アクティブ ビューポートの視野を度数で設定します。

ビューポート.GetFocalDistance

新しいメソッド viewport.getFocalDistance() および viewport.setFocalDistance() は、アクティブ ビューポートの焦点距離を取得および設定します。

ビューポート パン、ズーム、回転

新しいメソッド viewport.pan()、viewport.zoom()、 viewport.zoomPerspective() viewport.rotate() を使用すると、3ds Max UI のインタラクティブ パン、ズーム、画面回転コマンドと同じスクリプト ビューポート ナビゲーション操作を実装できます。

表示カラー補正 - ガンマおよび LUT

インタフェース: IDisplayGamma

既存のコア インタフェースが拡張され、カラー補正モード、LUT ファイル名、ガンマ値などのいくつかのガンマ設定および LUT 設定が公開されました。

シーン エクスプローラ

インタフェース: SceneExplorerManager

この新しいコア インタフェースは、名前で指定されたシーン エクスプローラをオープン、クローズ、ロード、保存、配置、およびサイズ変更するためのメソッドや、スクリプト関数を使用してシーン エクスプローラに新しいプロパティ フィルタを追加するためのメソッドを含むシーン エクスプローラ 管理関数を提供します。

優先機能を有効

インタフェース : ActionItemOverrideManager

この新しいコア インタフェースは、優先機能を有効機能を MAXScript に公開します。

作業基点

インタフェース : WorkingPivot

この新しいコア インタフェースは、作業基点機能を MAXScript に公開します。

Axis_Helper : ヘルパー

この内部ヘルパー クラスのインスタンスは、シーン内に座標軸を表示したり、この座標軸を現在の変換システムの参照ノードとして設定したりする目的で作業基点機能によって使用されます。

ポリゴン モデリング

Edit_Poly 選択 プロパティ

新しいプロパティ .selectMode が Edit_Poly モディファイヤに追加されました。このプロパティは、新しいサブオブジェクト選択モード (Off、SubObj、Multi) を公開します。

Editable_Poly エッジ面取りプロパティ

新しいプロパティ .edgeChamferSegments が Edit_Poly モディファイヤに追加されました。このプロパティは、新しいセグメントによるエッジの面取り機能を公開します。

Editable Poly プレビュー選択

新しいプロパティ .selectMode が Editable_Poly 基本オブジェクトに追加されました。このプロパティは、新しいサブオブジェクト選択モード (Off、SubObj、Multi) を公開します。

Editable_Poly エッジ面取りプロパティ

新しいプロパティ .edgeChamferSegments が Editable_Poly 基本オブジェクトに追加されました。このプロパティは、新しいセグメントによるエッジの面取り機能を公開します。

Unwrap_UVW モディファイヤ

Unwrap6Interface

Unwrap_UVW モディファイヤによって公開される新しい unwrap6 インタフェースを使用すると、新しいプロパティにアクセスできます。

Unwrap_UVW : モディファイヤ

A 新規 プロパティ .baseMaterial__リスト UVW アンラップ モディファイヤ.

Projection モディファイヤ

Project_Mapping : ReferenceTarget

Project_Mapping モディファイヤに、投影品質に関連するいくつかの新しいプロパティが追加されました。

Projection モディファイヤ ケージ

新しいメソッド exportCage() importCage() が、Projection モディファイヤによって公開されている projectionModOps インタフェースに追加されました。

ポイント キャッシュ モディファイヤとスペースワープ

Point_Cache: modifier

Point_CacheSpacewarpModifier: SpacewarpModifier

新しい .fileCount プロパティが、ポイント キャッシュ モディファイヤとスペースワープに 1 つのファイルまたは 1 フレーム当たりに 1 ファイルを保存するかどうかをコントロールするために追加されました。

アニメーションのロードと保存

インタフェース : LoadSaveAnimation

LoadSaveAnimation Interface に、いくつかの新しいメソッドが追加されたほか、いくつかの既存のメソッドに stripLayers: オプションが追加されました。

Biped:

オブジェクト空間オブジェクトとヘッドの LookAt Target プロパティ

Biped Vertical_Horizontal_Turn(Body):Matrix3 コントローラ .osObject プロパティおよび .headObject プロパティが変更され、undefined を有効な値として受け入れるようになりました。

DirectX シェーダ

DirectX_9_Shader

DirectX シェーダ マテリアルによって公開される関数公開インタフェースに、シェーダの技術の取得に関連するいくつかの新しいメソッドが追加されました。

書き出し

インタフェース: s3dexporter

この新しいコア インタフェースを使用すると、Shockwave 3D Exporter ダイアログ内のいくつかのアクションにアクセスすることができます。

シーンをレンダリング ダイアログ ボックス

3ds Max 2008 におけるプリレンダリング スクリプト評価順序の変更

プリレンダリング スクリプトおよびポストレンダリング スクリプトの評価順序が変更されました。

mental ray

mr_Sky_Portal : light

mr Sky ポータル ライトは、窓やドアのような開口部へのポータルの定義とスカイライトや HDRI 環境マップからのライトの収集によって、野外のライティングを屋内のライティングに変換するのに使用することができます。

mr_Photographic_Exposure_Control : ToneOperator

この新しい露出コントロールにより、従来の写真撮影で使用されていた実際のワークフローを使用できます。

要素のベイク処理

インタフェース: BakeElementProperties

すべての BakeElements によって公開されるこの新しいインタフェースを使用すると、従来はノードのインタフェースを使用しなければアクセスできなかったベイク処理要素のプロパティのいくつかに直接アクセスできます。

インタフェース: MaxOps

インタフェース : maxOps

AutoKey の既定のキーの作成および時間をコントロールするための新しいプロパティおよびメソッドが maxOps インタフェースに追加されました。 [モーション](Motion)タブ > [軌道](Trajectory)サブオブジェクト モードをコントロールするための新しいプロパティも追加されています。

新しい maxOps.findNodes() メソッドが追加されました。このメソッドは、マテリアルおよびレイヤによるフィルタリングを含む類似したノードの検索に使用できます。

menuMan インタフェース

インタフェース: menuMan

新しいメソッド createMenuItemFromAction() menuMan インタフェースに追加されました。

AnimHandle システム

AnimHandle システム

新しい AnimHandle システムは、ノード、モディファイヤ、マテリアル、コントローラなどのシーン内の すべてのエンティティに、一意な ID 番号を割り当てます。

ノード イベント システム

ノード イベント システム

新しいノード イベント システムでは、以前のリリースの 3ds Max で使用されていた一般イベント コールバック機能よりも 優れたノード関連イベントの処理が可能です。

既定値のアクション

インタフェース: defaultActions

新しい既定値のアクション コア インタフェースを使用すると、見つからない UVW、見つからない DLL などのイベントに対する既定値のアクションにアクセスできます。

MAXScript 言語に関する改良点

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

逐語的文字列リテラル

@ 」文字でプレフィックスされた逐語的文字列リテラルがサポートされるようになり、「¥t」、「¥n」、「¥r」などのエスケープ文字シーケンスを含んでいる場合でも評価時に拡張されないようになりました。

ファイルを開くおよび保存する標準のダイアログ ボックス

新しいオプション キーワード historyCategory: がメソッド getOpenFilename() および getSaveFilename() に追加されました。このオプション キーワードを使用すると、ファイル ダイアログ ボックスで履歴カテゴリを指定できるようになります。

openBitMap

既存の openBitMap() メソッドは、ビットマップをロードできなかった場合に、ランタイム エラーを生成するのではなく undefined を返すようになりました。

ワールド空間モディファイヤ - 検証のメソッド

新しい isSpaceWarpValid() メソッドは、指定されたオブジェクトにスペース ワープを適用できる場合に true を返します。

暗号化されたスクリプト ファイル

従来の暗号化方式に加え、新しい暗号化方式が提供されるようになりました。新しい暗号化方式を使用した暗号化されたスクリプトは、旧バージョンの 3ds Max では実行できません。

Avguard 拡張機能

Avguard DLX 拡張機能は、3ds Max 2008 に完全に組み込まれました。

ノード関連のメソッド

IntersectRayScene

シーン内のすべてのノードを使用してレイを交差させるための新しいメソッドが追加されました。

ノード モディファイヤ コンテキストの変換メソッド

新しいメソッド setModContextTM() および setModContextBBox() が追加されました。

ノード変形可能メソッド

新しいメソッド isDeformable()、numPoints() getPointPos() が追加されました。

ノード バウンディング ボックス メソッド

新しいメソッド nodeGetBoundingBox() および nodeLocalBoundingBox() が追加されました。

getNodeTM_Method

ノードが外部参照シーン オブジェクトである場合にもノードの変換行列を返す新しいメソッド getNodeTM() が追加されました。

参照、従属、インスタンス

refs.dependentNodes

指定された MAXObject に従属するノードを取得する新しいメソッドが追加されました。

notifyDependents()

MAXObject のすべての従属を通知する新しいメソッドが追加されました。

disableRefMsgs() および enableRefMsgs()

参照システムを無効または有効にする新しいメソッドが追加されました。

replaceInstances メソッド

既存の replaceInstances() メソッドが更新されました。

AreNodesInstances メソッド

引数として渡された 2 つのノードがインスタンスである場合に true を返す新しいメソッド areNodesInstances() が追加されました。

インタフェース: LayerManager

レイヤのリファレンスターゲットを返すメソッド getLayerObject() が追加されました。非推奨: Avguard 拡張機能を使用しているスクリプトとの互換性を保つためには、このメソッドを使用しないでください。

CustAttributes 構造体メソッド

カスタム アトリビュートのアトリビュート定義値

2 つの新しいメソッド custAttributes.getDefClass() および custAttributes.getDefInstances() が追加されました。

コントローラ メソッドおよび構造体

clearControllerNewFlag メソッド

コントローラがまだプロパティを割り当てられていない新しいインスタンスであることを示すフラグをクリアするための新しいメソッド clearControllerNewFlag() が追加されました。

BezierDefaultParams 構造体

TCBDefaultParams 構造体

新規に作成されたキーに対して既定のベジェおよび TCB キーの設定を公開する 2 つの新しい構造体が追加されました。

IK_ControllerMatrix3Controller : Matrix3Controller

IK コントローラの軸の設定 (イーズ、最小、最大、ダンピング、角度、スプリングなど) にアクセスするための新しい 20 個のメソッドが ik 構造体に追加されました。

Meshop 構造体メソッド

Meshop 頂点メソッド

既存のメソッド meshop.setVert() および meshop.moveVert() を変更して位置を配列として指定できるようになったので、同時に複数の頂点に影響を与えることが可能になりました。また、polyop.moveVert() メソッドにはソフト選択のサポートも追加されています。

Polyop 構造体メソッド

Editable_Poly メソッド

既存のメソッド polyop.setVert () および polyop.moveVert() を変更して位置を配列として指定できるようになったので、同時に複数の頂点に影響を与えることが可能になりました。また、polyop.moveVert() メソッドにはソフト選択のサポートも追加されています。

スプライン シェイプ メソッド

新しい SplineShape メソッド

新しいメソッド weldSpline()、findPathSegAndParam()、findLengthSegAndParam()、interpBezier3D()、tangetBezier3D() が追加されました。

配列の値

配列の値

配列に一意な値のみが含まれていることを確認するために使用する新しいメソッド appendIfUnique() および makeUniqueArray() が追加されました。

グローバル変数管理

globalVars 構造体

GlobalVars 構造体は、グローバル変数を収集、検査、管理するためのメソッドを提供します。

Persistents 構造体

Persistents 構造体は、存続グローバル変数を収集、検査、管理するためのメソッドを提供します。

ビットマップ値

pasteBitmap

新しいメソッド pasteBitmap() および getBitmapInfo() が追加されました。このメソッドを使用すると、ビットマップを別のビットマップに貼り付けたり、ビットマップの情報を取得できます。

DataPair 値

DataPair 値

任意のタイプの 2 つの値をラップする新しい DataPair Value クラスが追加されました。

文字列値メソッド

文字列値メソッド

文字列を大文字および小文字に変換するための toUpper() メソッドおよび toLower メソッド、ある文字列のすべてのオカレンスを別の文字列に置き換える replaceString() メソッド、ライン フィードをキャリッジ リターン/ライン フィードのテキストファイルに変換する replace_LF_with_CRLF() メソッドが新しく追加されました。

Quat およびオイラー値のメソッド

EulerAngles メソッド

Quat に関連するメソッド

[キー入力変換](Transform Type-In)ダイアログ ボックスに表示されるものと同じオイラー値を返す新しいメソッド quatToEuler2() と、Quat の配列をオイラー角度の配列に変換する新しいメソッド quatArrayToEulerArray() が追加されました。

ワールド空間モディファイヤとスペース ワープ

ワールド空間モディファイヤ - Force 関連メソッド

ワールド空間モディファイヤからのフォースを計算するために使用する新しいメソッドが追加されました。

ファイルの入力および出力

バイナリ読み込みおよび書き込み用 BinStream

新しい BinStream I/O メソッド writeLongLong()、writeDouble()、writeFloatAsDouble()、readLongLong()、readDouble() readDoubleAsFloat() が追加されました。

INI ファイル キーへのアクセス

指定されたキーおよび(または)セクションが指定された INI ファイル内に存在する場合に true を返す新しいメソッド hasINIsetting() が追加されました。

ファイル名の解析

ファイル名の解析

引数がネットワーク パスである場合に true を返す新しいメソッド pathIsNetworkPath() が追加されました。

プラグインのロード

その他の関数

新しいプラグイン クラスをスキャンして MAXScript に公開する新しいメソッド scanForNewPlugins() が追加されました。

ビューポート

ビューポート グリッド

ビューポート グリッドの間隔と主線を設定するための新しいメソッド setGridSpacing() および setGridMajorLines() が追加されました。

Viewport.GetViewportDib()

マルチパス カメラ効果プレビューなどのビューポートのデバイスに依存しないビットマップを取得するために使用する新しいメソッド viewport.getViewportDIB() が追加されました。

ビューポートに矩形を描画する

ビューポートにカラー付きの長方形を描画するための新しいメソッド gw.hRect() および gw.wRect() が追加されました。

ビューポートに三角形を描画する

ビューポートに一連の三角形を描画するために、 gw.startTriangles().gw.endTriangles() gw.triangles() という新しい方法が追加されました。

ビューポートに三角ストリップを描画する

ビューポートに一連の三角形を三角ストリップとして描画するための gw.triStrip() が追加されました。

ビューポートのリフレッシュ

MAXScript が値を返す前にビューポートを再描画する必要があることを示す内部的な MAXScript フラグを設定するための新しいメソッド setNeedsRedraw() が追加されました。

アニメーション再生

isAnimPlaying

アニメーションが再生されている場合は true を返し、再生されていない場合は false を返す新しいメソッド isAnimPlaying() が追加されました。

システム グローバル変数

timeDisplayMode

時間表示モードを取得および設定するために使用する新しいシステム グローバル変数 timeDisplayMode が追加されました。

レンダラー

レンダラー

3ds Max 6 で廃止された従来のドラフト レンダラー(古いファイルにまだ存在する可能性があります)を取得、リセットするための新しいメソッド renderers.GetDraftRenderer() および renderers.ClearDraftRenderer() が追加されました。

マウス カーソル

マウス カーソル

新しい読み取り専用プロパティ mouse.inAbort が追加されました。

パスとファイル名

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

新しいメソッド getThisScriptFilename() が追加されました。これは getSourceFileName() と同じですが、Avguard 拡張機能で長い間使用可能であり、拡張機能を使用するように作成されたスクリプトとの下位互換性のために提供されています。

外部コマンドおよびプログラムの実行

外部コマンドの実行

隠しウィンドウ内で DOS コマンドを実行するための新しいメソッド HiddenDOSCommand() が追加されました。

オペレーティング システムとの連携

クリップボードへのコピーとクリップボードからのコピー

Windows クリップボードとの間でテキストおよびビットマップ値を取得および設定するための新しいメソッド getClipBoardText()、setClipboardText()、getClipboardBitmap() setClipboardBitmap() が追加されました。

システム情報

CPU ごとの処理とシステムの親和性を取得および設定するための新しいプロパティ sysinfo.processAffinity および sysinfo.systemAffinity が追加されました。

システム ツール

Windows の環境変数の値を取得および設定するための新しいメソッド systemTools.getEnvVariable() および systools.setEnvVariable() が追加されました。

Windows 構造体

子ウィンドウ、3ds Max、および Windows デスクトップのウィンドウ HWND 値にアクセスするための新しい Windows 構造体が追加されました。

Windows レジストリへのアクセス

Registry 構造体

Windows レジストリ キーおよびレジストリ値にアクセスするための新しい Registry 構造体が追加されました。

HKey の値

レジストリ キーの値を表す新しい HKey の値 クラスが追加されました。

関連事項