《AE教學》隨著音樂擺動的波形韻律動畫!讓物件跟著動次動!

哈囉~

經過幾篇的教學,看到有人想知道「跟著音樂中的Bass一起動的動畫圖」或者是「影片跟著Bass晃動」的方法 (你的聲音,我聽到了),那這次就來使用AE內建的效果和功能來完成這樣的動畫。

 

首先,挑選一首你要的音樂或有聲音的檔案:

步驟01:挑一首音樂匯入進來。

 

加入Audio Spectrum效果,底下的Audio Waveform其實也可以,兩者都能製作類似的動畫。

步驟02:加入Audio Spectrum效果。

 

這個效果內可以調整音樂動畫開始和結束頻率(長度)、波段數量、最大高度、持續時間、波段的厚度和柔化程度等等。

 

在這邊,我想讓波形動畫是圓形的,可以在中間畫一個圓形遮罩(按住SHIFT可以等比例畫圓)。

步驟03:用鋼筆工具畫一個圓形。

並且在Path內選擇該Mask。

 

音樂的部分當然是選擇音樂圖層。

步驟04:選擇音樂圖層。

 

不過當你拖拉時間軸欣賞他的波形時,可能會發現它的波被圖層範圍吃掉了。

被吃掉了!

 

那是因為遮罩的關係,所以將遮罩不作用即可。

步驟05:將遮罩關閉。

 

它有三種顯示的模式讓你玩~

三種顯示,一次滿足。

 

也可以複製一個同樣的圖層,疊兩種不同的顯示方式:

疊兩種模式。

 

底下還有一個功能可以讓波形平均於整個段落:

 

那剛剛提到的另外一個呢?

Audio Waveform也是類似的效果,

 

它一樣可以吃遮罩~

 

那差別在哪?

Waveform是波形,各個頻率的波形都疊在一起,所以一看就能知道現在這個聲音的大小。

Specturm則是頻譜,擁有每個頻率的波形,能夠知道現在這個聲音的高低頻率中哪個段落比較大或小(比較高音還比較低音),缺點就是不知道整體音樂的大小聲。

因為聲音通常是複雜的頻率重疊在一起,同時都有高音與低音,波形只能知道你在大聲什麼,不能知道你叫出來的聲音比較低沉還是比較尖銳;頻譜則相反。

 

音樂韻律波形動畫示意圖

