スクリプト ヘルパープラグイン
スクリプト Helper プラグインが拡張できるのは、既存の Helper プラグインだけです。スクリプト Helper プラグインを宣言するには <superclass> を helper と指定します。 create ツールが指定された場合、delegate の create ツールが無効になります。
スクリプト ヘルパー プラグインの例は、「スクリプト プラグイン メソッド」の Three Lights の例を参照してください。
イベント ハンドラ
on getDisplayMesh do ....
このイベント ハンドラは スクリプト カメラとヘルパーで、3ds Max 7 以降で使用でき、開発者は代理オブジェクトのビューポート表示メッシュを、カスタム表示メッシュに置き換えることができます。
このハンドラはオプションです。
注:パフォーマンス上の理由から、返されるメッシュはできるだけ再生成しないことが重要です。ハンドラは多くの場合、表示、範囲テスト、およびヒット テストの際に呼び出されます。
下の例は、メッシュが実際に変更された場合に限り、ハンドラでそのメッシュを更新する方法を示しています。
例:
|
plugin Helper HelperTest_DisplayMesh
name:"HelperTest"
classID:#(0x47db14fe, 0x4e9b5f90)
category:"Standard"
extends:dummy
(
local lastSize, meshObj
parameters pblock rollout:params
(
size type:#float animatable:true ui:amount default:40.0
)
rollout params "HelperTest Parameters"
(
Spinner amount "Size:" range:[0, 1e9, 40]
)
on getDisplayMesh do
(
if (meshObj == undefined) do
(
meshObj = createInstance box length:size \
width:size height:size mapCoords:false \
lastSize = size
)
if size != lastSize do
(
meshObj.length = meshObj.width = meshObj.height = size \
lastSize = size
)
meshObj.mesh
)
tool create
(
on mousePoint click do
(
nodeTM.translation = gridPoint;#stop
)
)
)
|
このオプションのイベント ハンドラーを使用すると、開発者はビューポートでのオブジェクトの描画にノードのワイヤ カラーを使用するか、指定のオブジェクト タイプに対応した UI カラー(ヘルパーにはダミー
オブジェクト)を使用するかを指定できます。このハンドラが true を返す場合は、ノードのワイヤ カラーが使用されます。 false を返す場合は、オブジェクト タイプの
UI カラーが使用されます。イベント ハンドラを指定しない場合は、ワイヤ カラーが使用されます。 getDisplayMesh ハンドラを指定した場合に限って、このハンドラを使用できます。3ds Max 8 以降 で使用可能です。