maemaewaterの日記

PHP/Python/JavaScript/C#/C++などによるプログラムに関することを主に書いています。

After Effects: エクスプレッション: パスを制御する

エクスプレッションでパスの座標を直接して図形が描けたら便利かもしれないということで、試してみました。

f:id:maemaewater:20190127201921p:plain
パスをエクステンションで作成

シェイプレイヤーを作成して、パスのところでエクスプレッションを追加します。そこに以下のように記述すると座標を指定してパスを制御することができます。

shapePath = content("シェイプ 1").content("パス 1").path;

let path = [
    [0,0],
    [200,60],
    [400, 200],
    [600, 20]
];
shapePath = shapePath.createPath(path, [], [], false);

shapePath;

1行目の

shapePath = content("シェイプ 1").content("パス 1").path;

では、パスのオブジェクトを取得しています。"シェイプ 1"や"パス 1"は作成したレイヤーに合わせて変更します。 次の行が大切なところで、新しくパスを作成しているのがここになります。 createPathというメソッドを呼び出していますが、ここの引数にそれぞれ、パスの座標などを入力しています。最後の引数のfalseは閉じていないパスを指定しています。

let path = [
    [0,0],
    [200,60],
    [400, 200],
    [600, 20]
];
shapePath = shapePath.createPath(path, [], [], false);

パスの座標は変数pathに配列で指定しています。

createPathについてはAdobeのマニュアルに詳しく書かれていますので、更に詳しく調査するときには以下のページがとても参考になります。

helpx.adobe.com

最後の行は、shapePathを出力にしますよとうことで、

shapePath;

と書いています。