Quartz Composer日記#4

前記事で、次のように書いていた。
>図形によって異なった値を割り当てる所ではなるべくJavaScriptで自動化し、同じ値を割り当てる所は…ええとどうするんだろう。そこちょっとこれから勉強したい。
そこを勉強した。
まず同じ値を複数のパッチに入力するのにはInput Splitterというパッチを使うようだ。SettingsにあるTypeの項目で型を選んだらInput Parametersで値が入力できるようになる。その値がパッチの出力から出るので、その同じ出力から複数のパッチにつなげば良い。
複数のパッチに対してそれぞれ異なった値を一括して自動生成して出力するのにはやはりJavaScriptパッチを使った。以下のようなコードになった。何かを描画するパッチに対して、X Positionは計算で各自の値を与え、Y Positionは同じ値を与える、という用途を想定している。前段落の話をひっくり返すようだが、複数の要素を同時に記述しておくのなら同じ値を出力するのにもJavaScriptパッチを使った方が楽だ。Quartz Composerの思想としてそれで良いのかという疑問もなくはないが。

function (__number xPosition[3], __number yPosition) main ()
{
	var result = new Object();
	result.xPosition = new Array(3);
	for ( i = 0; i < 3; i++ ){
		result.xPosition[i] = -0.5 + ( i / 2 );
	}
	result.yPosition = 0;
	return result;
}

一つ一つ手打ちしてたら修正が大変だけど、こうしておけば一箇所をいじるだけで修正できて楽だ。ただし、いちいちパッチ間で結線しないといけないところは依然めんどくさい。