aftereffects で、外部のテキストファイルのテキストを表示させたいのですが、どんなエクスプレッションを書くのがもっともシンプルでしょうか?

例えばsample.txt というファイルがあって、その3行目のテキストをAEに表示させたいのです。
もっともシンプルなやり方を教えて下さい。cs5.5です。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/11/14 18:50:33
  • 終了:2012/11/20 06:44:56

ベストアンサー

id:fiwa No.3

fiwa回答回数417ベストアンサー獲得回数2492012/11/19 20:19:53

ポイント100pt

読み込ませるテキストファイルを次のように作っておきます。

var test1="ほにゃらら";
var test2="ははは";
var test3="ほげほげ";

このファイルをルート直下につくったexpressionというディレクトリに入れておきます。

読み込ませたいテキストレイヤーのエクスプレッションから、次のような感じで呼び出します。

//Windowsの場合
$.evalFile ("file://c:\\\\expression\\sample.txt");
text.sourceText=(test3);
//macの場合
$.evalFile ("/expression/sample.txt");
text.sourceText=(test3);

その他の回答(2件)

id:oil999 No.1

oil999回答回数1728ベストアンサー獲得回数3202012/11/14 18:56:03

ポイント100pt

こんな感じでどうでしょう。

filename = "sample.txt";
fileObj = new File(filename);
str = "";
if (fileObj.open("r")) {
    fileObj.readln();
    fileObj.readln();
    str = fileObj.readln();
}
app.project.activeItem.layers.addText(str);
id:a-kuma3 No.2

a-kuma3回答回数4412ベストアンサー獲得回数18032012/11/14 22:32:07

ポイント100pt

http://www.openspc2.org/projectX/AfterEffects/0005/index.html
No.1 の方は、ここを参照したんでしょうね。
必要のない CR とかが残ってたりするのは、ご愛嬌♪修正したようです :-)

ちょっと、書き直してみました。

var filename = "sample.txt";
var myFile = new File(filename);
if (myFile.open("r")) {
    var line = 0;
    while (! myFile.eof) {
        var str;
        str = myFile.readln();
        line += 1;
        if (line == 3) {
            app.project.activeItem.layers.addText(str);
            break;
        }
    }
}

シンプルって感じじゃなくなっちゃいましたけど、対象のテキストが三行未満の場合とかの対応も入れてみました。

他にも、参考になりそうなコードがあるので、インデックスページの URL を張っておきます。
http://www.openspc2.org/projectX/

後、ここもサンプルがいっぱいあります。
http://www.da-tools.com/AE/scriptLab/sampleScript/SampleScriptTop.html


素直にテキストファイルを読み込むのではないですけれど、エクスプレッションを外部ファイルに保存して、include で読み込む、という手もあるみたい。
http://aekami.ldblog.jp/archives/51559057.html
https://sites.google.com/site/annamillersclub/expression-1/%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%97%E3%83%AC%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E5%A4%96%E9%83%A8%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%8C%96

var text = [
	"一行目",
	"二行目",
	"三行目",
	"四行目"
	];

というコードを外部ファイルにしておいて、

#include "sample.jsx";

app.project.activeItem.layers.addText(text[2]);		// 三行目を追加

という感じなのかな。

他6件のコメントを見る
id:a-kuma3

ExtendScript Toolkit はインストールしてますよねえ?

2012/11/16 12:15:33
id:hashimajc

インストールされています。。。(泣)

2012/11/16 13:38:21
id:fiwa No.3

fiwa回答回数417ベストアンサー獲得回数2492012/11/19 20:19:53ここでベストアンサー

ポイント100pt

読み込ませるテキストファイルを次のように作っておきます。

var test1="ほにゃらら";
var test2="ははは";
var test3="ほげほげ";

このファイルをルート直下につくったexpressionというディレクトリに入れておきます。

読み込ませたいテキストレイヤーのエクスプレッションから、次のような感じで呼び出します。

//Windowsの場合
$.evalFile ("file://c:\\\\expression\\sample.txt");
text.sourceText=(test3);
//macの場合
$.evalFile ("/expression/sample.txt");
text.sourceText=(test3);

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません