马上注册,加入CGJOY,让你轻松玩转CGJOY。
您需要 登录 才可以下载或查看,没有帐号?立即注册
×
无论视频作品中的流派如何,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]组件,分配效果,并且您已完成
COLUMNEffekseer是我也关注的效果制作工具之一。它支持Unity,虚幻引擎4,Cocos 2d-x和HTML 5(WebGL),如果您对效果感兴趣,建议您开始使用它。功能添加继续敏锐!
想了解更多关于游戏模型设计的内容吗? 来建模教程网(www.xizixue.com)看看吧
|