このページでは、3ds Max 2014 MAXScript の言語の変更および改善点についての概要を簡単に説明します。各機能の詳細については、ドキュメントの各ページのリンクをお読みください。
新しい Flow: GeometryClass オブジェクトは、パス フローを MAXScript に公開します。
新しい IdleAreaObj: GeometryClass オブジェクトは、停滞領域を MAXScript に公開します。
新しい インタフェース: pop Core Interface は、キャラクタのシミュレーションと表示に関連するプロパティとメソッドを公開します。
新しい Populate : FloatController は、キャラクタのシミュレーション格納と表示に関連するプロパティとメソッドを公開します。
新しい PopCharacter : ReferenceTarget は、シーン内の Populate キャラクタを表しますが、MAXScript にはほとんどアクセスできません。
新しい 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)よりも簡易かつ高速のバージョンであり、イベント内の新しいパーティクルがクローンされて次のイベントに送られます。 コピーの数を調整することができます。
mP_Collision テストは、PFlow コリジョン シェイプ ワールド空間モディファイヤがあるジオメトリ オブジェクトをシミュレーション ディフレクタとして使用します。 衝突したパーティクルは次のイベントに送ることができます。
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 インタフェース は、イベント クラスによって公開され、パーティクルのマテリアルへのアクセスを提供します。
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 オペレータをロードします。
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 を使用すると、現在のシーン上で見つからないプラグインの数、クラス、ファイル情報および説明にアクセスすることができます。
ビューポートへのアクセスに使用するいくつかの新しいプロパティおよびメソッドが既存の 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
が呼び出されます。
NitrousGraphicsManager Interface の
.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 Interface のメソッド
.GetWorldSetting()
によって返される新しい IObject:WorldSettingImpl オブジェクトは、ノードの統合、インスタンス化の切り替えおよび制限を含む、Nitrous システムのワールド最適化をコントロールするプロパティを公開します。
既存の sme Interface の新しいメソッド
sme.SetMtlInParamEditor()
を使用して、スレート マテリアル エディタの[パラメータ] (Parameters)パネルに表示される現在のマテリアルまたはマップ オブジェクトを設定することができます。
既存の SME NodeView interface にいくつかの新しいメソッドが追加され、ノード選択、全範囲ズーム/全範囲ズーム選択の機能にアクセスすることができます。
新しい
.selected
プロパティが、既存の、ただし前回はドキュメントに記載されなかった SME Node interface に追加されました。
新しいプロパティ
.IBLEnable
、.IBLQuality
、および .IBLShadows
は、[グローバル イルミネーション](Global Illumination)タブに追加された[イメージベースのライティング](Image Based Lighting)オプションを公開します。
新しいプロパティ
.UnifiedEnable
、.UnifiedMaxSamples
、.UnifiedMinSamples
、および .UnifiedQuality
は、[サンプリング品質](Sampling Quality)タブに追加された[統合サンプリング](Unified Sampling)オプションを公開します。
新しい 2 つのプロパティ
.architecturalSamplerEnabled
および .causticSamplerEnabled
は、iRay レンダラーに追加された新しいサンプラを公開します。
General Event Callbacks の通知、
#preNodeBonePropChanged
および #postNodeBonePropChanged
は、前のリリースでは破損していて、ブロードキャストされませんでした。この問題が修正されています。
DWF エクスポート ダイアログ設定 は、新しい DwfExportPreferences コア インターフェースを通して MAXScript に公開されます。
単一の新しい
.Open()
メソッドを使用する新しいインタフェースが Default_Sound:SoundClass (ProSound:SoundClass が追加されたため既定では使用されなくなりました)に追加されています。
MAXScript のビットマップ値のガンマ設定の処理が見直され、長い間放置されていたいくつかの問題が修正されました。 詳細については、新規の「ビットマップ ガンマおよび MAXScript」のトピック、および既存の「ビットマップ値」トピックの修正されたプロパティおよび関数の説明を参照してください。
複製されたメンバー/関数名は、コンパイル時に明示的に許可されませんが、複製された関数名は、前方宣言のために許可されます。
新しい timeGetTime() 関数は、Windows が起動してからのシステム時間をミリ秒で返します。毎日午前 0 時にラップアラウンドする
timestamp()
以外、この値は、49.71 日ごとにラップアラウンドします。
スクリプト プラグイン の
name:
キーワード パラメータは、プラグインの作成ボタンまたは UI 項目にのみ使用されるようになります。ただしクラス名はクラスのインスタンスおよびシーン ノードに名前を付けるために使用されます。旧バージョンでは、ローカライズ可能な UI 名はクラスのインスタンスに名前を付けるために使用されました。
Rollout Floater の新しい
.visible
プロパティを使用して、ロールアウトへのアクセスを維持したままフロータの描画を無効にすることができます。3ds Max 2014 には、オフスクリーン ダイアログの自動回復システムが導入されました。これにより、デスクトップの表示領域外に移動したダイアログ ウィンドウは自動的にビュー内に戻されます。旧バージョンの 3ds Max では、プロパティとコントロールへのアクセスを維持したままロールアウトを非表示にするために RolloutFloater をオフスクリーンにするというハックが採用されている場合がありましたが、代わりに .visible
プロパティを False に設定する方法を使用できます。また、ロールアウト フロータを閉じずに一時的に非表示にしたり、ロールアウト フロータを事前に作成することで、オンザフライで構築してもう一度閉じるよりもはるかに高速に表示と非表示を切り替えることができるようになります。
新しい関数
cui.showToolbar()
は、CUI struct 内で非表示のツールバーを名前別に表示するために使用することができます。
既存の Windows struct`** に追加された新しいメソッドです。
既存の systemTools struct に追加された新しいメソッド
systemTools.getmaxstdio()
および systemTools.setmaxstdio()
を使用すると、3ds Max で同時に開くことのできるバイナリ ファイルの最大数を取得および設定することができます。これを最大値の 2048 に増やすと、たとえば大量のポイント キャッシュ モディファイヤがデータを同時に読み込まなければならない場合などに効果的です。
前のリリースでは、戻り値が OK の場合に、実行中の選択が破棄されるという理由で、既存のSetListenerSel() 関数は使用できませんでした。これは関数が値を返さないようにすることで修正されました。
新しいパラメータ #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
を間違って放出していました。この問題が修正されています。