My Tumblr
▼すべて表示
generated by レビュー・ポスター

2006年01月29日

Core Image Accumulator

この前書こうとしてたCore Image Accumulatorについてやります。

Accumulatorをググルで訳すと蓄積装置とでます。
何ができるかっていうと、Image Unit使って、出力されたImageを再度自身にフィードバック出来ます。
国語力が無いせいで意味不明ですね。

まずこんなもの作りました。
cia2.jpgcia1.jpg
玉をInterpolationでジグザグに動かしてるだけです。
この時に、Viewerを選択した状態でDisable Background Erasingをすると背景のチェック模様が消えます。
と同時に動いた軌跡がそのまま消えずに残ります。
cia3.jpgcia4.jpg
Backgroundを消去していたのを無効にしたので、描画したものが全て残ってしまうわけですね。多分。
(ちなみに意味もなくBackgroundErasingをオフにしたり、背景にClearなりGradientなりを置かないqtzをスクリーンセーバーにすると結構な確率で描画がおかしくなるので注意しよう)

もう一個同じうような状況を作り出せるPatchがあります。Render in Imageです。
これは内包するPatchをまとめてImageとして出力するパッチですが、
BackgroundErasingは無効になってる(有効にする方法はあるのかな?)ので同様になります。
cia5.jpg
これを回避するにはRender in Imageの中に背景となるようなPatchを置けばいいです。
試しにClearを置けば普通に描画されるようになります。

このような状況をPatchで作りだせるのがCore Image Accumulatorです。
こんな基本的な繋ぎかたをします。
cia6.jpg
Render in Imageの中身は上で作ったジグザグに動く玉です。
Image UnitはとりあえずAddition使ってますがImageの入力が2系統あるものなら何でもいいです。あとで色々試してみてください。
各エフェクトの効果はここで調べてください。

上の画像を見て、ある違和感があると思います。
Patchを繋ぐ線が交差しています。
通常のPatchを繋ぐ場合はそもそもこういう繋ぎかたは出きないようになってます。
信号はこんな流れでフィードバックされます。
cia7.jpg

ファイルはcia2.qtz

更に悪ノリすると
cia8.jpg
ファイルはcia3.qtz
posted by qtz(戻) at 00:59| Comment(0) | TrackBack(0) | Tool | このブログの読者になる | 更新情報をチェックする

2006年01月27日

前に簡易シーケンサー作ったじゃん

あれさ、、、間違いなわけじゃないんだけどさ、使ってるうちにワケ分かんなくなっちゃうんだよね。

あのPatchでやってたことってのは簡単に書くと、
1 Patch timeで得られた時間を

2 RoundのFloorで整数にして

3 MathのModuloでループさせた数値で

4 MultiplexerのIndex numberを動かす。

て流れなんだけど、BPMとかループさせる数とかいろいろ弄れるようになってました。
でも結局使い道って軽くループさせるくらいなんだよね。
一つのqtzファイルでFlash並にストーリー性のあるもの作るならともかくとしてね。
(↑できないことは無いけど、今のところ不向きだと思う。つか実際やってみたらワケわからなくなった。)

じゃあ、ループさせるだけならもっと簡単に出来るんじゃねーの?
loopeasy.jpg
、、、出来ました。
Patch数わずかに3、、、こんなことに気がつかないなんてやっぱアホだな。
ファイルはこちらloopeasy.qtz

要するにPatch timeとMathでやってたことをInterpolationでやってます。
ポイントとしては、MultiplexerのSource indexにSource #の最大値より大きい数を入れても最大値以上にはならない。
ってところでしょうか?
上図の場合Source # は3までですが、Interpolation のEnd Valueは4です。ですが3以上の数値は全部3になります。
(あと実はInterpolationをループさせるとEnd Valueにはギリギリ到達しないで折り返してるっぽいです。←これ微妙にハマるところです。)
posted by qtz(戻) at 21:34| Comment(0) | TrackBack(0) | Tool | このブログの読者になる | 更新情報をチェックする

2006年01月13日

小学校の頃、絵の具のパレットってこんなかんじだったな。

久し振りにqtzをアップします。
一応スクリーンセーバー。
memai.jpg

