学习记录官网教程UE4音效与空间,推荐大家学习一遍教程后再查看本博文,温故知新。这里附上教程地址ClickHere
往期音效笔记
1.UE4环境音效与程序化音效(1)
2.UE4环境音效与程序化音效(2)
2.UE4动态音频
3.UE4音效与空间
使用音频体积为你的关卡添加混响效果(可理解为在矿洞中的回声),从而让游戏中的空间更加具有真实感。以及如何调整关卡音效的混响干湿度,从而获得更加真实的空间感和距离感。
添加音频体积的方法:
在左侧模式面板输入Audio Volume
。将你想要应用混响的区域覆盖住:
图中应用的场景是矿洞中,也就是说该场景便拥有了混响效果(可以理解为回声效果)。我们再来看看音频体积的细节面板:
细节面板中勾上Apply Reverb
。
Volume
:混响的强度
Fade Time
:从当前混响淡出的时间
在Reverb Effect
你可以设定自己自定义的Reverb
。
如果你想使用引擎自带的Reverb
,你需要勾上Show Engine Content
。
至此场景中的混响你便设置完成,但是如果你想让一个声音应用这个效果你还需要进行一下设置,这里用教程中的脚步声应用混响做例子:
点开脚步声SoundCue
。
1. 如果该音效应用了SoundClass
(音乐类,后面会提及),你先要将SoundClass
里面的Reverb
也勾上。这里的SoundClass
为Character
(教程中自定义的)
点开后勾上Reverb
:
2. 返回脚步声SoundCue
,将应用的Attenuation
里的Reverb
也勾上。
这里的各类参数:
Reverb Min Send Level
(最小混响输送强度)
Reverb Max Send Level
(最大混响输送强度)
Reverb Min Send Distance
(最小混响输送距离)
Reverb Max Send Distance
(最大混响输送距离)
举个例子:你和另外一个人身处山洞之中,你距离他越近,他所发出的声音干湿度越干(越纯净,没有回声),这里对应得便是最小输送得距离和强度。相反你和他得距离越远,能产生得回声也会最大。
如果不使用重叠的话,要设置音频体积可能会遭遇重重困难,或者达不到想要的效果。所以你需要学会如何使用音频体积的优先级设置来控制音频体积的先后。
举个例子:深处山洞之中,山洞中有个小房间。这两者得混响便发生了重叠,于是你想的是房间应用自己得混响,山洞依旧应用的是自己的。
开启的方式:打开你想设置的混响细节面板Audio Volume——Priority
(优先级)
数值越大,优先级越高。默认为0;
你的游戏中可能有可以开启的大门或者可以摧毁的墙壁。这两者都会改变空间的大小和特性,因此你也要动态地调整混响设置。
比较简便的方法是,在需要切换混响设置的时候,通过蓝图动态的设定:
这里实现的功能为,当石头被破坏后,通道畅通后,与另外的空间相连,所以从初始的通道的混响,变为大空间的混响。
其中AudioVolume
类型为AudioVolume
,TunnelOpened
类型为Reverb Effect
。两个变量你需要事先进行赋值。
同时可以通过控制台输入StatSoundReverb
来动态得查看Reverb
得变化情况
初始情况:
当然上诉得方法会引发一种问题,这两者得混响转换会非常得生硬,不自然。所以为了解决这种问题,我们可以在通道创建两个AudioVolume
(音频体积),让这两个混响相互转化。即一个为初始得混响,另一个为需要转化后得混响。
这样得好处就是,可以利用混响的FadeTime
!也就是说AudioVolum
转换到AudioVolume2
有了一个过度时间!这就比较自然了。再测试的时候你可以将FadeTime
时间调整得大一些,方便测试。
使用音频体积的环境区域设置可以模仿墙壁或其它表面的阻挡或遮挡音效。
开启环境区域设置的方式是:AudioVolume
音频体积的细节面板->Ambient Zone
Exterior Volume
(外部体积):人物处在体积之中,体积之外音效产生的音量。
Exterior Volume
(外部时间):人物进入体积之中,当前体积插值到体积之外音效的时间
Interior Volume
(内部体积):人物处在体积之外,体积之中音效产生的音量。
Interior Volume
(内部时间):人物进入体积之外,当前体积插值到体积之内音效的时间
需要注意的是:如果声源有应用于SoundClass
,需要将该声源所应用的SoundClass
中的Apply Ambient Volumes
勾上
许多游戏空间的大小、形状和特性都会发生动态的改变。为此我们需要动态遮挡从而更好的实现效果。
实现的方式和上文中提及的动态混响设置的方式类似,也是在蓝图中在需要进行切换的地方进行设置。
你也可以使用虚幻引擎内置的动态遮挡来补充或调整环境区域,它使用游戏几何体和物体本身来决定当音效和聆听者(玩家)的视野之间出现分歧时,音效的衰减效果会如何变化。学习如何使用衰减遮挡设置。
设置的方式:需要设置衰减遮挡的音效中,找到Attenuation
设置其中的Attenuation Occlusion
(衰减遮挡)
勾选上Enable Occlusion
:
Occlusion Low Pass Fiter Frequency
(遮挡低通过滤频率):低于该频率的音效通过
Occlusion Volume Attenuation
(遮挡音量体积衰减):音效衰减量
Occlusion Interpolation Time
(遮挡插值时间):被遮挡时内插值到Occlusion Low Pass Fiter Frequency
的时间
Use Complex Collision for Occlusion
(遮挡是否采用复杂碰撞体积)
其中Occlusion Trace Channel
(遮挡追踪通道)最好为自定义的通道(这样在检测的时候才不会与其他设置好的发生错误)。创建自定义通道的方式:ProjectSettings
->Collision
->Trace Channel
->New Trace Channel
于是我们再将通道设定为我们刚刚创建的通道。(教程创建的是Audio
)
除此之外我们需要注意一点,我们不能让该通道与人物本身产生Block
,所以我们需要检查一下人物自身的碰撞,打开人物蓝图胶囊体碰撞:
Audio
(刚刚创建的通道),碰撞设置为Ignore
。
同时为了方便起见,如果你想有些物品也不想与之产生碰撞,你可以添加一个Preset
预设值,这样就可以简化你的操作步骤:创建方式,同样也是在创建通道的同一地方。(Audio设置为Ignore
)
默认情况下,音效会随距离产生衰减,但它并不适合所有的音效。探索不同的衰减功能,以及如何创建自定义的衰减函数(曲线)、如何组合不同衰减的功能来展示音效随距离呈现的不同元素。
设置方式:在Attenuation Distance
设置Attenuation Function
每个音效的衰减函数应用不同,应用的越精确,声效也越真实。
线性
对数
反转
对数反转
自然声效,图中绿色的为自然,蓝色的为对数,可以看出过度更加自然。
同时你可以自定义曲线,来自定义一些比较特殊的音效
并且,如果一个SoundCue
如果有一种以上的音效,你可以将里面每种音效应用不同衰减,当然看你的需求了。
声音在空气中传播时会损失能量。此效果不仅会让音效的音量会随距离而产生衰减,还会影响到音效内容的频率。探讨如何使用衰减空气吸收设置的高低过滤来模仿这种变化。
空气对高频声音的吸收要远高于低频声音,所以一般能传播最远的也是低频声音。
开启的方式:Attenuation Air Absorption
(衰减空气吸收)
勾选上Enable Air Absorption
Min Distance Range
(最小距离范围)对应Low Pass Cutoff Frequnency
(低通切断频率),High Pass Cutoff Frequnency
(高通切断频率),也就是说,在这范围之内的音频频率才能被通过。在距离最近的时候,高频低频率都可以听的很清楚,所以通过的频率也最大(上图设置对应的低通频率为20000),在 Max Distance Range
过滤掉高频率,通过低频率,对应的低通频率为3000。
如何在游戏中创建空间化立体音效,以及如何为更大的音效资源创建非空间化半径,呈现更加真实的效果。
在UE4环境音效与程序化音效中我们简单的了解了一下空间化的作用,但是我们现在需要模拟一下,当人物没有靠近声源的时候,是采用非空间化的,直到靠近了才启用空间化。这就好比:瀑布,你离他很远的时候,声音的传入是从左右耳分别交替的。再如当一个移动的生物突然靠近你的时候,是启用了空间化,远离就关闭了空间化。
这里我们就需要设置空间化设置里面的Non-Spatialized Radius
(非空间化半径)。
瀑布的你可以设置为2000(当距离超过2000时,不启用空间话)
生物的你可以设置为200(当距离超过200)
Normalize 3D stereo Sound
(单位化3D立体音效):空间化的实际上是左右双声道的融合,这就会引发一些问题,左右声道的音效过大,合并起来就会发生音效重叠。所以这时我们就勾上这个选项,避免这个问题
3D Stereo Spread
(3D立体扩散):放置在场景中立体声源左右通道之间的距离
通常最重要的音效都是玩家正在注视的内容。在本模块中,学习如何清理游戏中的音频混合,以及使用聆听者聚焦系统来让玩家关注特定的音效。
开启的方式:Attenuation Listener Focus
(衰减聆听者聚焦)
勾上Enable Listener Focus
角度之间的变化我们可以用以下蓝图进行测试:
为了给你的游戏关卡增添真实感,音效通常应该会移动,而不只是单纯的静态音效。本模块将展示如何使用序列工具,让音效可以在空间中动起来。
创建方式:Cinematics
->Add Level Sequence
创建之后将要使用的音频添加进来。
再添加Transform
轨道,添加初始位置的关键帧。为了方便起见,你可以将时间按桢显示改成按秒显示。
随后将该Sequnce在场景中添加关键帧。方便的操作你可以将视频模式改成顶视图。Alt+J
图中蓝色的轨迹便是已经添加好的关键帧轨迹(形成了一个闭合的圈)。音频便可以从初始位置循环至初始。
随后设置Sequence
中细节面板的值:
勾上AutoPlay
(自动播放),Loop
模式选用Loop Indefineitely
(永远循环),Play Rate
(播放速率)可以自己测试。Random Stat Time
(每次开始的位置都不同)。当然你可以在关卡蓝图中自行设置什么时候播放。
有时候你可能还想要将聆听者的位置从玩家的位置中分离出来。在本视频中,你将学到如何使用“音频聆听者重载”节点,在固定位置之间切换聆听者。
利用Set Audio Listener Override
函数,将自身(Get Player Controller
)与想要获取声音位置的引用(图中为BP_MagicStoneExtras
)转换。回到初始状态就利用Clear Audio Listener Override
函数。可以实现监控视频的功能。
针对第三人称、等轴或2D游戏,音效聆听者经常不和玩家角色处在同一个位置。学习如何将音频聆听者附加到特定的摄像机上,以及如何调整位置,使其位于摄像机和玩家角色之间的指定距离。
本教程中切换第三人称,和第一人称和上面的方法是一样的,
切换试听就是将自身附着在摄像机上。
但需要注意的是,这里的第三人称并不是附着在第三人称的摄像机上,而是新建了一个使SpringArm(弹簧手臂)作为基类的Component Sence
。在探讨为什么这样做的理由之前,我们先来思考一下,假如你当前是第三人称模式,你的试听是附着在摄影机上的话,就会引起一个非常诡异的现象。人物靠近了火堆,因为试听附着在了摄影机上,便听不见火堆的音效,如下:
所以为了解决这一问题,第三人称试听附着的位置我们就需要一个适中的位置,这就需要Spring Arm
来帮助我们调节了。于是教程中给了以下蓝图来将附着的位置进行调整。