« yacc/lex再入門 | トップページ | ◇技術的制限を理想 と勘違い:yaccを継ぐ者 »

AfterEffectsスクリプトのHelloWorld

メモです。

AfterEffectsにはスクリプト機能があります。

ところが、これが、なかなか具体的なことが分からない。

スクリプティングガイドにも具体例が全くない。

そこで、HelloWorld!

とにかく、スクリプトを動かして、何かするというだけのものです。

 ビデオ画面の上にテキストをスクリプトで重ねる。

スクリプトファイルは、どういう名前で、どこに置くか

スクリプトファイルはどこにおいても良く、XXX.jsxという名とする。
AEのプログラムの置いてある場所(C:\Program Files\Adobe...")にある Scriptsの下に置くとメニューに現れるようになります。

文字コードUTF-8で作成されたJavaScript様のテキストファイルです。

AEでどう起動するか

[ファイル]->[スクリプト]->[スクリプトを実行]
とすると「ファイルを開く」ダイアログがでます。

ファイルを選択し、[開く]を押すと、スクリプトが動きます。

テキストレイヤーを作成しHelloWorldを出すスクリプト

例えばファイル名をHelloWorld.jsxとし内容として次の1行を書きます。

app.project.activeItem.layers.addText("HelloWorld");

これを実行すればテキストレイヤーが作成され、HelloWorldの文字が出ます。

テキストレイヤーが作成される前の画像
テキストレイヤーが作成される前のレイヤー構成

テキストレイヤーがスクリプトにより追加された画像
テキストレイヤーがスクリプトにより追加されたレイヤー構成

文字の大きさなどの属性は一切指定していませんので、文字設定プロパティ がそのまま反映されます。
もちろん、(多分)スクリプトで指定することができます。

なお、このスクリプトは起動時にレイヤーがどれか選択されている必要があります。

 マスク制御をスクリプトで行う。

次のスクリプトで、マスクをかけることができます。


var maskShape      = new Shape();
maskShape.vertices = [[150,50],[450,150],[260,400]];
maskShape.closed   = true;
var myLayer = app.project.item(1).layer(1);
myLayer.mask.addProperty("mask")
var myMask    = myLayer.mask(1);
var maskProperty= myMask.maskPath;
maskProperty.setValue(maskShape);

マスクをかけた画像
マスクプロパティの作成されたレイヤー

なお、このスクリプトは起動時にレイヤーがどれか選択されている必要があります。

 とにかく動くものをということで載せました。

今のところ、maskやmaskPathその他のキーワードがなかなかドキュメントで調べる ことができません。

「動く」サンプルも見つからず、ここに載せたものは、抽象的なコードの 断片を継ぎ合わせ無理やり動かした、というレベルのものです。

ま、動かすことができれば後は何とか調べていけるでしょう。

|

« yacc/lex再入門 | トップページ | ◇技術的制限を理想 と勘違い:yaccを継ぐ者 »

トラックバック


この記事へのトラックバック一覧です: AfterEffectsスクリプトのHelloWorld:

« yacc/lex再入門 | トップページ | ◇技術的制限を理想 と勘違い:yaccを継ぐ者 »