無論視頻作品中的流派如何,CG效果都擴展了各個地方的活動領域。在這裏,我將深入研究程序部分,並根據使用PopcornFX的音量來解釋效果的產生。
創建腳本編織的動態聲音可視化器
對我來說,效果的吸引力在於讓人們感到驚訝的方向背後有技術上的獨創性,並且在製作過程中每天都有發現。工具的功能因人而異,您可以通過組合多個功能(如塊)來創建新效果。即使它是一個小功能,重要的是要了解機制和原則,以創造吸引人的效果。在本文中,我們將深入研究產生效果移動的程序部分。使用其他工具創建效果不會有任何損失。
樣本圖像
PopcornFX是Persistant Studios的實時粒子效果工具,位於巴黎和蒙特利爾。它由效果編輯器(僅限Windows),多平臺運行時SDK(C ++)以及Unity和虛幻引擎插件組成。我對PopcornFX的感覺是性能水平。即使粒子以數十萬個級別顯示,該工具也可以快速移動並且可以實時編輯,因此可以有效地進行工作。其他效果工具,“腳本和圖形用戶界面”是不同尋常的製作風格,它們可以成爲創造效果的有力武器,這種效果可以像爆米花一樣飛出粒子。
我在這項工作中特別注意的是“明亮”的效果。我知道根據音量彈出角色時的動作,以及僅將動作應用於某些粒子的位置。此外,湍流噪聲函數增加了一個表達式,其中無限數量的粒子像生物一樣移動。我們也有視頻,所以很高興看到它們。
01音頻譜分析聲音
關於音頻頻譜
PopcornFX的功能之一是可以實時分析聲音數據並獲得每個頻率的音量值。如果根據採樣值排列粒子,則可以繪製光譜,如圖所示。
使用精靈表的文本渲染
它是根據過濾器類型提取不同採樣值的圖形
頻譜點
線性光譜
立方光譜
1.如何使用
[AudioSampler.sample function]當
指定0到1(頻率)的值作爲參數時,音量值將返回0到1。因爲它實時變化,您可以通過獲取每個幀來創建聲音可視化器。之後,通過以下腳本調整頻譜值。
[腳本描述]
//使用t作爲頻率並使用AudioSpectrum.sample函數獲取頻譜。
float spectrum = AudioSpectrum.sample(t);
//將係數應用於光譜並取平方根(處理以軟化光譜的差異)。
float kSpectrum = pow(spectrum * 256,0.5);
[Pow function]
一個函數,它將第一個參數指定的值提高第二個參數指定的值。如果給出小於1的值,如0.5,則將通過取平方根來計算。這是一種常見的技術,通過乘以一個因子後提高功率來軟化和銳化值的差異。
通過功能調整頻譜
頻譜舍入
銳化頻譜
ConvolutionLevel的頻譜差異
ConvolutionLevel 0.3(上),0.5(左下),0.75(右下)光譜
2.Samplers
使用[SamplerShape]提取3D空間中的特定位置。它是一種通過在編輯器的3D空間上放置一個形狀(如球體)並從形狀中提取點來確定隨機值的函數。
[Rand函數]
用於從給定範圍獲取隨機值的函數。
[Shape.samplePosition function]
從形狀中獲取隨機值的函數。
提取圓周上的點
我從圓周上取樣了位置並放置了粒子
通過將圓的半徑乘以隨機值來搖動位置
3.提取隨機位置並添加抖動的腳本
這裏,Circle.samplePosition獲取的三維向量乘以數值類型。向量和數字乘法是使用着色器編程圖形時經常出現的重要點。
【獲取隨機位置並添加抖動】
示例)Position = Circle.samplePosition()* rand(0.7,1.2);
【改變顏色的腳本,隨機顏色】
例)顏色= float4(0.1,rand(0.0,0.7),rand(0.6,1),rand(0,1));
【尷尬色彩,產生髮光效果】 //在Popcorn FX中,當Color值超過1時應用發光效果。
例)顏色=顏色*蘭特(1,5);
【設置隨機字符的腳本】
例)TextureID = rand(0,15);
【步驟功能】
例)步驟(rand(0,1),0.85);
[位置腳本成兩層]
實施例)漂浮比=步驟(RAND(0,1),0.85)* 2 + 0.7;
位置= Box.SamplePosition()*蘭特(0.9,1)
*比率;
使用精靈表的文本渲染
將圓的形狀更改爲球體
使用精靈表[image]將粒子更改爲一個字符,並將其設置爲隨機字符
將出現位置更改爲2層...
此外,我們添加成像線的粒子[圖像]並指導運動的動量
使用階梯函數二值化的“明亮”效應
比較兩個值並返回0或1,具體取決於哪個值更大。從0到1 I的第一個參數的隨機值,並通過把從0到1的值的第二個參數,並做了一個簡單的概率分佈。上述腳本,將1中的概率的0.15%在概率的85%。在創建“我想跳出一點點東西的價值”的效果的時候,當諸如“我只想老到一點在這一部分。”這是非常有用的 我們已經創造了一個有意識的“犀利”的過程中的二進制這個聲音可視化運動
4.湍流噪音
到目前爲止,我們從形狀的形狀中提取的隨機值,但使用紊流噪聲時,通過提取從由所述參數產生的噪音圖像的值,以創建運動起伏在每一個時間的推移我可以。
[SamplerTurbulence.samplePotential function]
從噪聲紋理中獲取無縫噪聲值。
//使用normalize函數標準化位置。
例)float3 n = normalize(Position);
//從湍流噪聲中獲取值。
例)float3 samplingLocation =
SamplerTurbulence.SamplePotential(n);
由於存在湍流噪聲,粒子運動是不同的
沒有湍流噪音
應用於每個粒子的湍流噪聲
SamplerTurbulence節點設置和噪聲紋理
湍流噪音設定
產生湍流噪聲紋理
5.背景
我們引入了一個名爲Backdrops的測試功能。這是一種僅在產生效果時有效的功能。在這個聲音可視化器的情況下,我們在檢查Popcorn FX的實際操作的同時實時進行效果生成。此功能非常強大,您只能導入和檢查效果數據中未包含的元素,例如3D模型數據,運動數據和聲音數據。
使用Backdrops進行效果測試的示例
爲火球創建效果的示例
指定的動畫數據,作爲背景測試數據沿路徑移動
除[左圖]之外在適當位置生成大量效果的示例
將聲音數據設置爲背景幕的示例
將動畫數據設置爲背景的示例
6.導入Unity
將PopcornFX創建的效果數據導入Unity。
PopcornFX粒子效果插件
您不需要編寫用於導入效果的腳本,購買官方插件,創建[PK Fx FX]組件,分配效果,並且您已完成
COLUMN
Effekseer是我也關注的效果製作工具之一。它支持Unity,虛幻引擎4,Cocos 2d-x和HTML 5(WebGL),如果您對效果感興趣,建議您開始使用它。功能添加繼續敏銳!
想了解更多關於遊戲模型設計的內容嗎?
來建模教程網(www.xizixue.com)看看吧