3ds Max 2014 での MAXScript の新機能

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

   

3ds Max の新機能の公開

Populate ツール

新しい Flow: GeometryClass オブジェクトは、パス フローを MAXScript に公開します。

新しい IdleAreaObj: GeometryClass オブジェクトは、停滞領域を MAXScript に公開します。

新しい インタフェース: pop Core Interface は、キャラクタのシミュレーションと表示に関連するプロパティとメソッドを公開します。

新しい Populate : FloatController は、キャラクタのシミュレーション格納と表示に関連するプロパティとメソッドを公開します。

新しい PopCharacter : ReferenceTarget は、シーン内の Populate キャラクタを表しますが、MAXScript にはほとんどアクセスできません。

   

Scalable Vector Graphics テクスチャ マップ

新しい Vector_Map TextureMap は、解像度に依存しないベクター グラフィックスを格納するためのオープン .SVG および .SVGZ Web フォーマット、さらに .AI ファイル(Adobe Illustrator)、.PDF (Adobe)、および .PAT (AutoCAD)ファイルのサポートを提供します。

また、新しい Vector_Map TextureMap は MAXScript との統合を深めます。なぜなら、MAXScript を使用して SVG XML ファイルを作成できるようになるだけでなく、ユーザがベクター グラフィックス ソースに MAXScript コードを直接埋め込むことができる専用の mxs トークンを公開することによって、高度なエフェクトや、シーンの変化に応じてアニメートされるマップなども作成できるようになるからです。

次のチュートリアル(パート 1パート 2パート 3)は、解像度に依存しないポリゴン レンダラーを作成するために、MAXScript と Vector_Map テクスチャ マップの高度な使用例を示します。

   

新しいパーティクル フロー オペレータ、インタフェース、モディファイヤ

以前に、Particle Flow Tools Box #2 および #3 という名前のサードパーティの拡張機能として利用されていた操作の多くは、新しいパーティクル フロー操作として 3ds Max 2014 に追加されました。

Birth_Group オペレータは、参照オブジェクトからパーティクルを生成し、そのシェイプ、マテリアルおよびマッピングを取得することができます。

BirthGrid オペレータはパーティクルを生成し、グリッドに似た構造にそれらを配置してオペレータのアイコンまたは参照ジオメトリのボリュームを塗り潰します。

BirthStrean オペレータは、オーバーラップしないパーティクルの場合にはストリームを生成し、その位置と速度プロパティを定義します。

Cache_Disk オペレータは、パーティクルの状態をディスクに記録してフィードバックを高速化します。一部のパーティクル プロパティをキャッシュから除外できます。また追加のオペレータを呼び出してデータを復元することもできます。

Cache_Selective オペレータは、パーティクルの状態を記録してフィードバックを高速化します。一部のパーティクル プロパティをキャッシュから除外できます。また追加のオペレータを呼び出してデータを復元することもできます。

Camera_Culling オペレータは、カメラの視野円錐の外側のパーティクルをすべてフィルタで除外することにより、レンダリング時のジオメトリ負荷を削減します。これは、カメラ ビュー視野円錐によって定義されたグループ選択ツールとして使用することができます。

Camera_IMBlur オペレータは、イメージ モーション ブラーのデータを渡す前にパーティクル速度を調節します。調整は、カメラの動きを考慮します。

Copy_Out テストは、[スポーン](Spawn)よりも簡易かつ高速のバージョンであり、イベント内の新しいパーティクルがクローンされて次のイベントに送られます。コピーの数を調整することができます。

パーティクル フロー mParticles オペレータ

mP_Collision テストは、PFlow_Collision_Shape ワールド空間モディファイヤがあるジオメトリ オブジェクトをシミュレーション ディフレクタとして使用します。衝突したパーティクルは次のイベントに送ることができます。

mP_Drag オペレータは、線形と角度のモーションに摩擦のような力を与えてパーティクルを減速させます。

mP_Force オペレータは、フォース ソースとしてあらゆるフォース タイプ パーティクル スペース ワープを受け入れます。フォースは mP_World オペレータに影響された現在のイベントのすべてのパーティクルに適用されます。

