3ds Max 2019 および Update の MAXScript の新機能

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

3ds Max 2019.3 Update の新機能

ビューポート ActiveShade モード ActiveShadeFragmentManager インタフェースを使用すると、MAXScript から、新しいビューポート ActiveShade 表示モードにアクセスすることができます。
カスタム アトリビュート コンテナの所有者 MAXWrapper.custattributes によって返されるカスタム アトリビュート配列で、所有元のオブジェクトが格納されている新しいプロパティ .owner が公開されています。
ノード イベント システムの変更点 登録されている NodeEventCallbacks の情報を取得する 2 つの新しい関数 getNodeEvents() および showNodeEvents() が追加されました。NodeEventCallbackValue に新しい処理オプション polling が追加され、新しい triggerNodeEventCallback() 関数によってコールバックがトリガされる可能性があることがシステムに通知されるようになりました。また、一般的なイベント コールバック検査関数 がオプションの asArray: キーワード引数を取るようになり、出力が配列としてフォーマットされるようになりました。
3ds Max プロセスの情報 sysinfo 構造体に、3ds Max プロセスに関する情報を取得する 3 つの新しい関数 getMAXHandleCount()getMAXUserObjectCount()、および getMAXGDIObjectCount() が追加されました。
これまでドキュメント化されていなかった項目 3dsmax.ini 設定ファイルへのアクセスを可能にする cfgMgr 構造体がドキュメント化されました。MAXWrapper が削除されているかどうかを示す isDeleted <MAXWrapper> 関数と MAXWrapper.isDeleted プロパティがドキュメント化されました。.overlay プロパティがドキュメント化されました。また、editPolyModReadyToBridge() 関数がドキュメント化されました。

3ds Max 2019.2 Update の新機能

流体ローダ(Fluid Loader) MAXScript で、FluidLoader クラスにアクセスして、作成できるようになりました。 このクラスは、流体ローダ ジオメトリ オブジェクトを公開します。
スクリプト ロードの検出 新しい getMaxscriptStartupState() 関数を使用すると、標準スクリプトおよびスタートアップ スクリプトのロード状態を判別できます。 これに対応する新しい #preStartupScriptLoad イベントが、スタートアップ スクリプトを実行する直前に呼び出されます。
テクスチャマップの UV 範囲のレンダリング renderMap() 関数には、レンダリングする UV 範囲を指定する追加の range パラメータと、プロキシ システムを無効にする新しい disableBitmapProxies パラメータがあります。
Max の情報 maxVersion() 関数にリリース年と製品バージョンの項目が追加されました。sysinfo 構造体の新しい関数 getCommandLine() および getCommandLineArgs() は、Max を実行したコマンド ラインに関する情報を返します。SystemTools.isDebugBuild() は、現在実行中の 3ds Max がデバッグ ビルドであるのか、それともリリース ビルドであるのかを示す新しい関数です。
ルート ノードのユーザ プロパティ get/setUserProp/val/buffer()deleteUerProp()、および doesUserPropExist() 関数が特殊な rootNode パラメータを認識するようになり、シーンのルート ノードのユーザ プロパティへのアクセスが許可されるようになりました。このパラメータには、外部参照ファイルの .tree プロパティに保持される、外部参照のルート ノードを指定することもできます。
レイヤ マネージャ経由のノードの追加 LayerProperties インタフェースに、新しいメソッド addNodes() が含まれています。このメソッドは addNode() と同様に機能しますが、ノードの配列を取るため、ユーザは 1 回の呼び出し内で複数のノードを追加することができます。
SkinOps の変更 SkinOps 構造体には、SetBoneWeights()Hammer() の 2 つの新しい関数が含まれています。さらに、以前はモディファイヤの UI を選択する必要があった多くの関数が、オプションの node:<node> または name:<string> 引数を取るようになりました。この引数を指定した場合は、ノードが選択されていなくても、指定したノードにこの引数が適用されます。
Alembic 読み込みファイル検査メソッド AlembicImport 読み込みプラグインから複数のメソッド(GetABCNodeType()GetABCNodeDataType()GetABCNodeExtent()、および IsPropertyNode())が削除されました。これらのメソッドは、新しいメソッド(GetABCNodeProperties()GetNumProperties()GetChildPropertyFromIndex()GetChildPropertyFromName()GetPropertyType()GetPropertyDataType()、および GetPropertyExtent())に置き換えられています。
その他の変更点 定義済みのグローバル変数 noValue の名前が silentValue に変更され、内容を正確に示すようになりました。
削除された項目 3ds Max 2018.2 Update の Unwrap_UVW モディファイヤから削除された同期モード関連の項目(setSyncSelectionMode()getSyncSelectionMode()syncTVSelection()、および syncGeomSelection())がドキュメントから削除されました
これまでドキュメント化されていなかった項目 MaxLiquidSolver で使用されるインタフェース: ParticleCache がドキュメント化されました。これまでドキュメント化されなかったインタフェース pluginManager のいくつかのプロパティとメソッドについての説明が記載されるようになりました。また、max group open recursivelymax コマンド がドキュメント化されました。

3ds Max 2019.1 Update の新機能

