Animeの道具箱(dA-tools) に関する あれやこれや
質問にはできるだけ答える…つもり。(笑
Higematsuさま
また、エクスプレッシュンのご指導頂きたくお願い申し上げます。
タイムラインに配置したレイヤー名+相番、例えば「motion01」というレイヤー名にしていると、複製する度に「motion02」「motion03」…と連続しますが、このレイヤー名+相番を元にレイヤーを特定する記述はあるでしょうか?
具体的にはこうです。「motion01」「A01」「B01」という3つのレイヤーがあって「A01」「B01」位置プロパティには「motion01」を参照するエクスプレッション
thisComp.layer("motion01").transform.position
と書いています。
この3つのレイヤーを複製してできる「motion02」「A02」「B02」の「A02」「B02」は複製した時点で「motion02」のレイヤー位置を参照するような記述にしたいのですが、このようなレイヤー名+相番を元に特定することは可能でしょうか?
ご教授ください。よろしくお願いします。
よろしくお願いいします。
トラックバックURL : http://da-tools.bbs.coocan.jp/bbs/trackback.php?id=138
dA-toolsでいつも勉強させて頂く初心者です。
お時間を頂けるようならご教授頂けないでしょうか?
AEで平面レイヤーのXスケールが伸縮する反復運動をさせ、マーカー1の時間が来たら、その時間のスケール値からマーカー2の時間をかけて0%になるよう、if構文を使って平面レイヤーのスケールプロパティに以下のエクスプレッションを記述してみました。
t1=thisComp.marker.key(1).time;
t2=thisComp.marker.key(2).time;
mov=[Math.sin(time*4)*40,100];
end_mov=linear(time, t1, t2, [value[0],100],[0,100]);
if (time > t1){
end_mov;
}else{
mov;
}
ですが、下図の通りマーカー1の時間の値であるA値を返す結果にはならず、一旦100%まで戻ってから[0,100]になります。単にvalue[0]と記述してもだめなようですが、どのように記述すればA値を引き継いでクリアできるでしょうか?
Higematsuさま。よろしくお願いいたします。
トラックバックURL : http://da-tools.bbs.coocan.jp/bbs/trackback.php?id=137
AE太郎さん ようこそ。
value[0]の値はエクスプレッションで計算する前の値になってしまいます。代わりにsinの値を渡してください。
3,4行目を次の3行に置き換えてくだい。
***********************
movX=Math.sin(time*4)*40;
mov=[movX,100];
end_mov=linear(time, t1, t2, [movX,100],[0,100]);
**************************************************
なお、linear( )じゃなくてease( )も試してみるといいかも。
>>Higematsuさま
ああっ〜完成しました。素晴らしい。
色々応用ができそうな一行を覚えました。
ありがとうございます。またひとつ賢くなりました。
>>Higematsuさま
度々で申し訳ありません。
現状でも問題ないのですが、ちなみにこの反復運動
movX=Math.sin(time*4)*40;
をマーカー1の時間で終えさせて、
マーカー1のA値→0%の動きで渡すことは可能でしょうか?
> マーカー1のA値→0%の動きで渡すことは可能でしょうか?
マーカー1の時のsinの値は
m1sin=Math.sin(t1*4)*40;
です。
end_mov=linear(time, t1, t2, [m1sin,100],[0,100]);
こういうことかな?
>>Hegematsuさま
そういう通りの意味です。さすがに感動です。
ありがとうございました。
お久しぶりです。2.5年前に同様の箇所について書き込みました者です。
最近CS5にバージョンを上げまして、改めてスクリプトの変更点を眺めておりましたところ、トリプルクォート(パイソン等で使えるヒアドキュメント的な奴です)が実はCS4から実装されていたことに今しがた気づきました…
という訳で
eval("""
a = 20;
b = "50";
[ a, Number(b) ];
""");
というような比較的直感的な記述がエクスプレッションウィンドウ内でできるようになりました。
トリプルクォート内でダブルクォートも使えるスグレモノのようです。
もうご存知かもしれないので余計なお世話とも思ったのですが、記事に反映していただけますと私自身の備忘録にもなりますのでよろしければ…
トラックバックURL : http://da-tools.bbs.coocan.jp/bbs/trackback.php?id=134
http://www.da-tools.com/AE/basicMath/BasicMath05.html
のページですが
単位円の図の座標がsinθとcosθが反対ではないでしょうか?
トラックバックURL : http://da-tools.bbs.coocan.jp/bbs/trackback.php?id=136
本当に素晴らしすぎます!!是非公開しては頂けないでしょうか。
可能ならば、日本語の説明(版権についてとソフト使用説明部分)を中国語に翻訳して、中国のネットで紹介させていただきたいと思います。
何卒お願いいたします。
トラックバックURL : http://da-tools.bbs.coocan.jp/bbs/trackback.php?id=135
コメント
まずレイヤー名から番号だけを取り出します。
num=name.substr(1,2);
そしてその番号をmotionとつなげて参照レイヤー名を作ります。
thisComp.layer("motion"+num).transform.position
>>Higematsuさま
ありがとうございます。すばらしいです。
複製してもエラーを出さず、書き換えなくて済むので作業効率が大幅にアップできます。
本当に感謝します。