飞行粒子和爆炸!Soundcornizer与PopcornFX

[复制链接]
丿坨坨灬 发表于 2019-5-6 15:38:22 | 显示全部楼层 |阅读模式

马上注册CG织梦网,结交更多CG好友,下载更多CG素材,让你轻松学习。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x



无论视频作品中的流派如何,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]组件,分配效果,并且您已完成



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩图文
 
 
失效帖子处理
失效举报群
156583568
工作时间:
9:00-22:00
 
在线客服(工作时间:9:00-22:00)
18916069001
织梦网微信公众号

Copyright   ©2015-2016  CG织梦网  Powered by©Discuz!  技术支持:织梦网     ( ICP12043823-6 )