mP_Glue テストは、パーティクル同士またはパーティクルとディフレクタの間を、強固にまたは柔軟に、分裂可能な接続でバインドします。

mP_InterCollision テストは、パーティクルを次のイベントに送信するためのトリガーとしてパーティクル間の衝突を追跡するために使用されます。

mP_Shape オペレータは、衝突用パーティクル シェイプを定義します。

mP_Switch オペレータは、物理シミュレーションの調整を制御します。

mP_World オペレータは、ダイナミクス シミュレーションのグローバルなプロパティを定義します。mP_Worldhelper ヘルパーは、mP_World オペレータによってアクセスされる設定を保持します。

mP_Buoyancy オペレータは、液状媒体に沈むパーティクルのフォースを定義します。

mP_Solvent オペレータは、mP_Glue によって作成されたバインドを除去します。

パーティクル フロー インタフェース

PhysXWorld インタフェース はいくつかの mParticles オブジェクトによって公開されます。

profileTools インタフェース はいくつかの mParticles オブジェクトによって公開されます。これは、物理的なシミュレーション ツールのパフォーマンスのプロファイリングに関係するプロパティとメソッドを提供します。

pftParticleView インタフェースは、パーティクル ビュー エディタの更新を強制する方法を提供します。

MaterialHolder インタフェースは、イベント クラスによって公開され、パーティクルのマテリアルへのアクセスを提供します。

パーティクル フローの Advanced Data Manipulation オペレータ

Data_Icon オペレータは、[パーティクル データ ビュー](Particle Data View)にワイヤリングされているサブオペレータを使用してパーティクル チャネル データを直接修正します。オペレータには、ビューポートに表示できるアイコンがあります。

Data_Operator オペレータは、[パーティクル データ ビュー](Particle Data View)にワイヤリングされているサブオペレータを使用してパーティクル チャネル データを直接修正します。

Data_Test は、[パーティクル データ ビュー](Particle Data View)にワイヤリングされているサブオペレータを使用してパーティクル チャネル データを直接修正および確認します。

Test_Icon は、[パーティクル データ ビュー](Particle Data View)にワイヤリングされているサブオペレータを使用してパーティクル チャネル データを直接修正および確認します。テストには、ビューポートに表示できるアイコンがあります。

PresetOperator は、ディスクから定義済みの Data_Operator オペレータをロードします。

PresetOperIcon は、ディスクから定義済みの Data_Icon オペレータをロードします。

PresetTest は、ディスクから定義済みの Data_Test オペレータをロードします。

PresetTestIcon は、ディスクから定義済みの Test_Icon オペレータをロードします。

パーティクル フローの Advanced Data Manipulation サブオペレータ

AmountChange サブオペレータは、スポーンまたは削除によって、パーティクル数を変更します。

colorReferenceTarget サブオペレータは、頂点カラー マッピングのカラーとして使用されるベクトル データを生成します。

Condition サブオペレータは、スカラー データのテストによってブール演算データを作成します。

Convert サブオペレータは、データ タイプをある形式から別の形式に変換します。

Discretizator サブオペレータは、個別のセットの値の連続範囲を変換します。

geometryReferenceTarget サブオペレータは、ジオメトリ付きの参照オブジェクトからプロパティを取得します。

Icon サブオペレータは、Data オペレータまたはテスト アイコンからプロパティを取得します。

Input_Proxy サブオペレータは、正規のパーティクル プロパティをプロキシ パーティクル システムからコピーします。

InputCustom サブオペレータは、新規出力オペレータによって作成されたチャネルからデータをコピーします。

Input_mParticles サブオペレータは、シミュレーション関連のパーティクル プロパティをコピーします。

InputStandard サブオペレータは、位置、速度、スケールなど、正規のパーティクル プロパティをコピーします。

NotesReferenceTarget サブオペレータは、データ ビューにコメントを配置するための実行可能でないサブオペレータです。

ObjectParameter サブオペレータは、参照オブジェクトからパラメータ データを取得します。

objectReferenceTarget サブオペレータは、参照オブジェクトからプロパティを取得します。

OutputCustom サブオペレータは、計算データを新規出力オペレータによって作成されたデータ チャネルに転送します。

