美文网首页
Unity3d集成Wwise音频引擎的心得体会(一)

Unity3d集成Wwise音频引擎的心得体会(一)

作者: 八百里外一枪 | 来源:发表于2019-03-20 00:05 被阅读0次

    最近在看Unity3d集成Wwise音频引擎的内容,总的来说Wwise提供的Unity集成插件还是很易于使用的,尽管也有一些小问题,但是还在个人可以解决的范围内

    为什么要用Wwise?或者说为什么要用音频中间件?

    这个问题算是我最后考虑的(至今也没彻底想明白),网上能了解到的主流的音频中间件有fmod,criware,wwise等等。网上说法结合自己主观的理解,相比Unity3d自身也提供的音频功能,使用音频中间件对音效师和程序员更友好。从wwise的角度将,友好体现在封装上,音效师产出的资源在wwise引擎中被封装成声音库(Soundbank,.bnk后缀),bnk文件可以包含事件(Event)和媒体文件(media,媒体文件也可以松散放在bnk之外,此时就是 .wem后缀),程序员关心的不是声音本身,而是wwise封装好的事件,省去了自己造轮子的时间(造出来的还不一定能用),需要头疼的和音效有关内容大部分也都离程序远去了o( ̄▽ ̄)ブ

    下载Wwise

    Wwise工具在官网提供了下载地址,旧版能从官网下载安装包,新版貌似必须通过Wwise launcher来进行下载,这里主要问题是网络连接速度。下载完成后后德Wwise launcher安装包,安装后启动,开始下载Wwise引擎,建议下载一个离线文件,以节省需要反复安装wwise时重新下载的耗时。

    集成到Unity

    将Wwise launcher选项切换到Unity页面,Wwise launcher会自动检测并显示的Unity工程,没有的可以手工导入。点击集成到Unity,Wwise会被自动添加到Unity特定工程。完成后Wwise会在Unity工程目下新增一个Wwise工程目录,并加Wwise插件放到Unity工程的Assets目录下。

    完成~,对于不用编程方式的同学,Wwise接入内容到此结束,完结撒花
    下面是对需要编程开发时的小坑

    Wwise的一些小坑

    • 移动Wwise目录

    目的:Wwise插件目录会直接放置的目录在Assets下,对设计有严格要求的工程,可能需要移动目录,有同学直接把目录移动到Plugins(或者其他哪个地方),那么问题来了DllNotFoundException。

    解释:目前wwise接入的C#代码封装对路径配置非常不灵活的,大量的文件涉及到工程路径,私有变量,局部变量的拼接。Wwise通过检测路径获取必要的平台信息,生成和读取配置。贸然移动会造成各种问题。

    解决方法:有,但是非常麻烦,至少需要修改下面文件中所有的路径相关配置

    1. AkPluginActivator.cs关系到dll加载
    2. AkWwiseProjectInfo中路径关系到AkWwiseProjectData.asset初始化信息加载
    3. AkWwiseInitializationSettings设置信息加载
    4. WwiseSettings关系xml配置路径
    5. AkWwiseTreeView修改路径影响图标路径
    6. TreeViewControl影响wwise picker
    7. AkWwiseComponentPicker有一个生成记录的路径需要修改(未找到路径)
    8. WwiseObjectReference关系到配置文件生成路径
      .......
    • Unity切换平台运行

    目的:在Unity编辑器环境中,用win的同学想切成安卓平台,用mac的同学想切成win平台,这很正常,然鹅,看看wwise插件里写的平台宏定义... #if (UNITY_STANDALONE_WIN||!UNITY_EDITOR)||UNITY_EDITOR_WIN

    解释:Wwise针对不同平台有各自的配置文件,这些文件由宏来区分,Wwise的宏写法会导致用什么操作系统的只能跑什么操作系统的相关配置文件

    解决方法:暂不确定,改宏定义,同时wwise会自动切换dll,所以涉及启用dll的部分逻辑也需要修改。

    以上是一点点小心得体会,时间关系先写这么多,之后有进展会继续补充

    相关文章

      网友评论

          本文标题:Unity3d集成Wwise音频引擎的心得体会(一)

          本文链接:https://www.haomeiwen.com/subject/tqoomqtx.html