本記事ではAfter Effectsに関する実際に使ってみて便利だったエクスプレッションをまとめて紹介いたします。
エクスプレッションのデバッグログを表示する方法
エクスプレッションを書いているとこの値、取得できているかなーと確認したいことがあります。いちいちテキストへ値を表示させてもよいのですが、ESTKにログを表示させる設定をしてみました。
- AEを起動しCtrl+Alt+;から環境設定を開く
- 環境設定をエクスプローラーで表示
- 設定が上書きされないように、まずはAEを閉じる(※AEを開きっぱなしだと、あとで閉じた時に環境設定が保存されて元に戻ってしまう)
- 環境設定のテキストを開き下記のパラメーターを1に変更
パス:C:\Users\<ユーザー名>\AppData\Roaming\Adobe\After Effects\バージョン\Adobe After Effects バージョン 環境設定.txt
192行目のEnableExpressionsDebuggingAtYourOwnRisk” = 1にします。

- AEを起動しAdobe ExtendScript Toolkit CCも起動
- テキストを作成して下記のエクスプレッションを挿入
str = "CGメソッド";
$.writeln(str);以上です、ESTKのコンソールにログが表示されます!

エクスプレッションで詰まった時にデバッグログを確認できるのはとても便利ですね!
ちなみに毎フレーム、ログが吐き出されるので扱いには注意したほうが良いです。
エクスプレッションを外部参照する方法
エクスプレッションを外部参照できると知りまして、試してみました。
外部参照エクスプレッション
- まず適当な場所(デスクトップ)に下記の内容のテキストを作成
var text1 = "おはよう";
var text2 = "こんにちは";
var text3 = "おやすみ";- AEを立ち上げ、テキストを作成し、ソーステキストのエクスプレッションを作成(目玉マークをAlt+クリック)
- 下記のエクスプレッションを挿入(※パスのバックスラッシュは1個ではなく、2個つけていくこと!)
$.evalFile("file://C:\\Users\\min\\Desktop\\text.txt");
text.sourceText = text1;これで「おはよう」と表示されます。text3にすると「おやすみ」と表示されます。

MACの場合は下記のようなパスになります。
$.evalFile("/work/text.txt");
text.sourceText = text1;カラーの値の場合
RGBの値は変数を下記のような感じで入力すると簡単です。
var color1 = [255, 0, 0, 255] / 255;
var color2 = [0, 255, 0, 255] / 255;
var color3 = [0, 0, 255, 255] / 255;
スライダーの値で変数を変化させる場合
- ヌルを作成し、エフェクト → エクスプレッション制御 → スライダー制御を作成
- テキストのエクスプレッションは下記を参考
num = thisComp.layer("ヌル 1").effect("スライダー制御")("スライダー");
$.evalFile("file://C:\\Users\\min\\Desktop\\text.txt");
if (num == 1) text.fillColor = text1;
if (num == 2) text.fillColor = text2;
if (num == 3) text.fillColor = text3;あとはスライダーの値を変えていくとテキストの内容が変化します。
コンポジション名で変数を変化させる場合
コンポジション名(例:コンポ_1)を取得して_(アンダーバー)で区切って、右側の数字を取得、数字が一致したら、値が変化します。
var str = thisComp.name.split("_")[1];
num = Number(str);
$.evalFile("file://C:\\Users\\min\\Desktop\\text.txt");
if (num == 1) text.sourceText = text1;
if (num == 2) text.sourceText = text2;
if (num == 3) text.sourceText = text3;外部から変化する値(天気とか)をこのように外部参照して、動画出力するなどしても面白いかもしれません。
まとめ
- $.writeln()でESTKにデバッグログを表示できる
- 環境設定でEnableExpressionsDebuggingAtYourOwnRiskを有効にする必要がある
- $.evalFile()でエクスプレッションを外部ファイルから読み込める
- スライダーやコンポ名で動的に値を変更可能
参考:http://ae-users.com/jp/tips/2012/06/エクスプレッションをestkでデバッグ
参考:https://sites.google.com/site/annamillersclub/expression-1/エクスプレッションの外部ファイル化
