意外と簡単!AfterEffects エクスプレッションの使い方

こんにちは!横山です!
もうそろそろお盆ですね。 皆さんは夏のご予定はありますか? 海に行ったり実家に帰ったりするかと思います。 エレファント社員も予定は様々のようです。
早速ですが、エディターとして仕事をしていく中で、「あれ作って」「これ作って」と、やったこともない注文をよく受けます。 その度に色々新しい技術を覚えていきます。 YouTubeなどでAfterEffectsを使ったチュートリアル動画がたくさんあり、僕も参考にしています。 でも、いつまでも参考通りに制作出来るわけではありませんよね。特にエクスプレッションはプログラムの知識と理解がないと自分で作成するのは難しいです。 エクスプレッションについて簡単に説明すると、スクリプトを書いてアニメーションをプログラムする機能です。 そこでエレファントのエディターである僕が参考動画を応用し、自分で作成したエクスプレッションを紹介したいと思います。
今回は、「数字を任意の数値に変化させていくエクスプレッション」を紹介します。 例えば0から100までを1分で上昇させたり、50から20までを3秒で減少させる等です。 検索すればすぐ出てくるとは思いますが、今回紹介するのは、数値が4桁目に突入したらコンマが自動的に付くエクスプレッションです。

まずヌルオブジェクトを作成し、エフェクト>スライダー制御をかけます。

nullslider

(画像をクリックすると新しいウィンドウで開きます。)
次にテキストレイヤーを作成します。テキストのソーステキストをalt/optionキーを押しながらクリックします。

sourcetext

そしてテキスト欄に以下のスクリプトを貼り付けます。


hasCommas = true;
function addCommas ( s ){ if( s.length <= 3="" return="" s="" else="" substring="" 0="" addcommas="" length="" br=""> } function reverse( s ){ newStr = ""; for(i = s.length-1; i >= 0; i--) newStr += s.charAt(i) return newStr; }
val = Math.round(thisComp.layer("ヌル 1").effect("スライダー制御")("スライダー")); if( hasCommas ) reverse (addCommas(reverse( val + "" ))) else val


これでスライダー制御で設定した数字が表示されるはずです。 result

例えば1から1000までを15秒で変化させたい場合は… スライダー制御で1の値でキーフレームを打ち、インジケータを15秒後に移動させ1000と入力してキーフレームを打ちます。 example

どうでしょう、4桁目に1000に突入するとコンマが自動的につきますね。
これを応用してこんな映像が作れます。(※音声はありません)

みなさんも今回紹介したエクスプレッションで映像を作成してみて下さい!

横山勇樹