Quartz Composer日記#3
次はエフェクトを…と言っていたが、エフェクトは思ったよりも負荷が大きかったので図形を出した。
http://vimeo.com/17562075
MIDIノートオンによって図形を描画し始め、図形を拡大し、ノートオフとは無関係に図形を0.2秒存続させ0.2秒経ったら消すというもの。以下のように実現した。
MIDI Notes ReceiverパッチからStop WatchパッチのStart Signal入力につなぎ、Stop WatchパッチのTime出力を使って図形の大きさを変化させた。Stop WatchパッチのTimeはJavaScriptパッチにもつなぎ、そこで0.2秒間だけtrueを出力するコードを書き、その出力を図形を出力するパッチ(今回はCircle)のEnableにつなぐことで、図形が0.2秒で消えるようにした。コードは以下の通りだ。
function (__boolean enabler) main (__number inputNumber) { var result = new Object(); if ( 0 < inputNumber && inputNumber < 0.2 ){ result.enabler = true; } else { result.enabler = false; } return result; }
図形の数が多くなると描画するパッチも多く置かなければならなくなる。それぞれのパラメータを手動で入力していては身がもたないので、図形によって異なった値を割り当てる所ではなるべくJavaScriptで自動化し、同じ値を割り当てる所は…ええとどうするんだろう。そこちょっとこれから勉強したい。別にJavaScriptの中に書いてもいいんだけど。
あとスクリーンキャストのソフトのデモ版の使い方がよくわからなくて動画に変なものが入ってしまった。
それにしても、疲れた。今後の学習計画としては、描画できる図形の種類というかパッチを把握して、あと上述したようにパラメータを手動で入力しなくても良いような仕組みの作り方に慣れること。
あと前回の場面転換だけど、Transitionカテゴリのパッチを使ってやることになってるみたいだな。まあなんとなく、前回やったような手動的な方法の方が軽そうな気がするけど…本当かどうかは知らんが。あと自由度があるしな、前回の方法は。