[After Effects]スクリプトを使用し、選択したレイヤーに、一括してエクスプレッションを追加する。

▼処理の流れ
テキストファイルを読み込み、その内容をエクスプレッションとして、選択したレイヤーに、割り当てる。

▼テキストファイルを読み込む方法は、↓のサイトを参考にする。
クリエイター手抜きプロジェクト (AfterEffects編)
		テキストファイルを読み込ませて処理を行う
http://www.openspc2.org/projectX/AfterEffects/0005/index.html
▼参考にする箇所

filename = File.openDialog("テキストファイルを選択してください","");
fileObj = new File(filename);
 if (fileObj.open("r"))
 {
 txt = fileObj.read();
 app.project.activeItem.layers.addText(txt);
 }

↑に引用したのは、テキストファイルを読み込み、その内容のテキストレイヤーを作るスクリプト。
このスクリプトの一部を変更し、以下のような処理になるようにする。
選択したレイヤーに対して、読み込んだテキストを、位置プロパティのエクスプレッションにする。

▼変更後のスクリプト

filename = File.openDialog("テキストファイルを選択してください","");
fileObj = new File(filename);
if (fileObj.open("r"))
{
	txt = fileObj.read();

	matome = app.project.item(1).selectedLayers;

	for (i in matome){
		matome[i].property("トランスフォーム").property("位置").expression = txt
		}
}

▼読み込み用のテキストファイルの内容
以下のスクリプトをメモ帳で適当な場所に保存し、↑のスクリプトを実行したときに読み込む。

thisComp.layer(thisLayer, 1).transform.position.valueAtTime(time - 0.1)

あとは、エクスプレッションを追加したいレイヤーを選択して、スクリプトを実行する。

▼例
レイヤーを5個つくり、一番下のレイヤー以外を選択して、ExtendScript Toolkitからスクリプトを実行する。

一番下のレイヤーには、移動するアニメーションをつける。
そうすると、残りの4つのレイヤーが、一番下のレイヤーに追従するように動く。

[After Effects]スクリプトを使用し、選択したオブジェクト全てに、エフェクトを適用する。

▼例:選択したレイヤー全てに、ブラー(ガウス)エフェクトを適用し、そのブラーの値を50にする。

▼手順
・エフェクトを適用したいレイヤーを選択する。

・ExtendScript Toolkitに以下のスクリプトを入力し、F5キーを押して、処理を開始する。

matome = app.project.item(1).selectedLayers;

for(i in matome){
	matome[i].property("エフェクト").addProperty("ブラー(ガウス)");
	matome[i].property("エフェクト")("ブラー(ガウス)")("ブラー").setValue(50)
}

↓こう入力しても同じ結果になる。

matome = app.project.item(1).selectedLayers
kazu = app.project.item(1).selectedLayers.length

for(i=0; i < kazu; i++) {
	matome[i].property("エフェクト").addProperty("ブラー(ガウス)");
	matome[i].property("エフェクト")("ブラー(ガウス)")("ブラー").setVAlue(50)
}

続きを読む

[After Effects]スクリプトを使用し、レイヤーにエフェクトを適用する。

レイヤーにエフェクトを適用するためには、addPropertyメソッドを使う。

▼例:1番目のレイヤーの、エフェクトプロパティに、ブラー(ガウス)エフェクトを適用する。

ExtendScript Toolkitを起動し、
プルダウンメニューで、ターゲットアプリケーションをAfeter Effectsにしたら、
以下のスクリプトを入力し、F5ボタンで実行する。

app.project.item(1).layer(1).property("エフェクト").addProperty("ブラー(ガウス)")

※スクリプトの記述方法は一つだけではない。↓のスクリプトは、どれも同じ結果になる。

app.project.item(1).layer(1)(5).addProperty("ブラー(ガウス)")

app.project.item(1).layer(1).property(5).addProperty("ブラー(ガウス)")

app.project.item(1).layer(1)("エフェクト").addProperty("ブラー(ガウス)")

app.project.item(1).layer(1).property("エフェクト").addProperty("ブラー(ガウス)")

※要は、プロパティを名前で指定するか、決められた番号(インデックス番号)で指定するかの違い。

続きを読む

[After Effects]スクリプトを使用し、選択した複数のレイヤーの開始時間を操作する。

▼このスクリプトについて
レイヤーを自動で並べてくれる、シーケンスレイヤー機能をスクリプトで再現する。
(アニメーション → キーフレーム補助 → シーケンスレイヤー)

▼用意
スクリプトを実行する前に、操作対象のレイヤーを選択する必要がある。

※スクリプトは、ExtendScript Toolkitから実行する。

▼スクリプト


sentaku = app.project.activeItem.selectedLayers

itibanme = sentaku[0].index
owari = app.project.activeItem.layer(itibanme).outPoint


for(i = 1; i < sentaku.length; i++){
	bangou = sentaku[i].index
	app.project.activeItem.layer(bangou).startTime = owari
	owari = app.project.activeItem.layer(bangou).outPoint
}

※appは省略可能
 app.project.activeItem.selectedLayers
 ↓
 project.activeItem.selectedLayers

▼スクリプトの処理の流れ。

①選択した複数のレイヤーの中から、一番上のレイヤーのアウトポイントを取得。

②一つ下のレイヤーの開始時間を、取得したアウトポイントの時間に移動する。

③移動したレイヤーのアウトポイントを取得。

②~③を、選択したレイヤーの数だけ繰り返す。
 
 
続きを読む