調整值的範圍
例如第一頁教學中的用rotation來變化opacity, opacity值的範圍是0~100; 但rotation是正負無窮大.
以轉1圈360度來說, 100度以上opacity就不作用, 若想要完整轉一圈來變化opacity全過程, 需做一些數學運算,
rotation / 360 = opacity / 100
上式 rotation等於0時, opacity也等於0 ; rotation為360時, opacity為100
上面程式碼再做一些變化得到下面的程式碼, 求opacity 的運算式, 其中rotation/360的值介於0~1, 那0~1之間的值乘100, 所求得的值為0~100之間. 合乎opacity範圍
opacity =(rotation / 360) * 100 //括弧()可省略, 加上是為了清楚運算順序
同以上的理, 下方例子中
圓周長:circumference
距離:distance
rotation是根據所走的距離(最長距離等於圓周長度), 來判斷旋轉度數.
distance/circumference的值會落在 0~1 之間, 再用此值去乘360, 最後所得值範圍必定為 0~360
為了使輪胎轉動, 所以 expression要放在rotation特性中, rotation 是被 position 所驅動.
一開始 expression 可能會如下
rotation=position*? //執行會出現錯誤, 因為還要替? 輸入正確變數, ?只是暫時代替
要做水平方向移動才能看到輪胎旋轉, 所以取用position的x值 position[0] 來計算輪胎圖層跑多少距離, 輪胎是從comp的左邊移到右邊, 起點跑設定在comp的最左邊(comp的座標是左上到右下), 程式碼如下.
rotation=position[0]*?
為了讓輪胎完整轉1圈, 所以要跑相當於1個圓周長距離, 轉1圈是360度. 根據所跑距離是圓周長的多少比例, 用相同比例的值來判斷輪胎轉幾度.
rotation=(position[0]/circumference)*360 //括弧()可以省略
輪胎越大, 圓周長度越大, 圖層就必須移動越遠才能轉一圈, 現在要來定義圓周長度,
diameter是直徑, 圓周長公式 diameter*PI
以前學校學的圓周長公式是2*π*r , r是半徑, 2*r是直徑 , π是圓週率(圓周長與直徑的比率,不變的值), javascript中以PI表示, 必須用 Math.PI 來存取, 或自己輸入3.14 , expression如下
circumference=width*Math.PI; //width是輪胎寬度(直徑), 等於2*r(半徑)
因為是用於rotation特性中, 所以之前的expression程式碼
rotation=(position[0]/circumference)*360
可以刪除rotation=
最後做全部程式碼整理, 得到
distance=position[0];
circumference=width*Math.PI;
distance/circumference*360;
應用此expression時, 圖層scale特性必須是100%, 若有改變要另外處理, 留給讀者自己思考.
上述效果當然也可手調, 但是若要做加速或減速時, 調不好輪胎會打滑, 還是用expression比較準確與真實.
範例檔下載 MAC Window
AE Expressions教學-2距離:distance
rotation是根據所走的距離(最長距離等於圓周長度), 來判斷旋轉度數.
distance/circumference的值會落在 0~1 之間, 再用此值去乘360, 最後所得值範圍必定為 0~360
為了使輪胎轉動, 所以 expression要放在rotation特性中, rotation 是被 position 所驅動.
一開始 expression 可能會如下
rotation=position*? //執行會出現錯誤, 因為還要替? 輸入正確變數, ?只是暫時代替
要做水平方向移動才能看到輪胎旋轉, 所以取用position的x值 position[0] 來計算輪胎圖層跑多少距離, 輪胎是從comp的左邊移到右邊, 起點跑設定在comp的最左邊(comp的座標是左上到右下), 程式碼如下.
rotation=position[0]*?
為了讓輪胎完整轉1圈, 所以要跑相當於1個圓周長距離, 轉1圈是360度. 根據所跑距離是圓周長的多少比例, 用相同比例的值來判斷輪胎轉幾度.
rotation=(position[0]/circumference)*360 //括弧()可以省略
輪胎越大, 圓周長度越大, 圖層就必須移動越遠才能轉一圈, 現在要來定義圓周長度,
diameter是直徑, 圓周長公式 diameter*PI
以前學校學的圓周長公式是2*π*r , r是半徑, 2*r是直徑 , π是圓週率(圓周長與直徑的比率,不變的值), javascript中以PI表示, 必須用 Math.PI 來存取, 或自己輸入3.14 , expression如下
circumference=width*Math.PI; //width是輪胎寬度(直徑), 等於2*r(半徑)
因為是用於rotation特性中, 所以之前的expression程式碼
rotation=(position[0]/circumference)*360
可以刪除rotation=
最後做全部程式碼整理, 得到
distance=position[0];
circumference=width*Math.PI;
distance/circumference*360;
應用此expression時, 圖層scale特性必須是100%, 若有改變要另外處理, 留給讀者自己思考.
上述效果當然也可手調, 但是若要做加速或減速時, 調不好輪胎會打滑, 還是用expression比較準確與真實.
範例檔下載 MAC Window
AE Expressions教學-4
參考網址http://www.jjgifford.com/expressions/basics/range.html
沒有留言:
張貼留言