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)看看吧