MAXScript では、3ds Max でサポートされているすべての通知イベント(プレ/ポスト シーン ファイルを開く、新規、リセット、シーン ファイルの保存、プレ/ポスト レンダリング、選択の変更など)に対し、コールバック スクリプトを登録することができます。
1 つの通知イベントに対し、任意の数のコールバック スクリプトを指定できます。
コールバック スクリプトは、ID の付いたセットとしてまとめることができ、個々に、または ID を付けたセット全体を削除することができます。
また、コールバック スクリプトは persistent として指定できるため、現在開いているファイルとともに保存およびロードすることができます。
トピック ナビゲーション | |
---|---|
コールバックを追加するには、以下の構文を使用します。
callbacks.addScript <callback_type_name> (<script_string> | <script_stringstream> | fileName:<filename_string>) [id:<name>] [persistent:<boolean>]
このメソッドは、新規のコールバック スクリプトを登録するのに使用します。最初の引数で、このスクリプトが関連付けられている通知イベントのタイプが指定されている必要があります。以下に有効な callback_type_name 値を示します。
スクリプトは、実行するスクリプトのテキストを含む String 値または StringStream 値として、または fileName: キーワード引数として供給されます。キーワード引数の場合は、イベント通知コールバックが発生するたびに、名前を付けたファイルがロードおよび実行されます。直接文字列を指定したり、 fileName: を指定したりできますが、両方を指定することはできません。
オプションの id: パラメータを使用して、単独またはグループのコールバックに固有の名前でタグを付け、グループ内のすべてのコールバックをその他のコールバック(他のスクリプト ツールで登録したコールバックなど)に干渉することなく削除できます。
オプションの persistent: パラメータを使用して、スクリプトを現在開いているシーン ファイルに保存するか、ファイルの開閉操作に関係なく、常に実行できるグローバル コールバック スクリプトとして使用するかどうかを指定できます。 true 値の場合、スクリプトは現在のファイルに保存され、このファイルを開くたびにコールバック用にロードおよび登録されます。persistent コールバック スクリプトは、新規のファイルをロードしたりリセットを実行すると常に削除されるため、あるファイルの persistent スクリプトが他のファイルに間違ってコピーされることはありません。このパラメータの既定値は false です。つまり、このスクリプトはグローバル スクリプトであり、persistent ではありません。
例: |
callbacks.addScript #preRender "setUpRenderGeom()" id:#jbwRender |
レンダリングを実行する直前に呼び出される新規のコールバック スクリプトを登録します。このスクリプトにより関数が呼び出されます(この関数はあらかじめ設定されている必要があります)。スクリプトには固有の ID が割り当てられ、削除時の選択が可能になります。 |
callbacks.removeScripts [<callback_type_name>] [id:<name>]
このメソッドは、1 つまたは複数のコールバック スクリプトを登録解除および削除します。
コールバック イベント タイプの名前を指定すると、そのイベント タイプに対するすべてのコールバック スクリプトが削除されます。
id: を指定するだけで、その ID を持つすべてのイベント内のコールバック スクリプトが削除されます。
上記の両方を指定すると、指定したイベント タイプと ID に制限して削除することができます。
callbacks.show [<callback_type_name>] [id:<name>] [to:<stream>]
このメソッドは、[リスナー](Listener)ウィンドウに現在のコールバック スクリプトをリストします。
3ds Max 2009 以降 でオプションのコールバック タイプ名引数を指定した場合、そのタイプのコールバックだけが表示されます。
オプション キーワード引数 id: を指定した場合、その ID を持つコールバックだけが表示されます。
タイプ名と ID の両方を指定した場合、指定された ID を持つそのタイプのコールバックだけが表示されます。
3ds Max 2018.4 以降で使用可能: オプションのキーワード引数 to: を指定すると、メソッドからの出力は指定されたストリームに送信されます。
callbacks.broadcastCallback <callback_type_name>
このメソッドは、特定のイベントのシミュレーション方法とそのイベントを実行するためのすべてのコールバック スクリプトを提供します。
3ds Max 内では、 #preRenderFrame および #postRenderFrame コールバックはレンダラーによってのみ呼び出すことができます。このメソッドを使用してこれらのコールバックを呼び出すことはできません。
callbacks.notificationParam()
このメソッドは、コールバックに追加の情報を提供するためにコールバック スクリプト内で呼び出すことができます。このメソッドによって返される値は、コールバックのタイプに応じて異なります。コールバックの追加情報がない場合は、'undefined' という値が返されます。
例: |
--Remove any existing callbacks with this ID. callbacks.removeScripts id:#MXSHelp --Add a new callback script which will call --callbacks.notificationParam() before selected nodes are deleted --and thus will print the deleted objects to the Listener: callbacks.addScript #selectedNodesPreDelete" print (callbacks.notificationParam())" id:#MXSHelp |
サポートされているすべてのコールバック イベント名と、通常返される callbacks.notificationParam() の値を次に示します。ブロードキャストが生成された方法によっては、ここに示した値の代わりに 'undefined' が返される場合があります。
#actionItemExecutionEnded: array
アクション項目の実行が終了したときに送られます。
callbacks.notificationParam() を呼び出すと、2 要素の配列が戻されます。
#actionItemExecutionStarted: array
アクション項目の実行が開始したときに送られます。
callbacks.notificationParam() を呼び出すと、2 要素の配列が戻されます。
#actionItemHotKeyPostExecute: array
キーボード ショートカット(ホットキー)を使用してアクション項目が実行された後に送られます。
callbacks.notificationParam() を呼び出すと、2 要素の配列が戻されます。
#actionItemHotkeyPreExecute: array
キーボード ショートカット(ホットキー)を使用してアクション項目が実行される前に送られます。
callbacks.notificationParam() を呼び出すと、2 要素の配列が戻されます。
#animateOff: undefined
[アニメート](Animate)ボタンがオフになったときに送られます。
#animateOn: undefined
[アニメート](Animate)ボタンがオンになったときに送られます。
#animationRangeChange: undefined
アニメーション範囲が変更されたときに送信されます。
#animLayersDisabled: array of nodes
シーン内の一部のノードでアニメーション レイヤが無効になった直後に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードの配列が返されます。
#animLayersEnabled: array of nodes
シーン内の一部のノードでアニメーション レイヤが有効になった直後に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードの配列が返されます。
#tabbedDialogCreated: #(integer, integer)
タブ化されたレンダリング ダイアログ ボックスが作成された後に送られます。
#tabbedDialogDeleted: #(integer, integer)
タブ化されたレンダリング ダイアログ ボックスが削除された後に送られます。
#renderParamsChanged: undefined
共通のレンダラー パラメータが変更されるたびに送られます。
#preRendererChange: undefined
現在のレンダラーを変更したり、レンダラーのタイプのいずれかを変更する前に送られます。
#postRendererChange: undefined
現在のレンダラーを変更したり、レンダラーのタイプのいずれかを変更した後に送られます。
#imageViewerUpdate: IVFB Interface
カスタム ロールアウトの UI を更新するよう要求するために、イメージ ビューア(またはレンダリングされたフレーム ウィンドウ)から送られます。 callbacks.notificationParam() への呼び出しで、IVFB インタフェースが返されます。これを使用して、仮想フレーム バッファ(別名: レンダリング フレーム ウィンドウ)にロールアウトを追加できます。
#preImageViewerDisplay: IVFB Interface
イメージ ビューワが作成された後、表示される前に送られます。 callbacks.notificationParam() への呼び出しで、IVFB インタフェースが返されます。これを使用して、仮想フレーム バッファ(別名: レンダリング フレーム ウィンドウ)にロールアウトを追加できます。
3ds Max 2009 以降 で使用可能です。
#postImageViewerDisplay: IVFB Interface
イメージ ビューワが表示された後に送られます。 callbacks.notificationParam() への呼び出しで、IVFB インタフェースが返されます。これを使用して、仮想フレーム バッファ(別名: レンダリング フレーム ウィンドウ)にロールアウトを追加できます。
3ds Max 2009 以降 で使用可能です。
#preRender: Array
レンダリングを開始する前に送られます。この通知は、レンダラーによりレンダリング インスタンス オブジェクトが作成される前に送られます。つまり、ノードや他のオブジェクトをこのイベントへの応答として作成することができます。複数のフレームをレンダリングする場合、このイベントは最初のレンダリングが始まる前に 1 度だけ送られ、フレームごとに送られることはありません。 #preRender コールバックでレンダラーのパラメータ(高さ、幅、エイリアシングなど)を変更して、現在のレンダラーに反映することはできません。これらのパラメータは、3ds Max 内部で既に設定されているので、次のレンダラーのセッションが始まるまで変更は反映されません。
パラメータ定義についての詳細は、SDK ヘルプ ファイルの RendParams クラスを参照してください。
1 - 名前 - rpar->rendType
2 - ブール値 - rpar->isNetRender
3 - ブール値 - rpar->fieldRender
4 - 整数 - rpar->fieldOrder
5 - 時間 - rpar->frameDur
6 - ブール値 - rpar->colorCheck
7 - 整数 - rpar->vidCorrectMethod
8 - 整数 - rpar->ntscPAL
9 - ブール値 - rpar->superBlack
10 - 整数 - rpar->sbThresh
11 - ブール値 - rpar->rendHidden
12 - ブール値 - rpar->force2Side
13 - ブール値 - rpar->inMtlEdit
14 - 浮動小数点 - rpar->mtlEditTile
15 - ブール値 - rpar->mtlEditAA
16 - ブール値 - rpar->multiThread
17 - ブール値 - rpar->useEnvironAlpha
18 - ブール値 - rpar->dontAntialiasBG
19 - ブール値 - rpar->useDisplacement
20 - ブール値 - rpar->useRadiosity
21 - ブール値 - rpar->computeRadiosity
22 - TextureMap - rpar->envMap
23 - 時間 - rpar->firstFrame
24 - 整数 - rpar->scanBandHeight
25 - 整数 - rpar->extraFlags
26 - ポイント 2 - rpar->width、rpar->height
27 - ブール値 - rpar->filterBG
28 - ブール値 - rpar->alphaOutOnAdditive
#postRender: undefined
レンダリングが完了した後に送られます。この通知は、レンダラーによりレンダリング インスタンス オブジェクトが削除される前に送られます。つまり、ノードや他のオブジェクトをこのイベントへの応答として作成することができます。複数のフレームをレンダリングする場合、このイベントはすべてのレンダリング終了後に 1 度だけ送られ、フレームごとに送られることはありません。
#preRenderEval: time
レンダラーがオブジェクトの評価を開始する直前に送られます。
レンダリングされた時間が返されます。
#preRenderFrame: Array
レンダラーによって各フレームがレンダリングされる直前に送られます。この通知は、レンダラーがシーン ジオメトリのスナップショットを撮った直後に送られます。このコールバックの呼び出し時にシーンを修正することはできません。レンダラーはすべてのオブジェクト インスタンスに対して GetRenderMesh() を呼び出し済みで、マテリアルおよびライトは既に更新されています。レンダリングされたものを修正しない場合は、このコールバックを使用してもかまいません。レンダリングされる現在のフレームは、MAXScript の currentTime コンテキストおよびシステム グローバルに設定されます。そのため、その他のシーン オブジェクト プロパティへの参照は、レンダリング中のフレームの時間で自動的に決定されます。レンダラーがマテリアル エディタのサンプルの球を更新するために呼び出された場合、この通知は送られません。レンダリングを出力中の場合だけ送られます。
#postRenderFrame: Array
レンダラーによって各フレームがレンダリングされる直後に送られます。レンダリングされる現在のフレームは、MAXScript の currentTime コンテキストおよびシステム グローバルに設定されます。そのため、その他のシーン オブジェクト プロパティへの参照は、レンダリング中のフレームの時間で自動的に決定されます。レンダラーがマテリアル エディタのサンプルの球を更新するために呼び出された場合、この通知は送られません。レンダリングを出力中の場合だけ送られます。
22 個の要素の配列が返されます。パラメータ定義についての詳細は、SDK ヘルプ ファイルの RenderGlobalContext クラスを参照してください。
1 - 整数 - rendParams->projType
2 - ポイント 2 - rendParams->devWidth、rendParams->devHeight
3 - ポイント 2 - rendParams->xscale、rendParams->yscale
4 - ポイント 2 - rendParams->xc、rendParams->yc
5 - ブール値 - rendParams->antialias
6 - Matrix3 - rendParams->camToWorld
7 - Matrix3 - rendParams->worldToCam
8 - ポイント 2 - rendParams->nearRange、rendParams->farRange
9 - 浮動小数点 - rendParams->devAspect
10 - 浮動小数点 - rendParams->frameDur
11 - TextureMap - rendParams->envMap
12 - カラー - rendParams->globalLightLevel
13 - 時間 - rendParams->time
14 - ブール値 - rendParams->wireMode
15 - 浮動小数点 - rendParams->wire_thick
16 - ブール値 - rendParams->force2Side
17 - ブール値 - rendParams->inMtlEdit
18 - ブール値 - rendParams->fieldRender
19 - ブール値 - rendParams->first_field
20 - ブール値 - rendParams->field_order
21 - ブール値 - rendParams->objMotBlur
22 - 整数 - rendParams->nBlurFrames
#beginRenderingReflectRefractMap: undefined
レンダリングの反射および屈折マップを用意する前に送られます。
#beginRenderingActualFrame: undefined
レンダリング設定後、実際のレンダリングを開始する直前に送られます。
#beginRenderingTonemappingImage: undefined
Tonemapping イメージをレンダリングする前に送られます。
警告: |
#preRenderFrame 、 #postRenderFrame 、またはすべての #beginRendering* コールバック内にあるオブジェクトのメッシュは変更できません(特にメッシュがアニメートされていない場合)。レンダラーがすでに元のメッシュを評価しており、そのメッシュに対するポインタを保持しているからです。オブジェクトのメッシュを変更すると古いメッシュは削除されますが、レンダラーはそのことを認識していません。削除されてしまったメッシュをレンダリングしようとするとクラッシュします。 |
例: |
#preRender および #postRender のコールバックを使用した例については、以下を参照してください。 |
#fileLinkPreAttach: undefined
ファイル リンクをアタッチする直前に送られます。
#fileLinkPostAttach: undefined
ファイル リンクをアタッチした直後に送られます。
#fileLinkPreBind: undefined
ファイル リンクをバインドする直前に送られます。
#fileLinkPostBind: undefined
ファイル リンクをバインドした直後に送られます。
#fileLinkPreDetatch: undefined
ファイル リンクをデタッチする直前に送られます。
#fileLinkPostDetatch: undefined
ファイル リンクをデタッチした直後に送られます。
#fileLinkPreReload: undefined
ファイル リンクを再ロードする直前に送られます。
#fileLinkPostReload: undefined
ファイル リンクを再ロードした直後に送られます。
#filelinkPostReloadPrePrune: undefined
リロードする新しいオブジェクトがすべて作成されたが、オブジェクトがまだ何も削除されていない時点で送られます。
#filePreOpen:(integer | undefined)
新規ファイルを開く前に送られます。
callbacks.notificationParam() を呼び出すと、レンダリング プリセット ファイルが開いている場合は整数の 2、そうでない場合は undefined が返されます。
#filePostOpen: (integer |undefined)
新規ファイルを開いた後に送られます。
callbacks.notificationParam() を呼び出すと、レンダリング プリセット ファイルが開いている場合は整数の 2、そうでない場合は undefined が返されます。
#filePreOpenProcess: #(integer, string)
ファイルのオープン処理が開始される前に送信されます。
callbacks.notificationParam() を呼び出すと、2 要素の配列が戻されます。
要素 1 は、以下の値になります。
通常のファイル ロードを実行する場合は 1。
[編集] > [一時保存を呼び出し](Edit>Fetch)を実行する場合は 2。
要素 2 は、ロードされているシーン ファイル名です。
例: |
callbacks.removeScripts id:#testCallback callbacks.addScript #filePreOpenProcess "print (callbacks.notificationParam())" id:#testCallback |
一時保存を呼び出しを実行 - コールバックによる出力 |
2 "C:\Documents and Settings\user\My Documents\3dsmax\autoback\maxhold.mx" |
#fileOpenFailed: integer
ファイルのオープンに失敗した後に送られます。
callbacks.notificationParam() を呼び出すと、ファイル タイプを示す整数が返されます。0 は 3ds Max ファイル、1 はマテリアル ライブラリです。
#filePostOpenProcess: undefined
ファイルを開くプロセスが終了した後で送信されます。
#filePreSave: string
ファイルを保存する前に送られます。
callbacks.notificationParam() を呼び出すと、ファイル名を含む文字列が返されます。
#filePostSave: string
ファイルを保存した後に送られます。
callbacks.notificationParam() を呼び出すと、ファイル名を含む文字列が返されます。
#filePreSaveProcess: #(integer, string)
保存処理が開始される前に送信されます。
callbacks.notificationParam() を呼び出すと、2 要素の配列が返されます。
要素 1 は、以下の値になります。
通常のファイルの保存を実行する場合は 1。
[編集] > [一時保存](Edit>Hold)を実行する場合は 2。
自動バックアップを実行する場合は 3。
要素 2 は、保存されているシーン ファイル名です。
例: |
以下のコードを評価します。 |
callbacks.removeScripts id:#testCallback callbacks.addScript #filePreSaveProcess "print (callbacks.notificationParam())" id:#testCallback |
ファイルを「TestingCallback.max」に保存します。コールバックの出力は次のようになります。 |
1 "C:\Documents and Settings\user\My Documents\3dsmax\scenes\testingcallback.max" |
この時点で[編集] > [一時保存を呼び出し](Edit>Fetch)を実行します。コールバックの出力は次のようになります。 |
2 "C:\Documents and Settings\user\My Documents\3dsmax\autoback\maxhold.mx" |
自動バックアップの作動を待機します。コールバックの出力は次のようになります。 |
3 "C:\Documents and Settings\user\My Documents\3dsmax\autoback\AutoBackup01.max" |
#filePostSaveProcess: #(integer, string)
保存処理が完了した後に送信されます。
callbacks.notificationParam() を呼び出すと、 #filePreSaveProcess と同じ 2 要素の配列が返されます。上述の説明を参照してください。
#filePreSaveOld: undefined
古いバージョンのファイルが保存される前に送られます。
#filePostSaveOld: undefined
古いバージョンのファイルが保存された後で送られます。
#filePreMerge: integer
ファイルを結合する前に送られます。
callbacks.notificationParam() を呼び出すと、オブジェクトまたはシーンの外部参照が合成された場合は整数の 1 が、そうでない場合は undefined が返されます。
#filePostMerge: integer
ファイルを結合した後に送られます。
callbacks.notificationParam() を呼び出すと、オブジェクトまたはシーンの外部参照が合成された場合は整数の 1 が、そうでない場合は undefined が返されます。
#filePostMerge2: #(integer, integer)
ファイルが正常に結合された後に、#filePostMerge の直後に送られます。
callbacks.notificationParam() を呼び出すと、2 つの要素を含む配列が返されます。最初の要素はファイルを保存するバージョンで、2 番目の要素はファイルに名前を付けて保存するバージョンです。
たとえば、3ds Max 2017 ([ファイルの種類](Save as Type)が 3ds Max 2016 に設定されていた)で保存されたファイルをロードする場合、値は 19000 (MAX_RELEASE_R19)および 18000 (MAX_RELEASE_R189)になります。
#filePostMergeProcess: undefined
マージ プロセスが終了した後で送信されます。
#preImport: undefined
ファイルを読み込む前に送られます。
#postImport: filename
ファイルを読み込んだ後に送られます。
callbacks.notificationParam() を呼び出すと、読み込み中のファイルの名前が返されます。3ds Max 2017 以降で使用可能です。
#importFailed: undefined
読み込みに失敗した場合に送られます。
#preExport: undefined
ファイルを書き出す前に送られます。
#postExport: filename
ファイルを書き出した後に送られます。
callbacks.notificationParam() を呼び出すと、書き出し中のファイルの名前が返されます。3ds Max 2017 以降で使用可能です。
#exportFailed: undefined
書き出しに失敗した場合に送られます。
#objectXrefPreMerge: undefined
外部参照のロード(通常は[合成](Merge)通知の周辺)
#objectXrefPostMerge: undefined
外部参照のロード(通常は[合成](Merge)通知の周辺)
#sceneXrefPreMerge: undefined
外部参照のロード(通常は[合成](Merge)通知の周辺)
#sceneXrefPostMerge: undefined
外部参照のロード(通常は[合成](Merge)通知の周辺)
#layerCreated: BaseLayer (reftarg)
レイヤ作成後に送られます。
callbacks.notificationParam() を呼び出すと、レイヤの ReferenceTarget が返されます。
#layerDeleted: BaseLayer (reftarg)
レイヤが削除される前に送られます。 callbacks.notificationParam() によってレイヤが返されます。
#layerParentChanged: #(BaseLayer, BaseLayer)
レイヤの親が変更された後に送られます。
callbacks.notificationParam() を呼び出すと、2 つの要素(新しい親と古い親)を含む配列が返されます。
#nodeLayerChanged: #(node, BaseLayer, BaseLayer)
新しいレイヤ上にノードが配置された後で送られます。 callbacks.notificationParam() によって、ノード、古いレイヤ、新しいレイヤという 3 つの要素を含む配列が返されます。
#manipulateModeOn: undefined
操作モードになったときに送られます。
#manipulateModeOff: undefined
操作モードが終了したときに送られます。
#modPanelObjPreChange: undefined
[修正](Modify)パネル内で現在の編集オブジェクトが変更される直前に送られます。
#modPanelObjPostChange: undefined
[修正](Modify)パネル内で現在の編集オブジェクトが変更された直後に送られます。
#modPanelSelChanged: undefined
[修正](Modify)パネルが選択されたか、またはシーンで新しく選択が行われたために、[修正](Modify)パネルが新しい選択上で開いた場合に送られます。通知はパネルの再描画の直前に選択が行われた後に発生し、パネルの状態は上書きされることなくコールバック関数によって修正できます。
#ModPanelSubObjectLevelChanged: #(newSOlevelIndex, oldSOlevelIndex)
[修正](Modify)パネルのサブオブジェクト レベルが切り替わるたびに送られます。 callbacks.notificationParam() を呼び出すと、新しい SO レベル番号と古い SO レベル番号を含んだ配列が返されます。3ds Max 9 以降で使用可能です。
#preModifierAdded: #(node, modifier)
モディファイヤがノードに追加される前に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードと追加されたモディファイヤを含む 2 つの要素配列が返されます。
#postModifierAdded: #(node, modifier)
モディファイヤがノードに追加された後に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードと追加されたモディファイヤを含む 2 つの要素配列が返されます。
#preModifierDeleted: #(node, modifier)
モディファイヤがノードから削除される前に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードと削除されたモディファイヤを含む 2 つの要素配列が返されます。
#postModifierDeleted: #(node, modifier)
モディファイヤがノードから削除された後に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードと削除されたモディファイヤを含む 2 つの要素配列が返されます。
#mtlLibPreOpen: undefined
マテリアル ライブラリをロードする直前に送られます。
#mtlLibPostOpen: materiallib
マテリアル ライブラリをロードした直後に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ロードされた MaterialLibrary が返されます。
#mtlLibPreSave: undefined
マテリアル ライブラリを保存する直前に送られます。
#mtlLibPostSave: undefined
マテリアル ライブラリを保存した直後に送られます。
#mtlLibPreMerge: undefined
マテリアル ライブラリを結合する直前に送られます。
#mtlLibPostMerge: undefined
マテリアル ライブラリを結合した直後に送られます。
#FailedDirectXMaterialTextureLoad: undefined
ビットマップを DirectX シェーダ マテリアルにロードできなかったときに送られます。
通常は、DirectX がこのファイル形式をサポートしていない場合です。開発者はこの通知を登録して、ビットマップ形式を DirectX テクスチャ リソースに変換できるようすることができます。
#mtlRefAdded: material
マテリアル参照が追加されると呼び出されます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、マテリアルが返されます。
#mtlRefDeleted: material
マテリアル参照が削除されると呼び出されます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、マテリアルが返されます。
#proxyTempDisableStart: undefined
#proxyTempDisableEnd: undefined
ビットマップ プロキシを一時的に無効にする操作の前後に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、undefined が返されます。
#nodeCreated: node
ノードの作成時に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードが返されます。
#nodeCloned: node
ノードのクローンが作成されたが、Hold.Accept(..)が実行される前に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードが返されます。
#sceneNodeAdded: node
ノードがシーンに追加された直後に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードが返されます。
#nodeFreeze: node
ノードをフリーズするときに送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードが返されます。
#nodeUnfreeze: Node
ノードをフリーズ解除するときに送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードが返されます。
#nodeHide: node
ノードを非表示にするときに送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードが返されます。
#nodeUnhide: Node
ノードを表示するときに送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードが返されます。
#nodeLinked: Node
新規親子リンクを作成するときに送られます。コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードが返されます。
#nodeUnlinked: Node
親子リンクを解除するときに送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードが返されます。
#nodePreDelete: Node
ノードを削除する前に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードが返されます。
#nodePostDelete: undefined
ノードを削除した後に送られます。
#nodePreMaterial: Node
ノードが新規マテリアルを取得する直前に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードが返されます。
#nodePostMaterial: Node
ノードが新規マテリアルを取得した直後に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードが返されます。
#nodeRenamed: #(name, name)
シーン ノードの名前が変更された場合に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、新旧のノード名を文字列として含む 2 つの要素配列が返されます。
#nodeNameSet: #(name, name, node)
シーン ノード名が設定または変更されると、送信されます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、新旧のノード名およびノードを含む 3 つの要素配列が返されます。
#preNodeBonePropChanged: Array of nodes
変更前のボーン プロパティ。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードの配列が返されます。
このオプションは 3ds Max 2014 より前のバージョンでは正しく機能しませんでした。
個々のボーンには修正されたバージョンが呼び出されるので、戻り値は配列のままですが呼び出しごとに含まれるノードは 1 つのみです。
通知は、すべてのボーン アニメーション プロパティの変更に対してブロードキャストされます。例外として、 InvalidateObjectTM() は、ボーンのプロパティ内のフラグを変更しますが、そのフラグは子ボーンが変更された場合にも変更されます。ビューポート内でノードを移動させるだけでこの状況が発生してしまうため、大量の通知を避けるために除外します。
#postNodeBonePropChanged: Array of nodes
変更後のボーン プロパティ。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードの配列が返されます。
このオプションは 3ds Max 2014 より前のバージョンでは正しく機能しませんでした。
個々のボーンには修正されたバージョンが呼び出されるので、戻り値は配列のままですが呼び出しごとに含まれるノードは 1 つのみです。
通知は、すべてのボーン アニメーション プロパティの変更に対してブロードキャストされます。例外として、 InvalidateObjectTM() は、ボーンのプロパティ内のフラグを変更しますが、そのフラグは子ボーンが変更された場合にも変更されます。ビューポート内でノードを移動させるだけでこの状況が発生してしまうため、大量の通知を避けるために除外します。
#preNodeGeneralPropChanged: Array of nodes
変更前の一般プロパティ。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードの配列が返されます。
#postNodeGeneralPropChanged: Array of nodes
変更後の一般プロパティ。
コールバック関数内で callbacks.notificationParam() を呼び出すと、プロパティを変更されたノードの配列が返されます。
#preNodeGiPropChanged: Array of nodes
アドバンスト ライティング プロパティの変更前に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、プロパティを変更されるノードの配列が返されます。
#postNodeGiPropChanged: Array of nodes
アドバンスト ライティング プロパティの変更後に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、プロパティを変更されたノードの配列が返されます。
#preNodesCloned: Array of nodes
ノードがクローン作成される前に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードの配列が返されます。
#postNodesCloned: #(array of nodes, array of nodes, name)
ノードがクローン作成された後に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、次の 3 つの要素による配列が返されます。最初の要素は元のノードの配列、2 番目の要素はクローン作成されたノードの配列、そして 3 番目の要素は、 #copy 、 #instance 、または #reference の名前の値です。
#preNodeUserPropChanged: Array of nodes
変更前のユーザ プロパティ。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードの配列が返されます。
#postNodeUserPropChanged: Array of nodes
変更後のユーザ プロパティ。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードの配列が返されます。
#preMirrorNodes: Array of nodes
ミラー操作の最初。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードの配列が返されます。
#postMirrorNodes: Array of nodes
ミラー操作の最後。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ノードの配列が返されます。
#selectedNodesPreDelete: Array of nodes
選択されたノードを削除する直前に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、これから削除されるノードの配列が返されます。
#selectedNodesPostDelete: undefined
選択されたノードを削除した直後に送られます。
#selectionSetChanged: undefined
選択セットを変更した後に送られます。
#postNodeSelectOperation: undefined
システムのノード選択プロセッサがノードの選択を終了した後に送られます。
#ClassDescAdded: MAXClass
新しい ClassDesc が登録されていることを通知します。
この通知は、プラグインを含む DLL がロードされた場合や、ClassDesc が 3ds Max で動的に作成および登録されている場合(スクリプト プラグインが定義されている場合など)に発生します。プラグインを含む DLL をロードすると、プラグインごとに #classDescLoaded 通知、#ClassDescAdded 通知の順番に表示されます。ClassDesc が 3ds Max で動的に作成および登録されている場合は、#ClassDescAdded 通知のみが表示されます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、登録中の ClassDesc の MAXClass ラッパーが返されます。
#classDescLoaded: MAXClass
プラグインの dll から ClassDesc が正常にロードされた後に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ロード中の ClassDesc の MAXClass ラッパーが返されます。
#interactivePluginCreationStarted: MAXClass
ユーザがプラグイン インスタンスの作成を開始するときに送られます。
この通知が送信されるタイミングは、[作成](Create)パネルや[修正](Modify)パネル、またはメイン メニューを使用してオブジェクトをインタラクティブに作成するときなどです。プラグイン インスタンスをプログラム(SDK、MAXScript、python など)を使用して作成した場合は、この通知は送信されません。
コールバック関数内で callbacks.notificationParam() を呼び出すと、プラグインをラップしている MAXClass が返されます。
#interactivePluginCreationEnded: MAXClass
ユーザがプラグイン インスタンスの作成を終了したときに送られます。
プラグイン インスタンスをプログラム(SDK、MAXScript、python など)を使用して作成した場合は、この通知は送信されません。
コールバック関数内で callbacks.notificationParam() を呼び出すと、プラグインをラップしている MAXClass が返されます。
#ObjectDefinitionChangeBegin: MAXClass
オブジェクトのインスタンスが新しいオブジェクト定義に更新される直前に送信されます。
MAXScript では、定義スクリプトを再評価することにより、スクリプト プラグインおよびスクリプト カスタム アトリビュートの定義を更新することができます。新しい定義により、ローカル変数、パラメータ ブロック、パラメータ ブロックの項目、ロールアウト、およびロールアウト コントロールを追加または削除することができます。新しい定義が評価された後に、既存のプラグイン インスタンスはこの新しい定義に変換されます。この通知は、インスタンスが新しい定義に変換される直前に送られます。
プラグインはこの通知を使用することにより、プラグイン インスタンスのロールアウト表示の再構築を定義に従ってコントロールすることができます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、スクリプト プラグインをラップしている MAXClass が返されます。
#ObjectDefinitionChangeEnd: MAXClass
オブジェクトのインスタンスが新しいオブジェクト定義に更新された後に送られます。#ObjectDefinitionChangeBegin を参照してください。
コールバック関数内で callbacks.notificationParam() を呼び出すと、スクリプト プラグインをラップしている MAXClass が返されます。
#pluginLoaded: string
プラグインをロードするたびに送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ロードされた dll の名前を含む文字列が返されます。
#appActivated: undefined
メイン アプリケーション ウィンドウをアクティブ化するときに呼び出されます。
#appDeactivated: undefined
メイン アプリケーション ウィンドウを非アクティブ化するときに呼び出されます。
#postSystemStartup: undefined
ソフトウェアの起動後に送られます。
#selectionLocked: undefined
選択のロックがトリガされたときに送られます。
#selectionUnlocked: undefined
選択のロック解除がトリガされたときに送られます。
#systemPreNew: integer
3ds Max をリセットする直前に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、[新規シーン](New Scene)ダイアログ ボックスで選択されたオプションに対応する次の整数値が返されます。
1 - すべて新規
2 - オブジェクトを保持
3 - オブジェクトと階層を保持
#systemPostNew: undefined
3ds Max をリセットした直後に送られます。
#systemPreReset: undefined
3ds Max をリセットする前に送られます。
#systemPostReset: undefined
3ds Max をリセットした後に送られます。
#systemPreDirChange: undefined
変更後のシステム パス - [パスを設定](Configure Paths)ダイアログ ボックスで変更される dir のカタログ
#systemPostDirChange: undefined
変更後のシステム パス - [パスを設定](Configure Paths)ダイアログ ボックスで変更される dir のカタログ
#preSystemShutdown: undefined
ソフトウェアがシャットダウン プロセスを開始する直前に送られます。
#postSystemShutdown: undefined
ソフトウェアがシャットダウン プロセスを完了する直前に送られます。
MAXScript リスナーと 3ds Max のUI を伴うオペレーションは、このコールバックを実行している時は、すでにこのコールバックが閉じている為使用できません。ファイルの書き込みのような UI 関連ではないオペレーションでは正しく実行されます。
#welcomeScreenDone: undefined
初回のようこそ画面が表示された後に送信されます(表示されていないか、閉じられている場合)
#preAppThemeChange: undefined
アプリケーションのテーマを変更する前に送られます。
#postAppThemeChange: undefined
アプリケーションのテーマを変更した後に送られます。
#postLoadingMenus: undefined
メニュー ファイルがロードされ、メニュー バーが更新された後に呼び出されます。
この通知に登録されたクライアントは、独自のメニューまたはメニュー項目を現在ロードされているメニュー セットに追加することができます。
#preLoadingCuiToolbars: string
メイン アプリケーション メニュー バーが保存される前に送られます。
callbacks.notificationParam() を呼び出すと、ロード中のパスが返されます。既定のツールバーをロードしている場合は、空の値が返されます。
#postLoadingCuiToolbars: string
メイン アプリケーション メニューバーが保存された後に送られます。
callbacks.notificationParam() を呼び出すと、ロード中のパスが返されます。既定のツールバーをロードしている場合は、空の値が返されます。
#preSavingCuiToolbars: string
ツールバーの設定が保存される前に送られます。
callbacks.notificationParam() を呼び出すと、保存中のパスが返されます。既定のツールバーを保存している場合は、空の値が返されます。
#postSavingCuiToolbars: string
ツールバーの設定が保存された後に送られます。
callbacks.notificationParam() を呼び出すと、保存中のパスが返されます。既定のツールバーを保存している場合は、空の値が返されます。
#preSavingMenus: string
メイン アプリケーション メニュー バーが保存される前に送られます。
callbacks.notificationParam() を呼び出すと、保存中のパスが返されます。
#postSavingMenus: string
メイン アプリケーション メニューバーが保存された後に送られます。
callbacks.notificationParam() を呼び出すと、保存中のパスが返されます。
#postSceneReset: undefined
既存のシーン内のすべての参照が削除された直後に送られます。
この通知は、既存のシーンがワイプされた後に送られます。この通知が送信されるのは、ファイルから新しいシーンをロードする直前や、ファイルを更新している場合などです。
#preSceneStateRestore: string
シーン ステートが復元される前に送られます。
callbacks.notificationParam() を呼び出すと、シーン ステートの名前が返されます。
#postSceneStateRestore: string
シーン ステートが復元された後に送られます。
callbacks.notificationParam() を呼び出すと、シーン ステートの名前が返されます。
#preSceneStateSave: string
シーン ステートが保存される前に送られます。
callbacks.notificationParam() を呼び出すと、シーン ステートの名前が返されます。
#postSceneStateSave: string
シーン ステートが保存された後に送られます。
callbacks.notificationParam() を呼び出すと、シーン ステートの名前が返されます。
#preWorkspaceChange: undefined
CUI ワークスペースが変更される前に送られます。
callbacks.notificationParam() を呼び出すと、ワークスペース名が返されます。
#postWorkspaceChange: string
CUI ワークスペースが変更された後に送られます。
callbacks.notificationParam() を呼び出すと、ワークスペース名が返されます。
#preWorkspaceCollectionChange: undefined
システム ワークスペースのコレクションが変更される前に送られます。
#postWorkspaceCollectionChange: undefined
システム ワークスペースのコレクションが変更された後に送られます。
#preStartupScriptLoad: undefined
3ds Max 2019.2 Update の新機能: スタートアップ スクリプトが実行された直前に送信されます。
#radiosityPluginChanged: undefined
ラジオシティ プラグインが変更された時に送られます。
#radiosityProcessDone: undefined
ラジオシティ処理が終了した時に送られます。
#radiosityProcessReset: undefined
ラジオシティ処理がリセットされた時に送られます。
#radiosityProcessStart: undefined
ラジオシティ処理を開始した時に送られます。
#radiosityProcessStopped: undefined
ラジオシティ処理を停止した時に送られます。
#sceneUndo: string
シーンを元に戻した後に送られます。 callbacks.notificationParam() では、取り消しエントリの名前が返されます。3ds Max 8 以降で使用可能です。
#sceneRedo: string
シーンを元に戻した後に送られます。 callbacks.notificationParam() では、取り消しエントリの名前が返されます。3ds Max 8 以降で使用可能です。
例: |
callbacks.removeScripts id:#test callbacks.addScript #sceneRedo "format \"Redo: %\\n\" (callbacks.notificationParam())" id:#test callbacks.addScript #sceneUndo "format \"Undo: %\\n\" (callbacks.notificationParam())" id:#test |
#preSceneRedo: string
シーンをやり直す前に送られます。 callbacks.notificationParam() はやり直しの文字列を返します。
#preSceneUndo: string
シーンを元に戻した後に送られます。 callbacks.notificationParam() は元に戻す文字列を返します。
#postRestoreObjsDeleted: unefined
「元に戻す」システムがフラッシュされ、「元に戻す」システム内に少なくとも 1 つの RestoreObj が存在していた場合に送られます。
#svSelectionSetChanged: integer
スケマティク ビューの選択設定を変更したら送られます。 callbacks.notificationParam() によって、スケマティク ビューのインデックスが返されます。
#svDoubleClickGraphNode: undefined
ユーザがスケマティク ビューのノードをダブルクリックすると送られます。
#svPreLayoutChange: integer
スケマティク ビューをレイアウトのアルゴリズムに適用する前に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、スケマティク ビューのインデックスが返されます。
#svPostLayoutChange: integer
スケマティク ビューをレイアウトのアルゴリズムに適用した後に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、スケマティク ビューのインデックスが返されます。
#NamedSelSetCreated: string
名前付き選択セットが作成された後に送られます。
callbacks.notificationParam() を呼び出すと、新しい選択セットの名前が返されます。
3ds Max 9 以降で使用可能です。
#NamedSelSetDeleted: string
名前付き選択セットが削除された後に送られます。
callbacks.notificationParam() を呼び出すと、削除された名前付き選択セットの名前が返されます。
3ds Max 9 以降で使用可能です。
#NamedSelSetRenamed: string
名前付き選択セットの名前が変更された後に送られます。
callbacks.notificationParam() を呼び出すと、名前を変更した選択セットの古い名前と新しい名前を含む配列が返されます。
3ds Max 9 以降で使用可能です。
#NamedSelSetPreModify: string
名前付き選択セットのノード セットの変更が開始したときに送られます。たとえば、名前付き選択セットに対してノードを追加または削除した場合、または名前付き選択セットのノード セットが完全に置き換えられた場合です。
callbacks.notificationParam() を呼び出すと、修正された選択セットの名前が返されます。
#NamedSelSetPostModify: string
名前付き選択セットのノード セットが変更されたときに送られます。
callbacks.notificationParam() を呼び出すと、修正された選択セットの名前が返されます。
#D3DPreDeviceReset: undefined
デバイスがリセットされる前に送られます。
3ds Max 9 以降 で使用可能です。
#D3DPostDeviceReset: undefined
デバイスがリセットされた後に送られます。
3ds Max 9 以降 で使用可能です。
#activeViewportChanged: undefined
現在のアクティブなビューポートが変更されたときに送られます。
#atsPostRepathPhase: undefined
アセット トラッキング システムの走査が完了した後に送られます。
#atsPreRepathPhase: undefined
アセット トラッキング システムの走査が開始する前に送られます。
#bitmapChanged: string
ビットマップを再読み込みした後に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、bitmaptexture のビットマップ ファイル名を含む文字列を返します。
#byCategoryDisplayFilterChanged: undefined
オブジェクト カテゴリが表示/非表示にマークされた後に送られます。
#colorChanged: undefined
システムのカスタム カラーの更新中に送られます。
#cuiMenusUpdate: undefined
メイン アプリケーション メニュー バーが更新されるときに送信されます。
#customDisplayFilterChanged: undefined
カスタム表示フィルタをアクティブ/非アクティブにした後で送られます。
#lightingUnitDisplaySystemChange: undefined
ライト単位の表示システムを変更した場合に送られます。
#mouseSettingsChanged: undefined
マウス設定ファイルが変更された後に送られます(新しいマウス設定ファイルをロード/保存した後など)。
#preViewPanelDelete: integer
ビューポートが削除される前に送られます。通常は、ビュー タブを削除するときに発生します。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ビューポートの HWND が返されます。
#preViewportTooltip: node
ビューポートのツールチップがポップ アップ表示される前に送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ツールチップをトリガするノードが返されます。
#sceneExplorerNeedsUpdate: undefined
シーン エクスプローラの表示を更新する必要がある場合に送られます。
#sceneStateDelete: string
シーン ステートが削除されたときに送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、シーン ステートの名前が返されます。
#sceneStateRename: #(string, string)
シーン ステートの名前が変更されたときに送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、古い名前と新しい名前を含む 2 つの要素からなる配列が返されます。
#spacemodeChange: undefined
ユーザが参照する座標系を変更した場合に送られます。
#timeunitsChange: undefined
ユーザが時間の書式を変更した場合に送られます。
#unitsChange: undefined
ユーザが単位設定を変更した場合に送られます。
#viewportChange: undefined
ビューポート パラメータが変更される(ビューポートのパン、ズーム、軌道周回、またはアクティブ ビューポートの変更)たびに送信されます。
現在は、ビューポート レイアウトの変更についての通知は行われません。
#viewportSafeFrameToggle: integer
ビューポートのセーフ フレームをオンまたはオフにしたときに送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、オンの場合は整数値 -1、オフの場合は 0 を返します。
3ds Max 2014 以降で使用可能です。
#mainWindowEnabled: boolean
メインのアプリケーション ウィンドウが有効になったときに送られます。
コールバック関数内で callbacks.notificationParam() を呼び出すと、ブール値が返されます。3ds Max のメイン ウィンドウが使用可能な場合は true、別のウィンドウが使用可能な場合は false が返されます。
#heightMenuChanged: undefined
ユーザが高さメニューを操作したときに送られます。
#playbackStart: undefined
アニメーションの再生を開始するときに送られます。
#playbackEnd: undefined
アニメーションの再生が終了したときに送られます。
#preProgress: undefined
進行状況バーを表示する前に送られます。
#postProgress: undefined
進行状況バーが終了した後に送られます。