Output_mParticles サブオペレータは、シミュレーションに関連するパーティクル プロパティに計算データを転送します。

OutputNew サブオペレータは、入力カスタムと出力カスタムによる使用が可能な新しいデータ チャネルを作成します。

OutputStandard サブオペレータは、計算データを正規パーティクル プロパティに転送します。

OutputTest サブオペレータは、計算データをパーティクル終了判定のためのデータ テストに転送します。

Parameter サブオペレータは、サプオペレータのエクスポーズ可能な値を定義します。

Particles サブオペレータは、他のパーティクルとの関係における凝集プロパティを計算します。

PipeReferenceTarget サブオペレータは、バルブ ストリーム内の条件およびデータに応じて異なるストリームからのデータを組み合わせます。

randomReferenceTarget サブオペレータは、スカラーとベクトルのランダム値を生成します。

Scalar サブオペレータは、次のスカラー タイプのデータを生成します: 整数、実数、時間、ブール演算。

Select_Object サブオペレータは、プロパティを派生させる参照オブジェクトを定義します。

ShapeControl サブオペレータは、参照ジオメトリオブジェクトに基づくパーティクル シェイプを定義します。サブオペレータは、参照ジオメトリのパラメータおよびアニメーションをコントロールします。

Switch サブオペレータは、数個の入力から同じタイプの出力へのアニメ―ト可能なリレーとして機能します。

Vector サブオペレータは、ベクトル タイプのデータを生成します。

DataViewGroup ヘルパーは、パーティクル データ ビュー内部のサブオペレータをグループ化するために使用されるデータ ビュー グループ ノードを表します。

パーティクル フロー モディファイヤ

Particle_Face_Creator : モディファイヤは、パーティクルの位置を使用してメッシュ ジオメトリを自然に見える方法で非表示および表示します。

Particle_Skinner: モディファイヤを使用すると、1 つまたは複数のパーティクル フロー システムで修正オブジェクトのジオメトリを変形することができます。

PFlow_Collision_Shape: SpacewarpModifier は、標準のメッシュ オブジェクトを MassFX シミュレーションにパーティクル ディフレクタとして参加させます。

   

パースマッチ ユーティリティ

Perspective_Match UtilityPlugin は、新しいパースマッチ ツールのすべてのコントロールを MAXScript に公開します。

   

メッシュの検証

MeshInspector Interface は、メッシュ データの不整合をチェックして修復する新しい 3ds Max 機能を公開します。

   

見つからないプラグイン エクスプローラ

新しい SceneMissingPlugins Interface を使用すると、現在のシーン上で見つからないプラグインの数、クラス、ファイル情報および説明にアクセスすることができます。

   

Exchange Store パッケージ マネージャ

ExchangeStorePackageManager コア インタフェースは、Exchange Store ファイル数とパスに対する MAXScript アクセスを提供します。

   

既存の 3ds Max の強化機能

ビューポート アクセス

ビューポートへのアクセスに使用するいくつかの新しいプロパティおよびメソッドが既存の viewport struct に追加されました。それらは、 viewport.activeViewportID viewport.numViewEx および viewport.activeViewportEx です。

2 つの新しい viewport struct メソッド、 viewport.setCanvasNavigationMode() および viewport.isCanvasNavigationMode() を使用して、キャンバス ナビゲーション モードを設定およびクエリすることができます。オンの場合、ビューポートでは 2D パンおよびズームのみが実行可能で、他のすべてのナビゲーション操作は無視されます。

次の 2 つの既存の viewport struct メソッドは、アクティブなビュー パネルだけでなく、すべてのビュー パネルすべてのビューポートに影響するようになりました。 viewport.resetAllViews() および viewport.zoomToBounds()

アクティブ ビューポートのセーフ フレームがオンまたはオフになると、新しい General Event Callbacks 通知である #viewportSafeFrameToggle が呼び出されます。

   

Nitrous のプロパティとメソッド

NitrousGraphicsManager インタフェース .GetViewportSetting() メソッドのパラメータは、MAXScript 規約に従って 0 ベースの整数から 1 ベースのインデックスに変更されました。

