ロールアウト UI アクションからのマクロ レコーダ エミッション

スクリプト ロールアウトから UI アクションを実行すると、MAXScript は MacroRecorder を無効にします。

既存の paramBlock パラメータを修正する UI アクションからのコード エミッションを許可するため、3ds Max 2013 以降では次のコンテキストを指定することができます。

with macroRecorderEmitterEnabled <bool_expr> <expr>

<bool_expr> が true と評価されると、MacroRecorder が有効にされ、paramBlock パラメータに対する関連する変更、およびシーン ノードの作成によってコード エミッションがトリガされます。作成引数は記録されません。

<bool_expr> が false と評価された場合、またはコンテキストがまったく指定されない場合、エクスプレッションはマクロ レコーダ出力を生成しません。

   

注:paramBlock の変更を除いて、オブジェクトの削除のようなその他のシーン変更、または他の機能の呼び出しにより、マクロ レコーダ出力が生成されることはありません。

rollout testMacroRecorderEmission "Test MRec Emission"
(
	local theSpheres = #()
	checkbox chk_emitMacroRecorderCode "Emit MacroRecorder Code"
	button btn_modifyRandomSphere "Modify Random Sphere Radius"
	
	on btn_modifyRandomSphere pressed do
	(
		with macroRecorderEmitterEnabled chk_emitMacroRecorderCode.checked 
		(
			theSpheres[random 1 theSpheres.count].radius = random 10 100
		)
	)
	on testMacroRecorderEmission open do
	(
		for y = 1 to 5 do 
			for x = 1 to 5 do
				append theSpheres (sphere radius:10 pos:[x*50,y*50,0])
	)
)
createDialog testMacroRecorderEmission