Omino PythonはAfter EffectsというプラットフォームでProcessingやActionScript的なことをしたい!ということで開発されたプラグインで、名前通りレンダ時にPythonスクリプトを読み込みそれに従って描写するプラグインとなっています。当初は有償だったんですが現在はフリーになっていて、今のところMac版のみが出ています。上記の動画は、インストール時にいくつかサンプルがついてくるんですがそれをまとめたもので、こんな感じのことが出来るというわけです。
仕様
スクリプトファイルは”/ompy/ompy[00-99].py”という形にしておく必要があります。パラメータは浮動小数点数が8つ、ポイントが4つ、カラーが4つ、パスが2つ、レイヤーが4つまで指定できます。パラメータの過去の値は取得できないので、描写が過去の値に依存するようなものを作るのは難しいです。描写にはPyCairoが使用されているので、基本的にはPyCairoのAPIとPythonの標準ライブラリ等を使用して処理していくことになります。

Processing-likeに使う
最初に初期化(setup)してあとは更新(update)、描写(draw)を繰り返す系のことをProcessing-likeと表現してますが、こういう使い方をする際に問題となるのは各フレームの状態をどう保持するかということです。guponさんが以前スクリプトで描画するシェイプレイヤーでシェイプレイヤーとスクリプトでProcessing-likeなことをしていまいたが、ここではキーを打ってベイクすることで各フレームの状態を保持しています。そうやるのが自然なんですが、このプラグインにはそういった機能はないので工夫する必要性があります。

普通に使う

PyCairoはpngを読み込めるので、あるフォルダ内を走査してスライドショー的に画像を次々と表示させるようにしたり、

テキストファイルを読み込んで行ごとにテキストを表示させたり出来ます。
後は、csvを読み込ませてグラフを描かせたり

xmlのいい例が思い浮かばなかったのであれですが、例えば某動画投稿サイトのランキングのRSSを取得、サムネイルをダウンロードしてランキング形式に表示させるみたいなことも出来ます。ただサムネイルはjpgなのでPyCairoに読み込ませるためにpngに変換する必要性があります。変換の仕方は色々あると思うんですが、この例のようにネット上から画像を大量に拾ってきて処理したいっていう場合はフォルダアクションを使うのが一番手っ取り早いと思います。保存先のフォルダにフォルダアクションの”Image – Duplicate as PNG.scpt”を設定すれば自動的に変換してくれます。pngは”PNG Images”フォルダ内に出力されるのでそのフォルダを走査すればOKです。
描写とかどうでもいい


画像のように、フレーム番号と時間を記録するだけのスクリプトを作って、レンダリング時に回して差分をとれば1フレームあたりの大体のレンダリング時間がわかるので、後でここは重かったよなぁと悦に入ることができます。また同様に、例えば30fごとに今何フレームをレンダリングしているのかをFTPでアップロードしてその値に応じてデザインを変えるといった、AE連動型ウェブデザインとか色々やりようはあるんじゃないかなと思います。ただどうせ描写しないんだからプラグインをオフにしとこう、ヌルに適用しよう、とかしていると、レンダ関数自体が呼ばれずスクリプトが実行されないので、小さな調整レイヤーを作りそれに適用するなりして気をつける必要性があります。
最後に
今回の例では使ってませんが、パスやレイヤーもパラメータとして使っていけば、アイディア次第で様々なことが出来ると思うので皆さんの駆使を期待しています。http://ae-users.com/files/uploader/src/up0048.zip(スクリプト等)
この投稿への反応はまだありません。
気軽にあなたのコメントやトラックバック、Twitterでのつぶやきを投稿してみてください。
コメントをどうぞ!