AE練習_生長線條 + 箭頭
<a target="_blank" href="/album/show.php?i=linx&b=6&f=1139029880.jpg"><img border="0" src="http://f6.wretch.yimg.com/linx/6/1139029880.jpg" width="450"></a><br /><br />
有個需要一堆線段 + 箭頭長出來的片段急著在兩天內修改完...<br />
於是研究有沒有辦法用表達式...<br />
內心os:為什麼一開始不先想呢~?<br />
<br />
<br />
<embed allowscriptaccess="never"src="http://www.youtube.com/v/JnxJy7JvG2s&hl=zh_TW&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed> <br />
<br />
設想讓箭頭沿著路徑跑,並且線條也隨之生長...<br />
首先路徑用鋼筆勾勒,接著使用effect/Stroke<br />
可作到線段沿著路徑生長。<br />
<br />
箭頭的移動,直接拷貝mask後貼在<br />
箭頭的position就搞定了。<br />
<br />
接著是表達式:<br />
<br />
貼於effect/Stroke/End<br />
---<br />
p= thisComp.layer("箭頭物件").transform.position;<br />
//指定物件的移動參數<br />
<br />
s= p.key(1).time;<br />
//s=指定物件的移動第一個key<br />
<br />
e= p.key(#).time;<br />
//e=指定物件的移動第#個key(#=最後一個key是第幾個,自己打上去吧...)<br />
<br />
linear(time,s,e,0,100)<br />
//當 時間愈靠近移動第一個key時,<br/>
End值愈接近0(0已經是最小值)<br />
;當 時間愈靠近移動最後一個key時,<br/>
End值愈接近100<br />
變化速度為平均<br />
---<br />
<br />
<br/>
設想:如果不想去算key到底有多少個,還有什麼可以計算的?<br />
目前想到就是Inpoint & Outpoint(物件起始點)<br />
<a target="_blank" href="http://www.wretch.cc/album/show.php?i=linx&b=6&f=1139029881.jpg"><img border="0" src="http://f6.wretch.yimg.com/linx/6/1139029881.jpg"></a><br/>
<br />
同樣貼於effect/Stroke/End<br />
---<br />
p= thisComp.layer("Pale Gray-Royal Blue Solid 2");<br />
\\指定物件<br />
<br />
s=p.inPoint;<br />
\\s=指定物件的起點<br />
<br />
e= p.outPoint;<br />
\\e=指定物件的終點<br />
<br />
linear(time,s,e,0,100)<br />
\\當 時間愈靠近移動起點時,<br/>
End值愈接近0(0已經是最小值)<br />
;當 時間愈靠近移動終點時,<br/>
End值愈接近100<br />
變化速度為平均<br />
---<br />
<br />
<br />
<br />
箭頭轉向的部份呢?<br />
<br />
有段表達式可以作到對著指定物件的位置在哪而轉向。<br />
以下是從老外的教學拷貝的:<br />
貼於rotation(有些地方我也不懂,就不解釋了)<br />
---<br />
this_point=position;<br />
that_point=thisComp.layer("Null 1").transform.position;<br />
<br />
delta=sub(this_point, that_point);<br />
angle=Math.atan2(delta, delta);<br />
radians_to_degrees(angle)+transform.rotation;<br />
---<br/>
這個指定物件(Null 1)<br/>
必須在箭頭進行方向的前方<br/>
意即跟箭頭一樣的移動路徑<br/>
只是Null 1會先跑在前面。<br/>
<br/> LINX 兄台
感謝分享的啦
哇..一堆寶貴的expression用語
save起來啦!!
小的
也來哈啦咧
有個需要一堆線段 + 箭頭長出來的片段......
若換素偶..跟大大一樣的命苦.. 應該會選用相當流行的particular來製作
particular 花樣多變化大
動靜皆宜
好用的咧..
http://img259.imageshack.us/img259/5826/by1.jpg
多拷貝個兩層,並改變參數後..
http://img259.imageshack.us/img259/8347/by2.jpg
http://vimeo.com/moogaloop.swf?clip_id=4423057&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1
拷貝comp..加入鏡頭
http://img259.imageshack.us/img259/6328/by3.jpg
http://vimeo.com/moogaloop.swf?clip_id=4423246&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1
[ 本帖最後由 老二哲學 於 2009-5-1 12:29 編輯 ] 前人種樹,後人乘涼,感謝分享。
我覺得老外寫的那個表達式很好,而且可以應用在很多地方,所以雞婆一下做個圖解,有錯請指正。
原點O到紅點delta的連線平行於this_P到that_P的連線
Math.atan2(y,x)傳回"弧度"的值=angle;
radians_to_degrees(angle)同radiansToDegrees(angle)//弧度轉角度
第二張圖我不是很確定angle的方向是相鄰X軸還是Y軸(都還給老師了@黑青@ ),不過意思應該對了。
[ 本帖最後由 yingshun 於 2009-9-22 09:52 編輯 ] angle 多半是用在物件的rotation上頭
X軸與Y軸只要有變動 ..rotation就會跟進 yingshun 兄台
對於里寫滴那個expression ..是正確的啦
偶一直有印象的~~
翻箱倒跪之後
找到了=P~ =P~ 嘿嘿,在 下拋磚引玉,老二大大果然厲害。
頁:
[1]