*『AE目黒区からの刺客』2011年05月16日記事の再掲記事です。
調べたところ、今はこのかたのエクスプレッションで簡単にできそうです。
ukramedia『Tip 002 – toCompVec() in After Effects』YouTube
厳密には、不透明度に
if( toCompVec([0,0,1])[2] > 0 ){100;}
else{0;}
です。
CC CylinderやCC SphereはAEで曲線面を表現できる数少ない立体エフェクトなんですが、CC Cylinderでフタ付き円柱をAEだけで作ろうかな、と思ったときに「なんとCC Cylinderにフタをする機能が付いていないではないか」ということに気付き、なんとか作ってみました。
作り方
新規コンポに平面レイヤーを作って「CC Cylinder」を適用する。今回は1920×1080でつくりました。
CC Cylinderによって横軸が丸まっているので、シリンダーのフタ部分の円周は1920になっている。
とするとフタの直径は(円周=直径×3.14なので、直径=円周÷3.14だから)
611.4649681528662となる。なんか微妙な端数が出ましたが、足りなかったらあとでスケールで大きくするということで
とりあえず611で作ります。
直径611のフタをつくるので、611×611のコンポを作って平面レイヤーからマスクで円を作ります。
ここがキモなんですが、まずレイヤーを3Dにします。そしてレイヤーをコピーして2つにします。
下がフタになるレイヤー、上が裏面を見えなくさせるためのレイヤーです。
で、上のレイヤーの大きさを110%くらいにして、Z軸の位置を1にして、モードを「シルエットアルファ」にします。これによって、裏面を向いたときだけシルエットアルファにしたレイヤーが重なることにより、フタが見えなくなります。
元のコンポに戻って、カメラを作ってとりあえずフタ部分が見やすい位置にカメラを移動させます。
3で作ったフタをコンポに2つ入れて、上はY軸0の位置、X回転-90度、下はY軸1080の位置、X回転90度にします。
このままではフタコンポでやった作業が適用されないのでフタ2つをコラップストランスファームします。
第2のキモなんですが、コラップストランスファームすることによって、フタコンポ内の「シルエットアルファ」がコンポ内で完結せず、下のレイヤーも隠れてしまいます。なので、フタ2つに適当な、何も効果がないエフェクト(エクスプレッション制御等)を適用します。これにより、「シルエットアルファ」の効果の判定(フタが表か裏か)はこのコンポ内でするが、適用はフタコンポのみ、という状態にできます。
ちなみに筒の直径を変えたい場合はCC CylinderのRadiusの%を変えて、同じ値をフタコンポレイヤーのスケールに与えます。
上記処理をしていない CC Cylinder とフタ。