スクリプト Helper プラグイン

スクリプト Helper プラグインが拡張できるのは、既存の Helper プラグインだけです。スクリプト Helper プラグインを宣言するには <superclass>helper と指定します。create ツールが指定された場合、delegate の create ツールが無効になります。

スクリプト Helper プラグインの例は、「スクリプト プラグイン メソッド」の 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 カラー(Helper にはダミー オブジェクト)を使用するかを指定できます。このハンドラが true を返す場合は、ノードのワイヤ カラーが使用されます。 false を返す場合は、オブジェクト タイプの UI カラーが使用されます。イベント ハンドラを指定しない場合は、ワイヤ カラーが使用されます。getDisplayMesh ハンドラを指定した場合に限って、このハンドラを使用できます。3ds Max 8 以降 で使用可能です。