[綜合] AE expression
使用軟體: After Effects
版本: cs4
附加使用軟體: none
問題描述:
我使用expression製作圖層動畫。
最近遇到一個問題,
我想要讓物體 B 接近物體 A 時,
A 就會被 B 吸引,從此黏著 B (類似吸塵器的感覺)。
於是我在 A 的 position 寫了exeprssion如下:
aP = transform.position;
bP = thisComp.layer("A").transform.position;
D = length(a,b);
if( D<100 ){
linear( D, 100, 0, aP, bP);
if( D == 0){ a == b}
else{
a
}}
我試了很多方法,都沒用,條件大概如下
#1,A 不動
#2,B 靠近 A 時,A湊上去
#3,湊上去後,A 不再離開 B
有exprssion高人替我解惑嗎 !?
感恩
已嘗試過方式:
爬文(Google)? I had.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 115.43.40.130
推
10/18 21:47, , 1F
10/18 21:47, 1F
→
10/18 22:07, , 2F
10/18 22:07, 2F
→
10/18 23:28, , 3F
10/18 23:28, 3F
※ Caiboruei:轉錄至看板 java 10/18 23:34
※ Caiboruei:轉錄至看板 Ajax 10/19 00:03
→
10/19 01:40, , 4F
10/19 01:40, 4F
→
10/19 01:42, , 5F
10/19 01:42, 5F
其實我試成功了 (剛剛才想出來,想了三天 XD)
但是不是運用兩點的相對關係,而是運用兩點與原點的關係,
如果用兩點的距離,因為距離隨時間改變,會忽大忽小難掌握。
但是用原點又有缺點,當點 B 動作太大,就會破功。(我只能將就一下囉 XD)
大家可以試試看以下的expression
(只要底下有圖層在運動就可以了)
//吸塵器
var a = transform.position;//本圖層(A)的位置
var b = thisComp.layer(thisLayer,+1).transform.position;
//下一圖層(B)的位置
//可以把 B 圖層設key點,移動看看
var aoD = length([0,0],a);//原點到 A 圖層的距離
var boD = length([0,0],b);//原點到 B 圖層的距離
var d = boD - aoD;//當d為正數,B點在A點左邊
if( d > 0 ){
a ;
if ( d <= 100 )
{
value =a;
easeIn(d, 100,0,b,a)
//這裡我不懂為什麼是(d,100,b,a),而不是(d,100,a,b)
}
}else{ value = b }
不知道還有沒有更好的方法!?
※ 編輯: Caiboruei 來自: 115.43.40.130 (10/19 03:38)
Digital_Art 近期熱門文章
PTT數位生活區 即時熱門文章