Quartz Composerにどっぷり!
Leopard で Quartz Composer : パッチ編

今回のテーマ

今回のテーマは、Leopard での Quartz Composer の強化ポイントです。新規パッチや変更されたパッチについて全部とはいきませんが、調査した範囲で紹介していきます。

推奨環境 この解説は、以下の環境が必要です。ご確認ください。

改版履歴

新パッチと改良パッチ

今回のテーマは、Leopard での Quartz Composer の強化ポイントです。細かいものまで含めると非常に項目が多いので、すべては紹介しきれませんが、主に新しく追加されたパッチや既存のパッチで機能強化されたものについて紹介していきます。

新しいパッチや昨日強化されたパッチを使った場合は、Mac OS X 10.4 では、正しく動かなくなります。[ Edit → Display 10.4 Compatibility Information ] メニューにチェックをつけると Mac OS X 10.4 だと動かなくなるものには「×」、動きが異なるものには「!」のマークがつきます。

Smooth パッチ

Smooth パッチは、入力された数値が急激に変化しても滑らかな変化にして出力します。例えば、ある時 0.0 が入力されていて、次に 1.0 が入力されたとしても、出力は、0.0 からゆっくり 1.0 に変化していきます。

例えば、LFO の Random を使って、表示しているグラフィックの色をランダムに変化させたいとします。ただ、LFO から出力される値が変わる度にカクカクと色が変わります。なめらかにランダムに変化させたい場合は、LFO の出力を Smooth を通せばいいのです。

入力値が変化したときに、出力値は、ゆっくりと入力値に近づこうと変化していきます。その近づく速さの設定もできます。近づき方も Linear や Quadratic In のような指定ができます ( Interpolation パッチを参照 )。

Timelines パッチ

Quartz Composerで、例えば、図形を四角形の辺に沿って動かしたいしたいとします。この座標の計算は、いくつかのパッチを組み合わせればできますが、ちょっと面倒。それを1つのパッチで一発解決するのが、この TimeLines パッチです。下図のように Settings の画面で時間軸に沿って自由にグラフを書いてあげると、その値が出力されるようになります。グラフはベジェ曲線で、以下のような編集ができます。

この Quartz Composer でどっぷり! で以前取り上げましたスクリーンセーバーの画像の透明度の制御は、色んなパッチを組み合わせていましたが、非常に簡単に実現できるようになります。

左下の [ Add New Timeline ] でタイムラインを追加できます。出力ポート名を変えたい場合は、グラフの右下にある [ Timeline N ] をダブルクリックします。

例えば、10.0秒間のタイムラインを作った場合、0.0〜10.0の間の出力を繰り返したいことがあると思います。この場合は、Timelines パッチを右クリックして [ Timebase > External ] を選択します。そうすると、時間を入力するためのポートが出てきますので、ここに Interpolation パッチで 0.0〜10.0 の値を繰り返し入力してあげればOK。

Mathematical Expression パッチ

Mathematical Expression パッチは、数式を計算して出力するパッチです。今まで Math パッチを組み合わせたりして計算していましたが、複雑な計算でもこのパッチ1つですむことが多くなるでしょう。数式内で使った変数は自動的に入力ポートが作られます。

演算子は、四則演算 ( + - * / )、剰余 ( % )、べき乗 ( ^ )、比較 ( < > == != <= >= ?: )、論理演算 ( && || ! )、ビット演算 ( & | !& (XOR) ~ ) が使用可能。関数は、sin cos tan asin acos atan atan2 sinh cosh tang exp ln log abs sqrt ceil floor min max rand が使えます。

String Subrange パッチ

String Subrange パッチは、文字列の一部を取り出すパッチです。切り出す先頭位置と切り出す長さを指定します。日本語などの2バイトの文字も1文字として数えます。

実行例

String Replace パッチ

文字列置換を行うパッチです。検索時に、文字列の大文字小文字を同一視するかどうかを Case Sensitive で指定できます。

Grep パッチ

正規表現を用いた文字列検索や文字列置換を行うパッチです。

入力ポートの String ポートの文字列に対して、Search String ポートの文字列 ( 正規表現が可能 ) を検索します。Replaca String が空の場合は、見つかった文字列が出力ポートの String に出力されます。Replace String が空でない場合は、入力ポートの String の文字列の見つかった文字列の部分を Replaca String で指定された文字列に置換して出力します。検索時に、文字列の大文字小文字を同一視するかどうかを Case Sensitive で指定できます。