((結果只是截圖

等等,所以我說那個動畫呢?

 

既然知道AE有內建製作音樂波形的效果了,但是如果要自定義呢?

還記得文章開頭說了什麼嗎?

「影片跟著Bass晃動」←對,就是這句。

 

 

我們把時間倒轉一下,回到一開始音樂剛匯入的時候(其實只是用同樣的音樂開了新的Project),

我們選擇音樂圖層,按快捷鍵L,接著點Audio Levels右鍵,同上圖所示,找到Convert Audio to Keyframes,

它可以將音訊轉換成左、右和雙聲道數值:

左、右和雙聲道的數值。

 

那麼,有了這些數值,你就知道該怎麼做了吧!

 

好,拿粉絲提問的「讓影片跟著Bass晃動」來實際操作看看。

 


 

※以下的部分屬於第二部分,和上面內容沒有直接關聯。因為以下部分屬於表達式的運用,和上面提到的AE內建的音樂波形效果不相同,

原本會是獨立的另一篇文章,這邊為了一次解決粉絲的提問、也和音樂動畫有些關聯性,所以合併在一起。

 

 

首先,匯入一段影片或圖片作為背景:

這邊是使用一顆球來呈現動態,當然你想要用照片或影片的話也是可以的,只是用球球比較好表現它晃動的樣子,之後也能用綁定的方式將你要的素材跟隨球球的動態。

 

稍微想了一下,就用簡單的表達式來製作晃動的效果,

首先選擇背景圖層,按快捷鍵S開啟Scale數值(同樣的方法可以套用在Position上,這邊先以Scale做示範),然後按住ALT點旁邊的小時鐘開啟表達式語法,並輸入:”wiggle(1,”   (紅字部分,不包含兩邊的引號)

這時如果你跟我一樣點回網頁,就會發現它輸入完成,並出現了一條橘色訊息,說明你的語法有問題。我的語法才沒有問題勒。

 

那當然,因為在輸入到逗號後,要用豬耳朵──我是說小迴紋針,來將雙聲道的數值寫入語法內,如下圖兩張所示:

這時你會發現橘色的訊息條還在,那是因為整個段落後面還要再一個後括弧:

 

那這個語法是做什麼用的呢?

簡單說,如果將wiggle拿去給GOOGLE,會得到一個「擺動」的答案,而後方的括弧內,則分別代表頻率、震幅;

也就是 wiggle(每秒頻率,震幅),白話點就是每秒以多少幅度擺動幾次。不過震幅數值一直在變動,所以就跳很大~

wiggle內也不一定要是頻率1,你也可以依你的喜好輸入你要的頻率。

那麼,晃動次數我自訂每秒一次,晃動的震幅則是交給雙聲道的數值。

不過你會看到像這樣的結果:

 

 

你會發現,它scale的x和y軸是分開wiggle的,如果我要讓它等比例的話又該怎麼做呢?

 

 

只要稍微對表達式做一些小更動,例如:

如圖所示,將我們擺動的數值設為x (不同scale的x軸,這邊的x只是一個代號),也就是簡單一個x字母就代表了每一秒做一次多少幅度的晃動,這樣就不用每次都要輸入或貼上那麼多的字,

而AE內所有x、y、z軸的編號都是[0]、[1]、[2],

所以原本的scale是transform.scale[0]和transform.scale[1],

因為將transform.scale[0]和transform.scale[1]套上wiggle會是分開計算的,

所以單純輸入wiggle(a,b)的結果──

──等同於:

x=wiggle(a,b);

[x[0],x[1]]

scale的x軸會算一次x成為x[0],scale的y軸會再另外算一次x成為x[1]──”[1]不同於[0]”──所以結果理論上不同。

那只要告訴它,你現在transform.scale[1]就是”已經算出來”的x軸,

x=wiggle(a,b);

[x[0],x[0]]

scale的y就會等同於x[0],而x[0]=算完的wiggle(a,b),目的就達成了。

 

好像有點複雜,那換個簡單的方式(其實就有更簡單的方式…)

這次換個角度思考,因為這種有需要x、y軸的表達式,都需要明確告知它到底是[0]還是[1]、是X軸還是Y軸,抑或是另一個明確的答案,而AE各種參數本身就是一個明確的答案,所以要嘛在算式結果告訴它明確答案,就是在座標軸告訴它明確答案。

所以我們可以寫h=wiggle(a,b)[0];    ← h等於每秒以b幅度擺動a次的x座標。

而transform.scale[0]和[1]都等於”已經用h公式算出來”的x座標,有特別指定座標就是一個明確的答案。

或是用temp=…

像是這樣:

h就是等於40啦,夠明確吧!

 

f就是等於本圖層的Y軸座標啦!

 

所以結果會像這樣:

套用到照片上的話:

等比例縮放了!因為是用Scale來做,所以並非晃動,而是縮放,那只要將同樣的作法或表達式貼到Position上,就會變成晃動囉~

這邊加入了一張照片來綁定、追隨球球的運動,這樣就不用重做一次,或是重貼表達式~照片也能個別控制。

 

不僅Scale,Position也能這麼做,而製作影片晃動的部分,用Position比較合適。

那這邊有一個小問題,Position和Scale不同,由於座標部分讓X跟Y都做一樣數值的運動,就會變成斜的;因為X軸正數往右、Y軸正數往下,所以看起來就是往右下方抖動。

所以這裡我會讓它的X跟Y分開計算。

如此一來就是上下左右的抖動囉!

 

 

那如果套用到圖片或影片上,覺得震動幅度太大,要怎麼讓幅度降低呢?

如果你有仔細看表達式,會發現我在上方範例中有加上/4的部分,

 

意思就是將它所吃的震幅/4(除以4)。

可以依自己的喜好去評判要除以多少甚至乘以多少,單純覺得數值整體太低或太高,也可以用加的或減的。

 

 

 

這只是一些簡單的用法,

更進階的延伸就可以製作類似這樣的動畫,自訂喜愛的波形圖案並隨著音樂韻律~

 

 

 

 

那麼,

希望這次的教學都能夠幫到大家,

我們下次見~

 

非經授權請勿轉載本網站原創內容,盜用必究

若想得到更多教學資訊,歡迎加入六指淵學生社團


《立即分享》
Loading Facebook Comments ...