人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

aftereffects で、外部のテキストファイルのテキストを表示させたいのですが、どんなエクスプレッションを書くのがもっともシンプルでしょうか?
例えばsample.txt というファイルがあって、その3行目のテキストをAEに表示させたいのです。
もっともシンプルなやり方を教えて下さい。cs5.5です。


●質問者: hashimajc
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● oil999
●100ポイント

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

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);

2 ● a-kuma3
●100ポイント

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]);// 三行目を追加

という感じなのかな。


hashimajcさんのコメント
いろいろとありがとうございます! Cドライブ直下に sample.txtをおいて 以下のソースを、テキストのソースのエクスプレッションにコピペしましたが、 「fileのコンストラクターがありません。エクスプレッションを無効にしました」というエラーが出てしまい うまく表示されないです。。。。 何か根本的に間違っているような気がしますが、アドバイスいただけると嬉しいです。 var filename = "c://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; } } }

a-kuma3さんのコメント
>> 「fileのコンストラクターがありません。エクスプレッションを無効にしました」というエラーが出てしまい << >|javascript| var myFile = new File(filename); ||< のところの new <span style="color:red;">F</span>ile の F が小文字になっていませんか?

hashimajcさんのコメント
大文字です。なぜかできません。。。

a-kuma3さんのコメント
環境設定、かな? http://y-yamazaki.tv/scr01.htm

hashimajcさんのコメント
環境設定しましたが、できません。。。

hashimajcさんのコメント
環境設定変更しましたが、できません。。。

a-kuma3さんのコメント
ExtendScript Toolkit はインストールしてますよねえ?

hashimajcさんのコメント
インストールされています。。。(泣)

3 ● fiwa
●100ポイント ベストアンサー

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

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);
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