Quartz Componser の隠しパッチ RSS Parser

Quartz Composer でtumblrのRSSを読んで画像を出すっていうのを題材にいじってみた。
Re: Quartz Composer HTTP GET-ting XML

If your XML is structured like an RSS file then the best way is to use the RSS patch. If not, there isn’t an easy way to do this in Tiger. You would have to write an app that downloads and parses the data and pass it to your composition.

Quartz Confuser « Important Shock

I can say without a doubt that Quartz Composer is nothing more than a toy. For anything more complex than an RSS screensaver, the visual data mapping becomes a chore to connect and use.

と書かれている通り RSS feed パッチ(Quartz Composer用語ではpipesのモジュールに当たるものをパッチと呼ぶらしい)でしかリモートファイルを読めなくて、しかも勝手に中に入っているタグを捨てるため文字しか読み出せない。現状では上記の通りネイティブのコードを書いてプラグインを作らないとリモートからなんか読んできて遊ぶみたいなのは無理。

と思ったら AwkwardTV Community & Forums • View topic – Using RSS in Quartz Screen Savers

After a lot of frustration with the RSS Feed patch not working in Quartz Composer for screensavers running on the AppleTV, I’ve finally found out how to get it going. Fortunatly, it’s very simple. You can be damn sure that if it wasn’t simple, I wouldn’t have found it!

defaults write com.apple.QuartzComposer.editor QCRegisterPrivatePatches -bool true

This enables many new and interesting hidden patches to be avaliable in Quartz Composer. When you start up QC, take a look at the new patches.


defaults write com.apple.QuartzComposer.editor QCRegisterPrivatePatches -bool true

を実行したら隠しパッチが使えるようになるって!AppleTVだけだったりしないのかなと恐れつつやってみたらふつうのTigerのQuartz Composerでも出てきました。どっからこんな情報仕入れてくるんだろう。


This is intresting, the RSS Parser patch does not strip out the html tags from an RSS article.

とあるとおり、新しく追加された RSS Parser をつかえばHTMLタグもちゃんと取り出せました。


でもやっぱりまじめにつくるとなると、当然微妙な位置調整とかが必要になる。でもそれはグラフィカルにできなくて、むだに足し算とか引き算とかを繋いで計算する、みたいなことになる。そういうのこそマウスでこの辺に置いてよくらいで指定したい。足し算引き算をMathパッチで計算させるのは大変っていう部分はjavascriptパッチで全部置き換えちゃえば楽そう。とりあえずjavascriptパッチに全部データを流し込んでjsで全部計算して出す、っていうのがプログラマには楽かもしれない。コードはjsでおいしいとこだけパッチを使うのがよさそう。Flash + AS みたいなかんじなのかな。

Quartz Composer に比べるとpipesはいいとこだけうまくぱくってそれをWebでよく再現している。

About this entry