Animeの道具箱(dA-tools) に関する あれやこれや
質問にはできるだけ答える…つもり。(笑
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
お久しぶりです。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
コメント
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さま
そういう通りの意味です。さすがに感動です。
ありがとうございました。