Core Image Accumulatorでガシガシ上書きしていってます。
使うCI Patchが一種類だと長時間回すと一色になったりして面白くないので、
いつぞやのシーケンサー使って8種類回してます。

Core Image AccumulatorはPatchの繋ぎ方が特殊なので、取っ掛かりは悪いですが、
かなり使えるPatchです。たのしー。
暇があれば、簡単に解説しようと思います。
ファイルはこちらmemai.qtz
posted by qtz(戻) at 05:23| Comment(0) | TrackBack(0) | Tool | このブログの読者になる | 更新情報をチェックする

2005年10月30日

Quartz ComposerでPhoto Boothもどき

Photo Boothは新iMacに付いてくる顔写真をエフェクトつけて録るアプリ。
エフェクトは同じCore Imageなんだから出来ないかなって。

Core Image AccumulatorがどういうPatchなのかがやっと分ってきたのでちょっと作ってみた。
Core Image Accumulatorは動画から静止画抜くのに使いました。
公開はもうちょっと弄ってから。だから需要はあるのかよ!

photob.jpg

iSight持ってないのでHDDに寝てた適当な動画使ってます。
各エフェクトはキーボードで切り替えできます。
四っつの画像に1〜4のキーボードショートカットを割り当ててるので
どれかを押すと三秒数えてキャプチャーします。
結局、出来た画像はフルスクリーンにしてスクリーンショットで録ることになるんだけどね。
posted by qtz(戻) at 05:13| Comment(0) | TrackBack(0) | Tool | このブログの読者になる | 更新情報をチェックする

2005年10月04日

Image Unitを効率良く使う

前回の続きみたいなもん。
Patch Libraryの下のほうにある●付きのPatchはImageUnitっていってCore Image使ったエフェクトで、
まあいろんなことが出来る。
Dashboardの波のエフェクトでおなじみですね。
Quartz Composerと同じフォルダに入ってるCoreImageFunhouseも画像にエフェクトかけられます。

