更新於 2024/11/05閱讀時間約 8 分鐘

《Ae教學-Time》【搞什麼系列】第二章-誤入副本_AE表達式(expression)

【搞什麼系列】第二章-誤入副本 (time)

【搞什麼系列】第二章-誤入副本 (time)


「發生什麼事情?」糟糕!意識逐漸模糊……
「勇者!快醒醒啊!」
你睜開雙眼,看到村長正大力地搖醒你!
太好了!意識沒有完全渾沌!應該沒失憶吧?還認得我嗎?我是村長Fei。你帶著小吉到處跑,不小心卡進了副本裡了,你先好好休息,身體恢復了我再跟你說明副本的注意事項。


(一週後……)
勇者!這麼快就來找我了,體質真不錯!上週你誤入了副本裡,副本跟我們《搞什麼世界》的時間軸不一定一樣,進入到不一樣的時間軸空間裡,如果沒有使用控制時間的咒語,很容易造成意識渾沌及記憶錯亂。


1.新手的主線任務

為了讓你感知時間,我會先把時間具象化。語畢,村長拿出了兩個面板。

AE表達式-time

左邊是《搞什麼世界》的時間軸,右邊是副本時間軸,每個副本的時間軸不一定一樣,所以在進入副本的時候比須先控制住副本的時間軸,才不會讓過快或過慢的時間軸,影響到意識!

時間具象化的咒語,在文字圖層 ( Text layer )輸入

time;

time; 是什麼?

顯示的是《搞什麼世界》的時間軸,也就是主世界的時間。
控制時間的咒語,以秒為單位

而剛剛的副本時間軸是

time*2;

以秒為單位改變副本(composition)裡的時間,

所以剛剛的副本的時間是主世界時間×2,也就是主世界過了 5 秒,副本裡就過了 10 秒。你也來試試吧!村長交給你一個面板。

你在文字圖層 ( Text layer )施咒後

AE表達式-time;

你:嗯?村長這個面板壞掉了?

村長:面板並沒有壞掉喔!因為副本的時間軸複雜,因此我們需要用咒語進行修正。


time.toFixed(); 修正顯示到小數點第幾位數

time.toFixed(); ( )內是限制數值後的小數到第幾位數

接著村長對著你手上的面板施咒……

time.toFixed(1);

AE-表達式-time.toFixed();

你看,面板正常顯示了!如果要在更精確的話,可以改變 () 內的數值。至於如果要更有變化的運算,之後再慢慢地教你!先把基礎練好吧!


time; 的應用範圍不只在顯示數值上喔! 繼續看下去吧!

time; 應用在 Rotation 上

time-Rotation

time*360;

time 是以秒為單位,所以應用在 Rotation 上,就是 1 秒會旋轉多少度

time*360; 代表 1 秒旋轉 360 度,

time*90;

而 time*90; 代表 1 秒 90 度,也就是說 4 秒後,秒針才會走完一圈。

依照上面的邏輯,如果我想讓物體固定 4 秒轉一圈

time*360/4;
time*90;

其實效果一樣喔~你看

time-Rotation_360/4

運用這個咒語,你就可以控制物體 "幾秒" 轉 1 圈了!

因為 time; 有等速的特性,常用於自動的變化,讓物體隨著時間持續旋轉或移動。如:旋轉的齒輪


time; 應用在 Postion 上

這裡有個重點:time 是個一次只能指定一個屬性(方向)的咒語,但像是 Position 屬性是綁定在一起的,要怎麼分離方向

AE-Separate Dimensions(分離方向)

Separate Dimensions(分離方向)
Position 滑鼠右鍵,選取 Separate Dimensions(分離方向)。

AE-分離單個方向

這樣就分離好了,就可以使用 time 囉!

X 軸每秒位移 250,Y 軸每秒位移 150

//X Position​
value+time*250

跟前面示範比較不同的是,初始位置不是 0,所以需要在 time 前面,加上 value,設定後面的運算初始位置設為原本位置 (x=200),如果沒設定的話,X Position 就是從 0 開始出發

上圖設定 X Position 初始位置 (value = 200),每秒移動 250,所以 0 秒的時候位置為 200,1 秒位置為 450,2 秒為 700...持續運動下去……

//Y Position​
value+time*150

Y Position 初始位置 (value = 300),每秒移動 150,所以 0 秒的時候位置為 300,1 秒位置為 450,2 秒為 600……持續運動下去……


你:那紅底白框的球呢?不是說要time只能設定單向嗎?

村長:沒錯!雖說只能設定單向,但其實可以直接用 time* [ x , y ] 直接去指定位移數值,效果是一樣的,但我認為分離方向對於後來如果有更複雜的運算或咒語,比較好上手!

time* [ x , y ]

value+time*[250,150]
恭喜你完成新手的主線任務-初入副本
任務獎勵:初心面板
(道具。能快速確認時間軸,並調整副本時間。注意:因為做工比較粗糙,無法運算過於精確或改變過於龐大的副本。可以在各個初級副本裡機率性找到強化的零件,集齊強化零件後,可找戴林(鍛造師)進行強化。下一階段為:<中心面板>。)

村長的施法時間!

----------嘿!基礎你學完了!很棒~記得勤加練習!----------



2. 小進階技巧

time; 還會常用在哪裡?

因 time; 能隨著時間變化的特性,常被用來套用在一些效果上,例如:套用在效果中的 Evolution

套用在效果中的 Evolution

套用效果


說到 time ,就順便說表達式裡也有 time 的表達式吧!

ValueAtTime

可在特定時間點取得某一幀的屬性值

ValueAtTime

  • 在參考圖層 (circle_1)的 Position 設定關鍵幀 (0 秒 、 3 秒)
  • 在追蹤圖層 (circle_2)的 Position 使用表達式
thisComp.layer("Layer Name").transform.position.valueAtTime(time - 1);
//Layer Name 記得換成參考圖層名稱,time-1為追蹤參考圖層的前一秒的位置

紅圈是參考圖層(circle_1)、黃圈是追蹤圖層(circle_2),而紅圈在 3 秒時結束停止黃圈在 4 秒時停止


posterizeTime()

使用 posterizeTime() 可做出抽幀效果

  • 新增一個每秒 12 幀的 Composition
  • 新增圖層 (original)並在 Rotation 使用 time*180
  • 新增抽幀圖層 (posterizeTime())並在 Rotation 使用
posterizeTime(3);  //Comp 的每秒幀數/3
time*180


按下播放鍵,看看這兩個圖層有什麼不同吧!


黃底為抽幀圖層的幀數

當 Comp 每秒幀數為 12 時, posterizeTime(3) ,意思是12/3,原本的 4 幀抽幀成 1 幀,因此 0-3 秒為 1 幀、4-7 秒為 1 幀……以此類推。



✴️村長的宣傳時間✴️

📌最新動畫作品在這 ➡️ instagram
📌更新會比 IG 晚一天 ➡️ YouTube
📌追蹤✅、點❤️、分享🔗、收藏📂


合作請
私訊 Instagram
或寄信至 x.fei.4044@gmail.com


分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.