aftereffectsのテキストのエクスプレッションですが、


コンポジション名:サンプルコンポ
レイヤー名:サンプルレイヤー
のテキストのエクスプレッションに

var test1="ほにゃらら";
var test2="はははは";
text.sourceText=(test1);

とすると 「ほにゃらら」という文字が表示されますが、

これを同じコンポジション内の別レイヤーに
サンプルレイヤーで宣言した
「test2」の値を表示させるには
どういうプログラムを書けばよいのでしょうか?

また、こうしたテキストを2行に表示させることは可能なのでしょうか?

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/11/15 12:03:01
  • 終了:2012/11/20 06:44:01

回答(2件)

id:a-kuma3 No.1

a-kuma3回答回数4487ベストアンサー獲得回数18562012/11/15 13:11:58

ポイント100pt

コードの一部を別のレイヤーから参照する、というのではありませんが、テキストレイヤーにスクリプトのコードを書いておいて、別のレイヤーのスクリプトから参照する、という手があるようです。
http://aekami.ldblog.jp/archives/51559057.html

hoge という名前のテキストレイヤーに、以下のコードを書いておきます。

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

で、それを使いたい別のレイヤーでは、以下のように使います。

eval(thisComp.layer("hoge").text.souceText.value);

// ここで、test1 や test2 が使える


テキストを複数行で表示させるには、改行コードを挟めば良いと思います。

text.sourceText=(test1 + String.fromCharCode(13) + test2);
他1件のコメントを見る
id:a-kuma3

あ、スコープの問題かな。
hoge レイヤーのコードから、var を取り除いたら、どうなるでしょう?

test1="ほにゃらら";
test2="はははは";
2012/11/15 18:54:15
id:hashimajc

取り除いてもできませんでした。。。

2012/11/16 11:35:59
id:fiwa No.2

fiwa回答回数1195ベストアンサー獲得回数2522012/11/19 17:12:14

ポイント200pt

まずテキストを2行に表示させる方法ですが、"¥r"を使えばできるはずです。
(ひょっとしたらOSによっては、半角の円記号(¥)とバックスラッシュとを書き換えてやる必要があるかも知れません)

//サンプルレイヤー
var test1="ほにゃらら";
var test2="ははは";
text.sourceText=(test1)+"\r"+(test2);

別レイヤーのエクスプレッションから”サンプルレイヤー”のほうで宣言しただけの値を使用することはできない感じです。
上のサンプルレイヤーですでに使用したsourceTextから"¥r"で分割して、test2の部分だけを表示させる、ということなら可能です。

piyo=eval(thisComp.layer("サンプルレイヤー").text.sourceText);
piyo.split("\r")[1];	//[0]で”ほにゃらら”、[1]で”ははは”

Adobe After Effects * エクスプレッションの基本

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

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

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

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

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