ただQCで使うにあったては、何かと面倒くさい。
Image→IU→Renderer系のPatchという感じに繋げばいいんだけど。
1、繋ぎ替えが面倒
2、数が多過ぎて把握できない。
3、繋いだだけでは表示されないものもある。
等々。
3の原因としては、
生成されたImageをCrop使って切り取りしなければ表示されないPatchが結構ある。
BackgroundにもImage繋げないと表示されないPatchが結構ある。
この2つが多いと思います。
で、原因が分かると、ますます
1、繋ぎ(ry
2、数が(ry
となってきます。

ここでまたMultiplexerの登場です。
こんなかんじ、

iubenri.jpg

それぞれのUnitを前回同様Enable(ていうかオンとスルー)にしておいて(←これは別にしなくてもいいけど)、
Muntiplexerでまとめる。
Image DimensionsでImageの幅と高さを拾って、Cropで切り取って出力。
でマクロパッチにする。

超便利!

手直ししてるからUpはまた今度。
posted by qtz(戻) at 03:37| Comment(0) | TrackBack(0) | Tool | このブログの読者になる | 更新情報をチェックする

2005年10月03日

Renderer系のPatch以外にもEnableポッチをつける

今回、厨ながらシーケンサーもどき作ってみて、Multiplexer超便利!!なことに気がついた。
で、利用法の一つ。

まず、InputSpilitter呼び出して、Boolean型にする。
でMultiplexerのSource Indexに繋げる。
Source #0は何も付けない。もしくはInputSpilitter使って素通りさせるようにする。
Source #1にPatchを繋げる。
Input Outputを適当にPublishしてMacroPatch化すればOK

例えばLFOならこんなかんじ
lfoenable.jpglfoenable1.jpglfoenable2.jpg

Counterならこんなかんじ
couterenable.jpg
posted by qtz(戻) at 21:11| Comment(0) | TrackBack(0) | Tool | このブログの読者になる | 更新情報をチェックする

2005年09月27日

任意の4点を指定して、動かす。

前に四角に動かそうとした時の、Interpolation使って失敗した奴の続き。

最初は、repertをnoneにしたInterpolation4つ作って、Stopwatchで動かしたのをMuitiplexerでまとめて、Counterか何かでIndex変えて、、、
みたいなことしてたけど、同期が上手くいったり、いかんかったりして、挫折。

次は、MultiplexerやめてMathのAddで全部足すことにして、それだと、End Valueで止った分だけダブって加算されていくので、
あらかじめその分を引いた座標へ動かすようにした。
で、一周めは上手くいくんだけど、二周め以降を考慮してなかった為におかしくなる。
最初の点だけの問題なので、その辺考慮すれば上手く逝きそうだけど、腕がねぇ。挫折。

で、最初のに戻って、考え直す。
4つのInterpolationをMultiplexerでまとめるんじゃなくて、
Multiplexrで4つの座標を作って、1つのInterpolationを4通りに動かしたほうが上手くいくんじゃないか?
で、出きたのがこれ。Clipに入れて使ってくださいな。
4Points.qtz
最近Clipばっか作ってるな。

Java scriptはおろか何のプログラムの知識も無いので、ある部品をこねくり回すしか無いんだってば。
posted by qtz(戻) at 23:15| Comment(0) | TrackBack(0) | Tool | このブログの読者になる | 更新情報をチェックする

あと時計つくった。

System time とDate Formater繋げていろいろやってみた。
time.jpg

かっこわるー
time.qtz
posted by qtz(戻) at 15:20| Comment(0) | TrackBack(0) | Tool | このブログの読者になる | 更新情報をチェックする

せっかく作ったClip使っていろいろ作ってみた。

くるくる回る板を作って、同じものを45°ずつ位相ずらして計8個つくった。
spin.jpg

spin01.qtz


4個ずつ回る円の大きさを変えて、まん中に玉置いた。
spin2.jpg

spin02.qtz

Iteratorで増殖。いろいろ揺らした。
spinn.jpg

spin03.qtz



良く考えたら、一番上で8個同じもの作らなくても、Iteratorで増やせばいいじゃないかと気がついた。
単純にカレントポジション掛ける360すると一つ重なってしまうので、ちょっと工夫。
spin04.qtz


まあいろいろ踏まえて、スクリーンセーバー。
neon.jpg

neon.qtz
posted by qtz(戻) at 15:01| Comment(0) | TrackBack(0) | Tool | このブログの読者になる | 更新情報をチェックする

2005年09月22日

四角に動かしたい。

書いた記事が消えたので、残った画像を元に端折って。
やりたいことはこんなこと。
squgoki.jpg

で、MIDIで動かすのが楽なんだけど、Quartz Composer内部でやりたい。

1、Interpolationのカーブを自分で書く。
直線にならないが、沢山ポイント打つことで、近似的な形になる。

interpocvx.jpginterpocvx.jpg

2、辺ごとに別のInterpolation作ってまとめる。
まとめるにはMultiplexerを使う。
これはソースを複数繋いで、Index Numberで指定されたソースだけ出力する。
multip.jpg
いいかんじの所まで作れたが、もう一歩。
腕が無ぇ。今度また作る。

4、三角波の頭をクリップさせる。
Rangeを使い、Phaseをズラすことで見事成功。
マクロパッチにしてみた。
squaremove.qtz

Clipsフォルダに入れて使ってみて下さい。
square.qtz



試行錯誤した割りに、すんなり出きてしまった。
クリップにしたけど、同じもの作ってる人いるんじゃないかな?
それぐらい中身は単純だよ。
posted by qtz(戻) at 01:46| Comment(0) | TrackBack(0) | Tool | このブログの読者になる | 更新情報をチェックする

2005年09月20日

で、Stopwatchを使う。

こんな感じで各キー別に割り振ってもいいし。
stopwatch1.jpg

こんな感じで押す度にスタート、ストップ、リセットを繰り返す。でもいいと思う。拍数で振り分けた時と同じやり方。
stopwatch2.jpg



で、こうやって繋げばディレイになるね。
delay.jpg
ConditionalのConditionをis equal、Second Valueを直前のInterpolationのEnd Valueにしておく。
するとInterpolationのDuration分だけ遅れて二つ目のStop Watchが動き出す。
posted by qtz(戻) at 01:39| Comment(0) | TrackBack(0) | Tool | このブログの読者になる | 更新情報をチェックする