Hope is a Dream. Dream is a Hope.

非公開ブログは再開しました。

After Effects スクリプト | テキストの改行

スライドショーの自動化プログラムを製作中。 テキストファイルから一括でコメント読み込ませて、 テキストオブジェクトにしているんだが、 結婚式のスライドショーの場合は、"ココ”で二行にしたい!と言った要望があるので、任意の場所で改行するための方法を調べた。

jsで改行するためのコード

aftereffectsのテキストのエクスプレッションですが、 コンポジ… - 人力検索はてな

改行するには、改行コードをはせめばよいのです。 とても簡単。 コードは下のようになる。

text.sourceText=(test1 + String.fromCharCode(13) + test2);

jsに改行する位置を教える。

あらかじめ、スライドショーへのコメントが書かれたファイルmessage.txtを作っている。 message.txtは各行が各スライドページに対応していて、たとえばスライドショーページが30枚であれば、message.txtは30行になる。 そのため、各スライドページのコメントは一行に納めなければ行けない。つまり改行ができない。これじゃこまる。

そこで、改行を入れたい場所に%nとおまじないを書いておき、テキストの呼び出しの際に%nを改行コードと変更している。

// message.txtへのpathを渡して、各行ごとのテキストの配列を得る
list_message_txt = parseTextFile(PATH_MESSAGE);


// テキストファイルのインポートとパース関数
//***********************************************//
var parseTextFile = function(PATH){
    //ファイルオープン
    var fileObj = new File(PATH);
    var txt_List = [];
    var line=1;
    // ファイルオープンのおまじない
    if (fileObj.open("r")){
        // ファイルの最後まで各行を読み出す
        while(!fileObj.eof){
            // 各行のテキスト
            var s = fileObj.readln();
            // 任意の場所に'%n'と書いておき
            // 改行コードと変更する。
            txt_List[line] = s.split("%n").join(String.fromCharCode(13));
            line++;
        }
    fileObj.close();
    }else{
        // オープンできなかったときのエラー処理
        alert("parseTextFile::ERROR::ファイルがひらけませんでした::"+PATH);
    }
    return txt_List;
}

これで、任意の場所に改行が入ったテキストの配列を扱える。あとは、このテキストを各画像に配置していけば完成である。