2020-08-09
距离第一次写unity接入wwise的心得体会一年半了,再回来继续写~
Wwise概念和用法怎么学
看Wwise官网!!!Wwise很独立,官网是权威解释。相比其他有些工具官网一塌糊涂,全仰仗民间大神贡献的情况。Wwise很不一样,官网的中文翻译做的是极好的,而且有教学,问答,博客板块,基础内容以及很多知名项目分享的使用技巧可以直接在官网搜到。所以看官网是想系统学习Wwise的第一选择
那写心得体会干嘛
Wwise官网够系统不代表最适合项目。个人理解,官网demo提供的是一套简易方案,是音效师有unity3d基础,能较高程度介入到客户端开发的方案。那么问题来了,要是音效师懂unity3d,会写代码,会做性能测试,那最棒了!!!然而,我们音效外包的/音效不懂unity3d/音效太忙/程序要动态控制(以上情况任选)等等都会导致实际音效师不参与或较少参与unity3d操作,也就是说在Wwise里生成必要音效资源后,后续由是程序和策划配合进行。所以才有这篇心得体会,尽量也只写体会,不涉及实际代码。由此请注意,心得体会出自个人理解,仅供参考,如有错误请指正
Wwise和Unity3d的协作
假设现在音效师在Wwise把资源生成好了,Wwise的工程里会有什么呢?
- 导入origin source原始音频
原始声音文件,只能是wav格式,会被导入到Wwise里保存一份 - 生成Audio(声音记录)
Wwise里第一层封装,声音记录,这个记录内部会记对应的原始声音文件 - 生成Event(事件)
Wwise里第二层封装,Event里可以包含多个action(行为),常见的action有play(播放一个声音),stop(停止声音),post(触发进行另一个event)等等 - 生成并导出SoundBank(声音库)
Wwise里的第三层封装,一个SoundBank记录了多个Event。最终SoundBank会生成实际的文件供Unity3d读取,文件里包含Event和Event里要播放的声音
那么Unity3d客户端在游戏运行时要干什么?大致是个反向的过程
- 读SoundBank(声音库)
读取SoundBank文件(后续会说到媒体文件,这里理解成声音库的一部分即可),确保要发生的Event的资源加载好了 - 发Event(事件)
将Event的名字(或ID号)通知给Unity3d里的Wwise引擎,让Wwise引擎按照Event做对应的action。
好了,到处理Event时程序员是不知道Wwise引擎具体做了什么的
所以请记住
- Wwise工程里对声音控制会层层解耦。原始文件--声音记录---事件--声音库
- Unity3d工程运行时只关心SoundBank是否读取,以及要开始什么Event。不关心Event里action是什么,不关心Audio层是什么,不关心origin source原始文件是什么
那Unity3d程序员要干什么呢?
实现SoundBank管理类,Event管理类。Wwise给了SoundBank的管理例子,但没给Event的管理类,所以我们需要参照已有内容,记录声音事件开始了几个,停止了几个,获取播放进度等等
开始使用
如果上述概念理解了,那么就可以实现一个简单版的,程序可以动态控制的声音管理类了
网友评论