NitrousGraphicsManager Interface の新しいプロパティ .BackfaceCullWireframeEnabled により、背面の非表示をワイヤフレーム モードで取得および設定することができます。

NitrousGraphicsManager Interface の新しいプロパティ .ShadowmapSizeLimit を使用して、最大シャドウ マップ サイズを設定することができます。既定値は 512 です。

NitrousGraphicsManager Interface の新しいプロパティ .NormalBumpMode は、[カスタマイズ](Customize) > [基本設定](Preferences) > [グローバル](Global) ダイアログの [法線バンプ モード](Normal Bump Mode)ラジオ ボタンの状態をコントロールします。これによって、3ds Max、Maya および DirectX と互換性のある法線バンプ モードを切り替えることができます。

NitrousGraphicsManager Interface の新しいプロパティ .BackgroundProgressiveRenderingEnabled を True に設定すると、3ds Max がバックグラウンドで実行している場合でも、Nitrous ビューポートのプログレッシブ リファインを強制的に実行できます。

NitrousGraphicsManager インタフェースのメソッド .GetWorldSetting() によって返される新しい IObject:WorldSettingImpl オブジェクトは、ノードの統合、インスタンス化の切り替えおよび制限を含む、Nitrous システムのワールド最適化をコントロールするプロパティを公開します。

   

スレート マテリアル エディタ

既存の sme Interface の新しいメソッド sme.SetMtlInParamEditor() を使用して、スレート マテリアル エディタの[パラメータ](Parameters)パネルに表示される現在のマテリアルまたはマップ オブジェクトを設定することができます。

既存の SME NodeView interface にいくつかの新しいメソッドが追加され、ノード選択、全範囲ズーム/全範囲ズーム選択の機能にアクセスすることができます。

新しい .selected プロパティが、既存の、ただし前回はドキュメントに記載されなかった SME Node interface に追加されました。

   

mental ray レンダラー

新しいプロパティ .IBLEnable .IBLQuality 、および .IBLShadows は、[グローバル イルミネーション](Global Illumination)タブに追加された[イメージベースのライティング](Image Based Lighting)オプションを公開します。

新しいプロパティ .UnifiedEnable .UnifiedMaxSamples .UnifiedMinSamples 、および .UnifiedQuality は、[サンプリング品質](Sampling Quality)タブに追加された[統合サンプリング](Unified Sampling)オプションを公開します。

   

iRay レンダラー

新しい 2 つのプロパティ .architecturalSamplerEnabled および .causticSamplerEnabled は、iRay レンダラーに追加された新しいサンプラを公開します。

   

ボーン変更通知

General Event Callbacks の通知、 #preNodeBonePropChanged および #postNodeBonePropChanged は、前のリリースでは破損していて、ブロードキャストされませんでした。この問題は解決されました。

   

[DWF 書き出し](DWF Export)ダイアログへのアクセス

DWF エクスポート ダイアログ設定は、新しい DwfExportPreferences コア インターフェースを通して MAXScript に公開されます。

   

既定のサウンド アクセス

単一の新しい .Open() メソッドを使用する新しいインタフェースが Default_Sound:SoundClass (ProSound:SoundClass が追加されたため既定では使用されなくなりました)に追加されています。

   

MAXScript 言語に関する改善点

ビット マップ値のガンマ管理

MAXScript のビットマップ値のガンマ設定の処理が見直され、長い間放置されていたいくつかの問題が修正されました。 詳細については、新規の「ビットマップ ガンマおよび MAXScript」のトピック、および既存の「ビットマップ値」トピックの修正されたプロパティおよび関数の説明を参照してください。

   

複製された構造体メンバーと関数

複製されたメンバー/関数名は、コンパイル時に明示的に許可されませんが、複製された関数名は、前方宣言のために許可されます。

   

タイム スタンプ

新しい timeGetTime() 関数は、Windows が起動してからのシステム時間をミリ秒で返します。毎日午前 0 時にラップアラウンドする timestamp() 以外、この値は、49.71 日ごとにラップアラウンドします。

   

スクリプト定義されたプラグイン名

