スクリプト ヘルパープラグイン

スクリプト 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
    )
  )
)
on useWireColor do ....

このオプションのイベント ハンドラーを使用すると、開発者はビューポートでのオブジェクトの描画にノードのワイヤ カラーを使用するか、指定のオブジェクト タイプに対応した UI カラー(ヘルパーにはダミー オブジェクト)を使用するかを指定できます。このハンドラが true を返す場合は、ノードのワイヤ カラーが使用されます。 false を返す場合は、オブジェクト タイプの UI カラーが使用されます。イベント ハンドラを指定しない場合は、ワイヤ カラーが使用されます。 getDisplayMesh ハンドラを指定した場合に限って、このハンドラを使用できます。3ds Max 8 以降 で使用可能です。

関連事項