パラメータ ブロックを修正する

自動的に生成されたパラメータ ブロックを拡張したり、パラメータ イベント ハンドラの上書きや追加のパラメータ ブロックを作成するために、MCG ツールのカスタム UI プロパティを編集できます。

たとえば、グラフには存在しないがカスタム MAXScript コードのいずれかに使用されるパラメータを追加することができます。また、グラフのリスト パラメータ用などのパラメータ イベント ハンドラを上書きすることもできます。

これを行うには、パラメータ ブロックを再度開いて必要な変更を加えます。これにより以前のブロック全体が上書きされることはありません。既存のパラメータを再定義すると、特定のエラーが発生します。

たとえば、これは単一のリスト パラメータを持つグラフ用に自動的に生成したパラメータ ブロックです。

	parameters pblock rollout:params
	(
		MyList_Tab type:#floatTab tabSizeVariable:true
		on MyList_Tab tabChanged action index count do
		(
			if (paramsOpen) do mcgAPOps.FloatA_TabChanged action index count (this.params.MyList_UI) MyList_List MyList_Tab
		)
		on MyList_Tab set val index do
		(
			if (paramsOpen) do mcgAPOps.FloatA_TabSet val index (this.params.MyList_UI) MyList_List
		)
		_dummy type:#boolean -- this exists to enable easy invalidation of the object
		pluginGraph type:#filename assettype:#MaxCreationGraph readOnly:true enumAsAsset:true 
		pluginGraphDependencies type:#filenametab assettype:#MaxCreationGraph readOnly:true enumAsAsset:true tabSize:0 tabSizeVariable:true
	)

次のようにしてカスタム UI プロパティを編集することにより、パラメータを追加し、パラメータ イベントを上書きすることができます。

 -- Reopen the parameter block
 parameters pblock rollout:params
 (

  -- Add to the parameter block
	 MyExtraParam default:0 type:#float

	 -- Override the event handler for adding or removing an item in MyList
  on MyList_Tab tabChanged action index count do
  (
 	 -- my custom code goes here
  )

	 -- Override the event handler for setting a value in MyList
  on MyList_Tab set val index do
  (
 	 -- my custom code goes here
	 )
 )

	rollout params "Parameters"
	(
  
  -- Restore the default rollout contents   
<<ParamUIDefs>>
<<RolloutParamsHanders>>

  -- Add UI for added parameter if desired
  spinner MyExtraParam "My Pretty Name" range:[-100, 100, 0] type:#float


  -- Redefine the rollout event handlers (not included in ParamUIDefs)
		on params open do
		(
			paramsOpen = true			mcgAPOps.OneColParamsOpen MyList_UI MyList_Tab mcgAPOps.ToStringFunc #("MyList") selected:&MyList_selection
		)
		on params close do
		(
			mcgAPOps.OneColParamsClose MyList_UI selected:&MyList_selection			paramsOpen = false
		)
	)

追加のパラメータ ブロックを定義する場合は、任意のスクリプト プラグインにおいて、各パラメータ ブロックは 1 つのロールアウトのみに関連付けることができ、2 つ以上のパラメータ ブロックを同一のパラメータ ブロックに関連付けることはできないことを覚えておいてください。