映像制作ゆる Advent Calendar 2025 の13日目の記事です。
い
After EffectsはCC2019から、エクスプレッションのエンジンを従来のExtendScriptのエンジンからモダンなJavaSriptのエンジン(Windows版はV8)へ切り替えられるようになった。そこら辺の話をメインに、エクスプレッションに関して書いていく。
ExtendScriptの話
ExtendScriptはES3をベースにしているが、独自拡張も多い*1。代表例としてE4X*2があげられる。
var xml = 12;
xml.a.@foo; // bar
こんな感じで、JSX*3のようにXMLを扱える代物である。おそらくFlashのAction Script 3.0でES4の要素を取り入れたので*4、それが回り回ってExtendScriptにも取り入れられたものだと思われる。
エクスプレッションに関わってくる話だと、演算子のオーバーロード*5がある。
function V(x, y) {
this.x = x;
this.y = y;
}
V.prototype["+"] = function (v) {
return new V(this.x + v.x, this.y + v.y);
}
var v = new V(3, 4);
var w = new V(4, 5);
v + w; // => new V(7, 9)
のような感じで、演算子の挙動を変えられることが出来て便利である。この仕組みはAEで多分に利用されており、Objectの演算子があらかじめオーバロードされている。
そのおかげで、
2 * [3, 4, 5]; // => [6, 8, …