スクリプト ロールアウトから UI アクションを実行すると、MAXScript は MacroRecorder を無効にします。
既存の paramBlock パラメータを修正する UI アクションからのコード エミッションを許可するため、3ds Max 2013 以降では次のコンテキストを指定することができます。
with macroRecorderEmitterEnabled <bool_expr> <expr>
<bool_expr>
が true
と評価されると、MacroRecorder が有効にされ、paramBlock パラメータに対する関連する変更、およびシーン ノードの作成によってコード エミッションがトリガされます。作成引数は****記録されません。
<bool_expr>
が false
と評価された場合、またはコンテキストがまったく指定されない場合、エクスプレッションはマクロ レコーダ出力を生成しません。
例
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