風立ADのミキサー周りのスクリプトをkazagurumaで再現

風立ADで以下な感じのスクリプトをFinalMixerのSystemsettingのScriptに貼り付けて適用後、FinalMixerのショットとして保存。
Kazagurumaでシーン読み込み時にShift+TabでFinalMixerのショットを通常のシーンと同じように読み込めるのでそこで読み込む。
でもってシーンパレット選択時にShift+TabでFinalMixerのショットを選べるので、ここで読み込んでおいたスクリプト付きショットを再生(まぁ再生ということで)。
そうすると風立ADでセッティングしたミキサー周りのルミナンスやらエフェクト、トランジションとかのスクリプトをkazaguruma状で再現できます。
ただFlashとかRevers、Moveとかのエフェクト類は対応してないものがいくつかあるのね…

追記: MIDIバイスIDが1になってるのですが、その辺は適当に変えてください。

-- 風立AD & Kazaguruma  KORG nanoCONTROL 仕様 --
--                  2009.9.16   --
------------------------------------------------------


-- MixerAのLuminance --
Vector.Set(Midi.QueryControlChangeData(2,1,1),1,1,1);
Property.ApplyProperty("Luminance","Luminance","KZ Mixer A");

    -- MixerAのLuminanceが0の時はMixerAをミュート --
		if ( Midi.QueryControlChangeData(2,1,1) <= 0.01 ) then
		intStatus = 0;
		else
		intStatus = 1;
		end;
		Property.ShowPlugin( intStatus,"KZ Mixer A" );

-- MixerBのLuminance --
Vector.Set(Midi.QueryControlChangeData(3,1,1),1,1,1);
Property.ApplyProperty("Luminance","Luminance","KZ Mixer B");
 
    -- MixerBのLuminanceが0の時はMixerBをミュート --
		if ( Midi.QueryControlChangeData(3,1,1) <= 0.01 ) then
		intStatus = 0;
		else
		intStatus = 1;
		end;
		Property.ShowPlugin( intStatus,"KZ Mixer B" );


------------------
--- Transition ---
------------------

-- Transition Speed --
spd = Midi.QueryControlChangeData(22,1,1)*6+0.1;

-- Transition --
cc45 = Midi.QueryControlChangeData(45,1,1);
if ( cc45 == 1 ) then
	Transition.TransitionStart(0,spd);
end;

-- CC7が0より大きい場合CC8によるトランジションが有効 --
cc41 = Midi.QueryControlChangeData(41,1,1);
if ( cc41 > 0 ) then
	cc13 = Midi.QueryControlChangeData(13,1,1);
	Transition.SetBlendRate(cc13);
end;

-- 高速Transition --
cc44 = Midi.QueryControlChangeData(44,1,1);
if ( cc44 == 1 ) then
	Transition.TransitionStart(0,0);
end;

-- Auto Transition AB --

cc49 = Midi.QueryControlChangeData(49,1,1);
--if ( cc49 == 1 ) then
--	Transition.SetAutoSwitch(spd);
--elseif ( cc49 == 0 ) then
--	Transition.SetAutoSwitch(0);
--end;

-- Auto Transition AB Cut --
cc46 = Midi.QueryControlChangeData(46,1,1);
if ( cc46 == 1 ) then
  if ( tcut == nil ) then tcut = 0;
  end;
  if ( tcut ~= Sound.QueryBeatCount() ) then
    tcut = Sound.QueryBeatCount();
    Transition.TransitionStart(0,0);
  end;
end;

-- Auto Transition 4Sene MixerA --
cc47 = Midi.QueryControlChangeData(47,1,1);
if ( cc47 == 1 ) then
  if ( t4a == nil ) then t4a = 0;
  end;
  if ( t4a ~= Sound.QueryBeatCount() ) then
    t4a = Sound.QueryBeatCount();
    Property.CallScene( "", t4a, 0 );
  end;
end;

-- Auto Transition 4Sene MixerB --
cc48 = Midi.QueryControlChangeData(48,1,1);
if ( cc48 == 1 ) then
  if ( t4b == nil ) then t4b = 0;
  end;
  if ( t4b ~= Sound.QueryBeatCount() ) then
    t4b = Sound.QueryBeatCount();
    Property.CallScene( "", t4b, 1 );
  end;
end;


------------------
---   Effect   ---
------------------
Property.SetFinalMixerEffect_Action( -1 )
Property.SetFinalMixerEffect_Display( 0 )

-- Flash --
cc34 = Midi.QueryControlChangeData(34,1,1);
if ( cc34 == 1 ) then Midi.QueryControlChangeData(34,1,1, 0 );
	Property.SetFinalMixerEffect_Action( 0 )
end;

-- Move --
cc33 = Midi.QueryControlChangeData(33,1,1);
if ( cc33 == 1 ) then Midi.QueryControlChangeData(33,1,1, 0 );
	Property.SetFinalMixerEffect_Action( 2 )
end;

-- Revers --
cc24 = Midi.QueryControlChangeData(24,1,1);
if ( cc24 == 1 ) then Midi.QueryControlChangeData(24,1,1, 0 );
	Property.SetFinalMixerEffect_Display( 1 )
end;


-- Delay --
cc23 = Midi.QueryControlChangeData(23,1,1);
if ( cc23 == 1 ) then Midi.QueryControlChangeData(23,1,1, 0 );
	Property.SetFinalMixerEffect_Display( 7 )
end;


------------------------
---   Mixer Effect   ---
------------------------

-- MixerのFrameRate --
result = Midi.QueryControlChangeData(14,1,1)*5;
Property.ApplyProperty("Render","FrameRate","KZ Mixer A");

result = Midi.QueryControlChangeData(15,1,1)*5;
Property.ApplyProperty("Render","FrameRate","KZ Mixer B");


-- MixerのDisplay --
result = Midi.QueryControlChangeData(16,1,1)*8;
Property.ApplyProperty("Render","Display","KZ Mixer A");
resultParameter = Midi.QueryControlChangeData(4,1,1);
Property.ApplyProperty("Render","Display","KZ Mixer A");

result = Midi.QueryControlChangeData(18,1,1)*8;
Property.ApplyProperty("Render","Display","KZ Mixer B");
resultParameter = Midi.QueryControlChangeData(6,1,1);
Property.ApplyProperty("Render","Display","KZ Mixer B");


-- MixerのEffect --
result = Midi.QueryControlChangeData(17,1,1)*12;
Property.ApplyProperty("Render","Effect","KZ Mixer A");
resultParameter = Midi.QueryControlChangeData(5,1,1);
Property.ApplyProperty("Render","Effect","KZ Mixer A");

result = Midi.QueryControlChangeData(19,1,1)*12;
Property.ApplyProperty("Render","Effect","KZ Mixer B");
resultParameter = Midi.QueryControlChangeData(8,1,1);
Property.ApplyProperty("Render","Effect","KZ Mixer B");