スクリプト プラグイン name: キーワード パラメータは、プラグインの作成ボタンまたは UI 項目にのみ使用されるようになります。ただしクラス名はクラスのインスタンスおよびシーン ノードに名前を付けるために使用されます。前のバージョンでは、ローカライズ可能な UI 名はクラスのインスタンスに名前を付けるために使用されました。

   

RolloutFloater の可視性のコントロール

Rollout Floater の新しい .visible プロパティを使用して、ロールアウトへのアクセスを維持したままフロータの描画を無効にすることができます。3ds Max 2014 には、オフスクリーン ダイアログの自動回復システムが導入されました。これにより、デスクトップの表示領域外に移動したダイアログ ウィンドウは自動的にビュー内に戻されます。前のバージョンの 3ds Max では、プロパティとコントロールへのアクセスを維持したままロールアウトを非表示にするために RolloutFloater をオフスクリーンにするというハックが採用されている場合がありましたが、代わりに .visible プロパティを False に設定する方法を使用できます。また、ロールアウト フロータを閉じずに一時的に非表示にしたり、ロールアウト フロータを事前に作成することで、オンザフライで構築してもう一度閉じるよりもはるかに高速に表示と非表示を切り替えることができるようになります。

   

カスタム ユーザ インタフェースのツールバー表示

新しい関数 cui.showToolbar() は、CUI struct 内で非表示のツールバーを名前別に表示するために使用することができます。

   

ウィンドウの位置およびサイズのアクセス

既存の Windows struct に追加された新しいメソッドを使用すると、HWND ハンドルを通してアクセス可能なウィンドウの配置および寸法にアクセスできます。これらのメソッドには、 windows.setWindowPos() windows.getWindowPos() windows.clientToScreen() 、および windows.screenToClient() があります。

   

同時に開くことのできるファイルの最大数を stdio レベルで設定する

既存の systemTools struct に追加された新しいメソッド systemTools.getmaxstdio() および systemTools.setmaxstdio() を使用すると、3ds Max で同時に開くことのできるバイナリ ファイルの最大数を取得および設定することができます。これを最大値の 2048 に増やすと、たとえば大量のポイント キャッシュ モディファイヤがデータを同時に読み込まなければならない場合などに効果的です。

   

リスナー選択の設定

前のリリースでは、戻り値が OK の場合に、実行中の選択が破棄されるという理由で、既存の SetListenerSel() 関数は使用できませんでした。これは関数が値を返さないようにすることで修正されました。

   

Autodesk Cloud Directory への MAXScript アクセス

新しいパラメータ #autodeskCloud を GetDir() 関数に対して使用すると、ユーザが Autodesk 360 にログインしている場合はローカルの Autodesk Sync\Cloud パスを返します。それ以外の場合は空の文字列 "" を返します。

   

ドキュメントの変更および追加内容

いくつかのビューポート関連メソッドは、オプションの viewPanelIndex: キーワードをサポートします。これは 3ds Max 2013 でも利用可能でしたがドキュメントに記載されていませんでした。これには、 viewport.getType() viewport.getID() viewport.getCamera() viewport.getRegionRect() viewport.setRegionRect() viewport.getBlowupRegion() viewport.setBlowupRegion() viewport.getGridVisibility() 、および viewport.setGridVisibility() が含まれます。

ドキュメントに記載されていない parent:<HWND>というオプションのキーワード引数が createDialog() 関数に追加され、ダイアログを別のダイアログまたはウィンドウの子にできるようになりました。

ドキュメントに記載されていない parent:<HWND>というオプションのキーワード引数が cui.registerDialogBar() 関数に追加され、ダイアログ バーを別のダイアログまたはウィンドウの子にできるようになりました。

GetDir() 関数の引数をテーブルに移動し、既定の戻り値のカラムを追加しました。

ノード配列の最初の要素のみ交差に使用されるという事実についての RayMeshGridIntersect ReferenceTarget 警告を注:としてドキュメントに追加しました。

メイン ツールバー トピックの既存の toolmode.coordsys() メソッドのドキュメントには、 #gimbal 引数と #working_pivot 引数がありませんでした。さらに、以前のリリースでは、MacroRecorder が #working_pivot の代わりに #pivot を間違って放出していました。この問題は解決されました。