橋本 Hashimoto   Baku

橋本 Hashimoto   Baku

ISF4AE

baku89/ISF4AE - GitHub

After Effectsのプラグイン。Interactive Shader Format 形式で記述されたGLSLコードを、動的に読み込みエフェクトとして使うことができる。「エフェクトを作るためのエフェクト」。

かくいうAdobe自身も、CS6までは独自のシェーダ言語 PixelBlender を開発していました。Photoshop、After Effects、Flashとを横断して使うことのできるエフェクトをアーティストが気軽に書くことができたのですが、どういうわけかサポートが打ち切られてしまいました。

同時に、このプラグインで読み込むことのできるエフェクトライブラリ BKISF の開発もしています。

#Higher-order_functionality


書きかけた解説記事

久々にAfter Effectsを本来のコンポジットツールとして使う頻度が増えてきました。Adobe製品を真っ当につかうと色んな意味でしんどくなる体質なので、ツール開発を並行することで心身のバランスを保つようにしています。そんなわけでこの数週間は ISF4AE というプラグインを作っていました。

そもそも自分のための日記なので、誰に向けてわかりやすく解説記事を書いているつもりもないのですが、せめて自分がAEについて課題に感じていることが普段AEを使われているモーション・デザイナーの方もにざっくりと伝われば嬉しいので、このプラグインで何をやらんとしているか頑張って書いてみます。「本当に頭のいい人は難しいことをわかりやすく説明できる」のが真実かはともかく、少なくともその観点ではぼくはかなり頭が悪い自負はあるので、仮にわからなかったとしても、読んでいる方に非はありません。悪しからず。

ISF4AEは、一言でいうと「エフェクトを自作・共有しやすくするためのエフェクトプラグイン」です。それ自体がなにか具体的なフィルターとして作用するのではなく、ISF(= Interactive Shader Format)とよばれるテキスト形式で記述されたエフェクト情報を読み込むことで、さまざまなエフェクトに擬態することができます。いわばカメレオンのようなプラグインです。

シェーダー(Shader)とは、GPUで画像処理をするための専門のプログラムです。3DCGのレンダリングにおいて、ポリゴンに陰影をつけるために使われていたことからそう呼ばれています。そしてISFとは、VJソフトのVDMXを開発しているVidvox社によって提唱された、インタラクティブコンテンツや映像編集などソフトを越えてGPUエフェクトを記述するための共通規格です。というと仰々しいですが、実体はただのテキストファイルでして、シェーダー言語によって記述されたプログラム本体と、パラメーター情報などのメタデータから成ります。簡単な例でいうと、以下はAEの「塗りつぶし」エフェクトのISF版です。

/*{
  "INPUTS": [
    {
      "NAME": "fillColor",
      "TYPE": "color"
    }
  ]
}*/

void main() {
  gl_FragColor = fillColor;
}

上半分がの /* ~ */ で囲われた区間が、エフェクトコントロールパネルに表示する数値、位置、色といったパラメーターの一覧です。このISFをぼくのプラグインをつかってAEに読み込んだ結果、こういうエフェクトに化けます。なんとなく対応関係がわかるかと思います。

現状ISFは、VDMXはもちろん、MadMapper、Motion、TouchDesignerといったツールによってサポートされています。そこに我らがAfter Effectsを加えたかったというわけです。