【AE】用wiggle表達式控制圖層透明度

用wiggle表達式控制圖層的透明度,如:wiggle(10,100)代表圖層每秒抖動10次,透明度的值為0-100范圍的隨機數(shù)。

如果我想讓圖層的透明度只為0或100,即實現(xiàn)圖層的隨機出現(xiàn)和消失

varwiggle_result=wiggle(10,50);

if(wiggle_result>50)

value=100;

else

value=0;

//"var"、"value = "在Ae中可省略,功能無差別,但盡量寫完整,養(yǎng)成好習(xí)慣。

意思:

聲明一個名為wiggle_result的變量,并將當(dāng)前屬性(Opacity)的值以“10 Hz、50 單位”隨機擺動的結(jié)果賦給wiggle_result。

如果wiggle_result大于50:

將100賦給當(dāng)前屬性的值;

“可視化”演示:

效果:

表達式中的第一個參數(shù)(頻率)并沒有準確地在最終效果中生效,而準確的頻率又與“圖層隨機的出現(xiàn)和消失”相悖,所以代碼中的頻率僅作為一種參考。

制作上圖時,我將黑色矩形的Opacity設(shè)為了50,原因是:

灰色線表示Opacity原值,白色線表示由表達式運算出的Opacity當(dāng)前值。在沒有指定具體屬性時,wiggle()函數(shù)會以當(dāng)前屬性(Opacity)的值進行計算,寫完整就是:

thisProperty.wiggle();

所以我調(diào)整Opacity的值會對最終結(jié)果產(chǎn)生影響。

要想讓自己在今后看得明白,可以這么做:


在透明屬性上建立表達式:

t=Math.sin(time*10)*100; //建立透明度的循環(huán)從-100到100;

if(t>100) //判斷循環(huán),如果t>100的時候;

{t=100} //t就等于100;

else if(t<0) //t小于0的時候;

{t=0} //t就等于0;

else //其他的情況;

{t} //就等于t本身的數(shù)值;

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

如果對于閃爍的頻率不滿意自己可以改 t=Math.sin(time*10)*100; 把(time*10)里面的10想再快一些就提高數(shù)值 ,比如20,30等,如果想閃爍的慢一些可以把10改小。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

另外說明:上面寫的表達式閃爍的時候是有漸變過度的,比較緩和,如果你想閃爍的時候生硬一些,就是透明度0直接到100,那你就把最后一句else {t} 里面的t改為 value,效果也不錯;

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

不推薦使用wiggle或者random這種的表達式來實現(xiàn)閃爍效果,因為數(shù)值得不到有效的控制,并且這類代碼是是隨機取值,是不可控的,效果表現(xiàn)不好。好了希望可以幫助到你!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容