例えば、Host Info パッチの OS Version の文字列からバージョンの数字だけを取り出したいとします。Host Info パッチの OS Version は「 Version 10.5.1 (Build 9B18) 」のような文字列になっていますので、正規表現で数字の部分のみを取り出すには以下のようにします。バックスラッシュのところは実際には半角で入力してください。¥マークでは駄目ですので注意。

文字列置換をする場合は、括弧でくくった箇所を順に $1 $2 を使った切り出しにも対応しています。以下のようにするとバージョン番号とビルド番号のところだけを切り出すことが出来ます。

Apple Remote パッチ

Apple Remote パッチは、赤外線リモコンの Apple Remote の入力を受け取るパッチです。 Apple Remote で Quartz Composer を制御できます。

音量調整のボタンは、Mac OS X のシステムが受け取ってしまうため、そのままでは使えません。Exclusive Access を True にすると Quartz Composer のみが Apple Remote のコマンドを受け取るようになります。

HID Input パッチ

HID Input パッチは、キーボードやマウスなどの HID ( Human Interface Device ) の詳細な情報を取得するパッチです。

Settings のところで、入力を受け付けたいデバイスを選ぶと、受け取れる情報の一覧が表示されますので、必要なものにチェックを付けると出力ポートが作成されます。キーボードならほとんど全てのキー入力を見ることが出来ます。

Host Info パッチ (変更)

Host Info パッチは、CPUの負荷情報を CPU Load 1 と CPU Load 2 の2つの出力ポートから出力していましたが、CPU Load の1つにまとめ、Structure で数値の配列にしました。Mac Pro だと 8 コアありますからね。

Billboard パッチ

Billboard パッチは、手軽に画像を表示するパッチです。従来は、横幅を指定して高さは画像のアスペクトから自動計算していましたが、他の指定方法が選べるようになりました。

Settings の Demensions Mode からその方法を選べます。

Cylinder パッチ

Cylinder パッチは、円柱を描画するパッチです。パラメータによって、多角柱や円錐などにも変化します。

上面と底面の半径を同じにすると円柱、片方を 0.0 にすると円錐になります。Settings のところの Number of Slices の値を 4にすると四角柱になります。

Particle System パッチ (変更)

Particle System パッチは、Particle Count を入力ポートから指定できるようになりました。また、 今までは、Particle System の色を指定すると、全ての Particle の色が変わっていましたが、Particle 単位で色と大きさを覚える事が可能になりました。Settings の Interpolate size and color にチェックを付けるとこのモードになります。

Sprite パッチ

Sprite パッチは、3D指定も可能な高機能な画像表示パッチです。描画時にアンチエイリアスによる高画質な描画が可能になりました。Settings の Antialiased Edges にチェックを入れて、Input Parameters の Blending を Over か Add にします。Replace ではアンチエイリアスされませんので注意。

個人的には、Billboard などの他の描画でもアンチエイリアスが欲しいところなんですけど...。

Color Mixer パッチ

Color Mixer パッチは、2つの色を指定の比率で混ぜるパッチです。ある色から別の色に徐々に変化させたい時に便利です。Interpolation で変化のさせ方も調整できます。

Directory Scanner パッチ (変更)

従来の Folder Images パッチは、Directory Scanner パッチとして生まれ変わりました。指定フォルダ内の画像を配列として出力していたのが、動画やQuartz Composerのファイルも探せるようになりました。Settings の中で何を探すかを指定します。

Queue パッチ

Queue パッチは、このパッチへの入力をキューイングして、しばらくしてから出力します。

Value ポートから入力された値を、そのまま出力せず、Queue Size で指定された個数分のキューに一時的に保存してから出力を行います。値は、バーチャル型なので、数値でも文字列でも構いません。

Settings の Evaluate Continuously にチェックを付けておくと、入力される値が変化していなくてもキューにどんどん取り込みます。この場合は、キューの個数分出力が遅れるのでディレイとして使えます。チェックを外すと、入力された値が変化したときだけ取り込みます。
Sample & Hold パッチ

Sample & Hold パッチは、ある時に入力された値をそのまま保持して出力するパッチです。

Sampling ポートが True になっている時は、Sample Value 空入力されている値をそのまま Value へ出力しますが、Sampling が false になったときには、Sample Value に最後に入力された値を保持します。

Watcher パッチ

Watcher パッチは、Input ポートに入力された値が変化したときに True を Updating Singnal ポートに出力するパッチです。

例えば、何かの値が何回変化したかを取得するような用途などに使えます。