Unity 社区
4
0

Wwise&Unity的有机结合(应用篇)

郡墙
Programmer
阅读 941
2020年2月5日
接续上篇的Wwise集成,本篇将分享Unity与Wwise引擎的场景应用思路
3D声像的设计
什么是声像?
声像是指乐器在声场中的发声位置点。
事情并没有这么简单,那么人耳是如何听声辨位的呢?
举几个例子
如下图所示,在理想环境中,左右前方各有一个音响,同时以相同的音量播放相等的音频信号。
那么你会感觉声音是从正前方传来的。
实验一:将右边音箱的音量逐渐加大,你就会感到声像位置逐渐向这个音箱偏移。当两个音箱的声级差超过了15分贝的时候,你就会感到声像几乎完全被固定在右边的音箱上。 这说明了,人是靠两耳得到的声音的声级差来辨别声音的方位的。
实验二: 将右边的信号延时播放,并逐渐加大延时量,随着两个音箱所发出的声音之间的时差逐渐加大,你会感到,声像逐渐向左边的音箱偏离。当两个音箱之间的时超过3毫秒后,你就会感到声像是在左边的音箱上了。但事实上,两个音箱的音量是一样的。也就是说,在3~30毫秒的范围内,人耳会将声源的位置确定在首先到达耳朵的那个声源上。这就是声学上著名的“哈斯效应”。如果延迟达到50毫秒以上,你仍然感觉到声源是从未经延时的音箱上来的,但能感到这个声音之后有一个回声。
双耳效应是人们依靠双耳间的音量差、时间差和音色差判别声音方位的效应。声音强弱不同时,可感受出声源与听音者之间的距离。
如何设计角色扮演类的声像
在RPG品类的游戏中,一般是由第三人称的相机视角来渲染画面的。
因此听觉效果3D位置有以下特点:
位置使用角色位置
朝向使用相机朝向
法向使用角色法向
如下图所示
示意代码:
using UnityEngine; [ExecuteInEditMode, AddComponentMenu("Wwise/AkGameObj3rdPersonCam")] public sealed class AkGameObj3rdPersonCam : AkGameObj { private Transform _CameraTra; private Vector3 _CacheForwad; protected override void Awake() { _CameraTra = Camera.main.transform; _CacheForwad = _CameraTra.forward; _CacheForwad.y = 0; base.Awake(); } public override Vector3 GetForward() { var x = _CameraTra.forward.x; var z = _CameraTra.forward.z; var dst = Mathf.Sqrt(x * x + z * z); _CacheForwad.x = x / dst; _CacheForwad.z = z / dst; return _CacheForwad; } }
空间感的营造方式
距离衰减
在确定每一类音频类型、创作意图后,就需要划分每个音源的衰减层次。以便在混音后的声音更有层次感。
声椎衰减(音源朝向)
距离衰减解决了基于“面”的音频空间层次感的营造。但是这个还不够有变化。想象一下,在战场中有一个骑兵正迎面朝你冲锋,你背后的队友向别人发起冲锋,两者发出的声音是成一定夹角区间的音束,从而你能分辨出发声体的相对方位。
距离衰减与声锥衰减的配合设计,可以使声音的方位、层次更佳立体饱满,从而提升整体的听感体验。
SoundBank整合思路与内存管理
SoundBank是什么?存储了哪些信息?
在Wwise中,有两种类型的SoundBank:
Initialization Bank : 一个特殊的Bank文件,包含了Wwise工程所有的信息,例如:总线结构、State、Switche、RTPC。这个文件会在Wwise每次生产Bank文件时 自动 重新生成。 该文件必须要使用其他Bank之前加载,否则其他Bank将无法正常解析。(可以理解有基础依赖)
SoundBank : 该文件 可以存储 事件的详细信息、音频、其他插件所需要的数据结构。可以简单理解为是一个 数据存放的容器。 该文件可以在运行中自由的控制加、卸载。
如何合理的组织Bank以及规划Bank粒度
这个问题和 如何规划 Unity 的AssetBundle的问题很相似,管理方式也大同小异。
资源的规划和组织的粒度,需要依据项目类型、设计思路、程序技术来思考如何做到项目最优。
资源的组织大致可以分为 具体业务专属、游戏生命周期通用等。程序可以实现数据采集进行 数据分析给出资源组织和规划的动态规划最优解。
有需要讨论的小伙伴可以点赞,关注,互动~
Wwise&Unity的有机结合(集成篇)
发布于技术交流
0条评论

AI

全新AI功能上线

1. 基于Unity微调:专为Unity优化,提供精准高效的支持。

2. 深度集成:内置于团结引擎,随时查阅与学习。

3. 多功能支持:全面解决技术问题与学习需求。

AI