ファイルのアーカイブ [ファイル] (File) > [アーカイブ] (Archive)コマンドが、MAXScript で archiveMAXFile() として公開されました。
XRefObject の再ペアレント化 xrefs.addNewXRefObject() メソッドには、外部参照の再ペアレント化の処理方法を指定する新しい reparentAction パラメータが含まれています。 objXRefs.addNewXRefObject() メソッドには、外部参照の再ペアレント化の処理方法を指定する新しいフラグ ビットが含まれています。
改善されたバージョン情報 maxversion() 関数はビルド番号を返すようになり、SystemTools.GetBuildNumber() から返される情報と一貫性が保たれるようになりました。 SystemTools 構造体に、Windows 10 と連携する OS バージョンを報告する新しい関数 GetOSVersion() が追加されました。
ノードのユーザ定義プロパティ メソッド getUserPropVal() および setUserPropVal() の 2 つの新しいメソッドで、ユーザ定義ノードのプロパティの保存方法や取得方法を詳細にコントロールできます。 doesUserPropExist() メソッドは、ユーザ定義ノードのプロパティの有無を調べます。deleteUserProp() はユーザ定義ノードのプロパティを削除します。
Alembic 読み込みファイル検査メソッド AlembicImport 読み込みプラグインに、Alembic ファイルの検査機能を公開する新しいメソッドがいくつか追加されました。
FBX 書き出しアニメーションのオプション FBX の書き出しには、「ExportAnimationOnly」という新しいパラメータが用意されています。
流体 ボリューム ヘルパー オブジェクトは VolumeHelper : Helper クラスとして公開されています。
Miscellaneous テスト用のランダム データを作成するための、その他の新しい関数 createFloatControllerWithRandomValues() が追加されました。 シーンの圧縮設定が
maxOps インタフェース メソッド getCompressSceneFileOnSave() および setCompressSceneFileOnSave() で公開されるようになりました。
これまでドキュメント化されていなかった項目 スクリプト プラグインの一部のパラメータ句(readOnly:<boolean>readOnlyAsset:<boolean>、および enumAsAsset:<boolean>)がドキュメント化されました。

ローカル データと一緒にモディファイヤをコピーするメソッド addModifierWithLocalData() が、「ノードの共通プロパティ、演算子、メソッド」でドキュメント化されました。

dontRepeatMessages コンテキストがドキュメント化されました。

<maxclass>.isMSPluginClass プロパティおよび <string>getObjectName <maxwrapper> メソッドが、「MAXWrapper の共通プロパティ、演算子、メソッド」でドキュメント化されました。

ネットワーク テクスチャ レンダリング ジョブを作成するための NetworkRTT() 関数がドキュメント化されました。convertIntToDirID() 関数は、指定した整数に対応するシステム ディレクトリの名前を返します。

pathConfig.removeProjectDirectoryCreateFilter() 関数は、指定した単一のプロジェクト ディレクトリ フィルタを削除します。

pathConfig.getProjectDirectoryCreateFilters 関数は、現在設定されているすべてのプロジェクト ディレクトリ フィルタからなる配列を返します。

getFiles() および getDirectories() メソッドには、ファイルまたはディレクトリを再帰的に検索するかどうかを指定する recurse:<bool> パラメータがあります。

3ds Max 2019 の新機能

高度な木目 [高度な木目](Advanced Wood)手続き型テクスチャ マップが Advanced_Wood: TextureMap マップとして公開されています。
OSL Open Shading Language (OSL)が 3ds Max でサポートされるようになりました。数多くの新しい OSL シェーダが使用可能になるとともに、既存のシェーダのロードや変更、または新しいシェーダの作成に使用できる汎用 OSLMap クラスが含まれています。
シェイプのブール演算 ShapeBooleanObject クラスで、新しいシェイプのブール演算機能が公開されています。
Alembic の読み込みと書き出し Alembic の読み込みおよび書き出しプラグインが改善され、Alembic_Import: Importer_Plugin および Alembic_Export: ExporterPlugin 内で新しいプロパティやメソッド、または変更されたプロパティやメソッドとして公開されています。
カスタム シーン ファイルのデータ ストリーム 3ds Max シーン ファイルに対してカスタム データの書き込みと読み取りを行えるようになりました。MAXScript では、この機能は CustomFileStream インタフェース CustomSceneStreamManager インタフェースのメソッドで公開されています。
ロールアウトのサイズ変更に関する変更 ロールアウトおよびロールアウト フロータのサイズが変更されている場合に、レイアウトの自動再計算がサポートされるようになりました。これにより、コマンド パネルを任意のサイズに設定できるようになったため、コマンド パネルにドッキングされている場合にサイズを変更することができます。変更内容は次のとおりです。新しい autoLayoutOnResize: <boolean> パラメータが CreateDialog()newRolloutFloater()、およびロールアウトとサブロールアウトの仕様に追加されました。ロールアウトrolloutFloater および autoLayoutOnResize という新しいプロパティが追加されました。また、SetDialogSize() および updateRolloutLayout() という新しいメソッドが追加されました。ボタンおよび CheckButton UI コントロールに .height および .widthプロパティが追加されました。また、新しい applyUiScaling: <boolean> キーワード引数が setDialogPos() に追加されました。
persistents.show() のストリーム パラメータ persistents.show() メソッドに、出力の転送先となる新しい to:<stream> パラメータが追加されました。
deepCopy() の変更 deepCopy() メソッドが Arrays だけでなく、DictionariesDataPairs、および Structures にも適用されるようになりました。 このメソッドは、コピーしたオブジェクトの中に、1 つの値に対して 2 つの参照が含まれている場合、この値のコピーが 1 つだけ作成されるように最適化されています。つまり、返されるオブジェクトには(以前の動作のように) 2 つのコピーが含まれるのではなく、1 つの値に対する 2 つの参照が含まれます。
デモンストレーションの拡張機能 MAXScript エディタ内でオートコンプリートを有効にする手順がドキュメント化されました。

前リリースの新機能

前リリースの新機能」を参照してください。

www.flaticon.com から Freepik によって作成されたアイコン