飛行粒子和爆炸!Soundcornizer與PopcornFX

1240

無論視頻作品中的流派如何,CG效果都擴展了各個地方的活動領域。在這裏,我將深入研究程序部分,並根據使用PopcornFX的音量來解釋效果的產生。


創建腳本編織的動態聲音可視化器

對我來說,效果的吸引力在於讓人們感到驚訝的方向背後有技術上的獨創性,並且在製作過程中每天都有發現。工具的功能因人而異,您可以通過組合多個功能(如塊)來創建新效果。即使它是一個小功能,重要的是要了解機制和原則,以創造吸引人的效果。在本文中,我們將深入研究產生效果移動的程序部分。使用其他工具創建效果不會有任何損失。

樣本圖像

PopcornFX是Persistant Studios的實時粒子效果工具,位於巴黎和蒙特利爾。它由效果編輯器(僅限Windows),多平臺運行時SDK(C ++)以及Unity和虛幻引擎插件組成。我對PopcornFX的感覺是性能水平。即使粒子以數十萬個級別顯示,該工具也可以快速移動並且可以實時編輯,因此可以有效地進行工作。其他效果工具,“腳本和圖形用戶界面”是不同尋常的製作風格,它們可以成爲創造效果的有力武器,這種效果可以像爆米花一樣飛出粒子。

我在這項工作中特別注意的是“明亮”的效果。我知道根據音量彈出角色時的動作,以及僅將動作應用於某些粒子的位置。此外,湍流噪聲函數增加了一個表達式,其中無限數量的粒子像生物一樣移動。我們也有視頻,所以很高興看到它們。

01音頻譜分析聲音

關於音頻頻譜

PopcornFX的功能之一是可以實時分析聲音數據並獲得每個頻率的音量值。如果根據採樣值排列粒子,則可以繪製光譜,如圖所示。

使用精靈表的文本渲染

它是根據過濾器類型提取不同採樣值的圖形

1240

頻譜點


1240

線性光譜


1240

立方光譜


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,則將通過取平方根來計算。這是一種常見的技術,通過乘以一個因子後提高功率來軟化和銳化值的差異。

通過功能調整頻譜

1240

頻譜舍入


1240

銳化頻譜


ConvolutionLevel的頻譜差異

1240

1240

1240

ConvolutionLevel 0.3(上),0.5(左下),0.75(右下)光譜

2.Samplers

使用[SamplerShape]提取3D空間中的特定位置。它是一種通過在編輯器的3D空間上放置一個形狀(如球體)並從形狀中提取點來確定隨機值的函數。

[Rand函數]

用於從給定範圍獲取隨機值的函數。

[Shape.samplePosition function]

從形狀中獲取隨機值的函數。

提取圓周上的點

1240

我從圓周上取樣了位置並放置了粒子


1240

通過將圓的半徑乘以隨機值來搖動位置


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)

*比率;

使用精靈表的文本渲染

1240

將圓的形狀更改爲球體


1240

使用精靈表[image]將粒子更改爲一個字符,並將其設置爲隨機字符


1240

將出現位置更改爲2層...


1240

此外,我們添加成像線的粒子[圖像]並指導運動的動量

使用階梯函數二值化的“明亮”效應

1240

比較兩個值並返回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);

由於存在湍流噪聲,粒子運動是不同的

1240

沒有湍流噪音


1240

應用於每個粒子的湍流噪聲


SamplerTurbulence節點設置和噪聲紋理

1240

湍流噪音設定


1240

產生湍流噪聲紋理


5.背景

我們引入了一個名爲Backdrops的測試功能。這是一種僅在產生效果時有效的功能。在這個聲音可視化器的情況下,我們在檢查Popcorn FX的實際操作的同時實時進行效果生成。此功能非常強大,您只能導入和檢查效果數據中未包含的元素,例如3D模型數據,運動數據和聲音數據。

使用Backdrops進行效果測試的示例

1240

爲火球創建效果的示例


1240

指定的動畫數據,作爲背景測試數據沿路徑移動


1240

除[左圖]之外在適當位置生成大量效果的示例


1240

將聲音數據設置爲背景幕的示例


1240

將動畫數據設置爲背景的示例


6.導入Unity

將PopcornFX創建的效果數據導入Unity。

PopcornFX粒子效果插件

1240

您不需要編寫用於導入效果的腳本,購買官方插件,創建[PK Fx FX]組件,分配效果,並且您已完成


COLUMN

Effekseer是我也關注的效果製作工具之一。它支持Unity,虛幻引擎4,Cocos 2d-x和HTML 5(WebGL),如果您對效果感興趣,建議您開始使用它。功能添加繼續敏銳!

1240


想了解更多關於遊戲模型設計的內容嗎?

建模教程網(www.xizixue.com)看看吧


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章