▼処理の流れ
テキストファイルを読み込み、その内容をエクスプレッションとして、選択したレイヤーに、割り当てる。
クリエイター手抜きプロジェクト (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つのレイヤーが、一番下のレイヤーに追従するように動く。