
コラップス
10月 11, 2008ベクトル画像をAEに読み込んで使う時にはほとんどコラップスして使うわけだけど、一度それらをプリコンポーズしてコラップスするとエフェクトもかけられないし合成モードも使えない。
まぁプリコンポーズしなくて済めばそれが一番楽なわけだけど、レイヤーが多いとプリコンポーズしないと非常に扱いにくい。
そんなわけで解決策を考えてみた。
要はコラップスしてエフェクトがかけられないコンポジション(下図comp1)をもう一回プリコンポーズしてしまえばいい。
で、そのコンポジション(下図comp2)と、最上位のコンポジションの空間を一致させればいいわけだ。
下がその構造図。

構造図
黒ベタ内の「C」はコラップスがON、「3」は3DレイヤーがONを示し、矢印はリンク先を示す。リンクにはエクスプレッションを用い、全てのトランスフォームパラメータを参照させる。
ヌルでベクトルフッテージを含むコンポジションにアニメーションをつける。
.
これを複製して使うにはエクスプレッションとレイヤーのネーミングを工夫すればいい。
複製時の手数を少なくするため、comp2とヌルを単純に複製すればリンクがつながるようにしたい。
(comp2は丸ごと複製するため、プロジェクトウィンドウで複製する)
そのためには、comp1とヌルをつなぐリンクを動的に変化させなければならない。
まず、comp2の末尾に「_1」を付加し、これを複製することで「comp2_2」「comp2_3」・・・と値が増加するようにする。
次にヌルも「null_1」に変更し、「null_2」「null_3」・・・と値が増加するようにする。
あとはcomp1のエクスプレッションでcomp2_??の名前を取得して、末尾の値が同じヌルを参照するようにすればいい。
具体的には
val = thisComp.name.split(“_”, 2)[1];
nm = “null_”+val;
でヌルの名前を出して.layer(nm)で参照できる。
ちなみに、複製するときはヌルを複製してからコンポジションを複製しないとエラーが出る。