やりたい事
外部のテキストファイルを一行毎にテキストレイヤーにしたい。
用途
リリックビデオやテロップなどの量の多いテキスト編集時
#コード
function inport(){
var fileName = File.openDialog("Select Text file","");
var myFile = new File(fileName);
if (myFile.open("r")){
var myText = "";
while(!myFile.eof){
myText = myText + myFile.readln() + String.fromCharCode(13);
}
var compName="Lyric"
var creComp=app.project.items.addComp(compName,1920,1080,1.0,600,29.97)//コンポジションを作成
var text_array=myText.split (String.fromCharCode(13));
for(var i=0; i<(text_array.length-1); i++){
creComp.layers.addText(text_array[i]);
}
}
}
inport()
2018/06/27 更新
最近また同じことをやる事があったので、少しプログラムを更新しました。
といってもやっている事は全く同じですが・・・
コッチの方がプログラム的には読みやすそうなので、更新しておきます。
var lyric = []; //歌詞を一行毎配列に入れる
//ファイルを読み込んで配列に入れる作業
function readToLyric(){
var fileName = File.openDialog("Select Text file","");
var myFile = new File(fileName);
if (myFile.open("r")){
var myText = "";
while(!myFile.eof){
var myText = myText + myFile.readln() + String.fromCharCode(13);
}
var text_array=myText.split (String.fromCharCode(13));
for(var i=0; i<(text_array.length-1); i++){
lyric.push(text_array[i]);
}
}
myFile.close();
}
function addText(text){
var myComp = app.project.activeItem;
var cNText = myComp.layers.addText(text);
}
readToLyric();
for (i =0; i<lyric.length; i++){
addText(lyric[i]);
}