Mac OSX10.4 Tigerから付属したQuartz Composer。
いろいろできるのが売り。かなり触っているはずなのにこのブログではまだ書いてなかったなとおもい、ちょっとニッチな話題でご提供。
モーショングラフィックスツールとしてのQuartz Composerについては未来派図画工作が最強。サンプルデータもダウンロードできて非常に勉強になる。本も出したし。
Quartz Composer Book ?クォーツ コンポーザー ブック?
- 作者: 鹿野護
- 出版社/メーカー: ビー・エヌ・エヌ新社
- 発売日: 2008/09/30
- メディア: 単行本(ソフトカバー)
- 購入: 9人 クリック: 216回
- この商品を含むブログ (31件) を見る
一方、本来的な使い方、Macソフトに簡単にグラフィックスを付加できるプログラミングツールとしての使い方はおざなりになっている感ある。少なくとも日本語のコミュニティで充実したものは見つからない。実際使ってみるとかなり使いやすい。以前、公開したSimpleVJもQCにただインターフェースビルダーでGUIをつけただけだ。
まず、XCode 3.0では大幅にQuartz Composerとの連携が改善されている。Quartz ComposerとXCodeで何ができるのか、を知るにはサンプルを見るのが一番早い。
ディレクトリ"/Developer/Examples/Quartz Composer/Applications"以下に大量のサンプルがある。hoge.xcodeprojをダブルクリックしてXCodeを開き、全てコンパイル&実行することをおすすめする。
基本的なQuartz Composerの使い方については、いろんなサイトをみて頂くとして、XCodeとリンクさせる一番の肝はinputとoutputの設定だ。
patchを右クリックorControl+クリックすると"Published Inputs"なり"Published Outputs"という項目がでる。階層化されたパッチないでこれをつけると、QC内部で、階層的なプログラミングができるのだが、Root階層でパブリッシュした場合、XCodeからそのパラメーターをいじれるようになる。outputの場合は値や画像を取得できる。
QCとXCodeで入出力できる値のタイプはQuartz Composer Programming Guideによれば、
ポートの型 | クラス |
---|---|
だ。
パッチを繋ぐ線が黄色の場合は型がマッチしている。赤色の場合はマッチしていない。対応表を見れば分かるように、Bool,Index,Numberの繋ぐ線は、自動的に型変換されてもうまくいく。画像ではcolorのアウトプットをstringのインプットにつなげているが、
[NSColor stringValue];
と同じ値が取り出される事になる。
全てのキー、値は
OSX10.5からはXCode上で確認できる。
- (IBAction) changeSlider:(NSSlider*)sender { [qcView setValue:[sender floatValue] forInputKey:@"slider"]; }
といった感じで、あの独特のObjective-Cの使い回しで記述していくことになる。パブリッシュされたポートはinputKeyなり、outputKeyに文字列で。メッセージを送ることになる。
これで簡単にインターフェースビルダーとかからQCをいじれるようになる。
…と思っていたのだが、
実は10.5から、Quartz Composition Parameter Viewなるクラスが登場し、インターフェースビルダーでヒモで繋ぐだけで、簡単にinputポートにアクセスできるようになった。
ってことで、それについてはまたいつか書きます。