2012年1月16日月曜日

AE 連番文字をパカパカ


文字がランダムにパカパカ切り替わり→決まり文字へ、というよくあるパターン。
タイムリマップとエクスプレッションを使ってやってみます。

例えば、アルファベットの場合、A~Zの連番26枚を用意し読み込みます。



コンポジションに入れて、タイムリマップを適用します。
タイムリマップにエクスプレッションを適用し、↓をコピペします。

 fps=30;
sn=source.name;
du=footage(sn).duration*fps;

start=1; //ランダム範囲の開始フレーム
end=du; //ランダム範囲の最終フレーム
koma=1; //何コマ落ちでパカパカするか

if(marker.numKeys){
    marker1=marker.key(1).time;
    kimari=marker.key(1).comment;
}
else{
    marker1=100;
    kimari=1;
}

start=start-1;
hold=koma/fps;
seed = Math.floor(time/hold);
seedRandom(seed,true);
run=random(start,end)/fps;
fix=(kimari-1)/fps;

time<marker1? run:fix


再生してみると、1コマおきにランダム表示されていると思います。
次に適当な場所にレイヤーマーカーを1つ作って、決めで使いたいフレーム番号をコメントに入れます。例えばGを使いたい時は7。
も一度再生すると、コメントの位置にくるとGでストップします。

また、
本文の中、下の3行はオプションとして書き換えることができます。

start=1; //ランダム範囲の開始フレーム
end=du; //ランダム範囲の最終フレーム
koma=1; //何コマ落ちでパカパカするか

読み込んだ連番のすべてのフレームを使ってランダム表示したい時はそのままで良いのですが、
特定の範囲、例えばC~Fだけを使いたい!という場合は開始の「1」を「3」へ、最終の「du」を「6」へ変更してみてください。
またkomaはコマ落ち数で、5に変更すると5枚おきに文字が切り替わります。現状はフルフレームの「1」ですね。

もろもろ設定が終われば、レイヤーをコピーして、レイヤーの位置、マーカーを編集すればOK。

ちなみにリンクのムービー「PAKAPAKA」のタイムラインはこんな感じ↓






タイミングの編集くらいなら、レイヤー数が増えても比較的編集しやすいと思います。



 --追記--
今回は、外部で文字ファイルを用意する前提での方法ですが、
文字の扱い的にフォントにこだわる必要がなく、決まり文字のタイミングもおおざっぱで良い場合などは、AE内のテキストレイヤーでアニメーターオプションを使った方法がてっとりばやいですね。
一応、 AEサンプルです。

0 件のコメント:

コメントを投稿