当前位置: 首页 > news >正文

简便快捷:如何在Wwise中管理您的SoundBanks

简便快捷:如何在Wwise中管理您的SoundBanks

https://gameinstitute.qq.com/community/detail/109648

简便快捷:如何在Wwise中管理您的SoundBanks

发表于2016-09-23

评论0分享

分享到

  •  
  •  
  •  

1.1k浏览

 

您在创建SoundBanks(声音库)时做出的选择会影响到管理它们时的工作量,也会影响到游戏的性能。我们建议声音设计师和程序员一起建立一条最合适你们游戏的策略。

以下是在Wwise中管理SoundBanks几种不同方式的概览。

用一个SoundBank来管理全部

这样做之后的大部分情况下,您的游戏可能不会有多余的内存,但把所有的声音放在同一个位置有个很大的优势:使用和维护起来非常简单。

优点

  • 对声音设计师来说,这是最简单的维护SoundBanks内容的方法
  • 改变SoundBanks的内容时无需重新编译游戏
  • 不需要在游戏内进行复杂的SoundBanks载入和卸载
  • 不需要在游戏内追查声音是否可用

缺点

  • 因为整个游戏的所有Events(事件)、结构和需驻留内存的媒体一直保持载入状态,导致内存使用效率较低

基于关卡/场景的多个完整SoundBanks

这一方法对于单人模式游戏最为适合,因为所有的声音和振动效果(译注:Wwise Motion 插件)都是同一位置驱动的。把内容分割到不同的SoundBanks之中,相比只使用一个SoundBank来说,更有助于高效地管理游戏内存。

优点

  • 一般来说比“一体化”法需要的内存更少
  • 在游戏中做整合会比较简单

缺点

  • 对于有复杂音频或动作要求的在线游戏或基于Event的游戏来说,适应性不佳
  • 可能导致内存中重复载入一些媒体文件的复本
  • 可能增加SoundBanks在磁盘上占用的总空间

按媒体种类

游戏可能很复杂,多种因素会影响到声音触发的方式。比如,在一个基于Event或者基于对象的环境中,根据听者与游戏中其他对象的距离,在内存中可能载入不同的声音。因此,当游戏中的对象在听觉范围内,或者只要存在,它就可能载入一系列的SoundBanks。

优点

  • 优化内存使用
  • 让您能控制游戏中任何点上应载入哪个媒体

缺点

  • 需要声音设计师和游戏开发人员间做非常多的沟通来确认哪些SoundBank需要载入,何时载入

动态式

这一方法让您能更好地控制每当Events准备好时(译注:即当游戏预知需要发送某些Events并调用 API 来做好“准备”时)要载入的媒体。只有同时关联到准备好的Events和目前活跃Game Syncs(游戏同步器)的媒体才会载入内存。您要做的只是指定可能会用到的Events和Game Syncs,游戏就会载入合适的媒体。

优点

  • 简化音频包生成流程
  • 实现最细的媒体粒度水平
  • 保持较低的整体内存占用
  • 使流程的自动化更为便捷
  • 只载入有用的媒体

缺点

  • 可能增加在磁盘上的读取和搜索次数
  • 难以控制使用的内存总量
  • 在准备很多Events时可能导致流播放带宽较高

离线解压缩

可以预先解压Vorbis音频文件。这一动作会在增加一点SoundBanks大小的同时,减少触发声音所需的CPU运算时间。它可以结合以上任意一种方法来优化管理您的声音资源。

文档

管理SoundBanks

视频教程

Wwise 快速上手-创建SoundBanks

Wwise教程15-创建和管理SoundBanks

 

 

 

 

 

相关文章:

  • Unity项目接入Wwise
  • 资源几点想法
  • 【Unity3D Editor】导入图片自动转换成Sprite
  • Unity5.x版本项目中删除Library目录后重新打包AssetBundle时,MD5会莫名其妙的变化,何解?
  • unity assetBundle更新 打包变化
  • Unity 打包AssetBundle文件的MD5值变化问题
  • Unity3D资源管理——Unity2017 Assetbundle依赖打包
  • AssetBundle粒度与分配策略剖析
  • Unity Prerfab 环形依赖
  • Unity3D研究院之查找资源被哪里引用了
  • Unity VS 暂挂程序
  • xlua扩展第三方库记录
  • XLua-操作与使用
  • 如何优雅使用Sublime Text3(Sublime设置豆沙绿背景色和自定义主题)
  • Unity 无缘无故提示缺少类型解决方法
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【刷算法】从上往下打印二叉树
  • 2017 年终总结 —— 在路上
  • Apache Zeppelin在Apache Trafodion上的可视化
  • Electron入门介绍
  • exports和module.exports
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • swift基础之_对象 实例方法 对象方法。
  • vue 配置sass、scss全局变量
  • vue:响应原理
  • 阿里研究院入选中国企业智库系统影响力榜
  • 闭包,sync使用细节
  • 计算机在识别图像时“看到”了什么?
  • 前端存储 - localStorage
  • 区块链分支循环
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 我感觉这是史上最牛的防sql注入方法类
  • 物联网链路协议
  • 小程序button引导用户授权
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (bean配置类的注解开发)学习Spring的第十三天
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (分布式缓存)Redis哨兵
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (十) 初识 Docker file
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .NET CLR基本术语
  • .NET Core引入性能分析引导优化
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .Net MVC4 上传大文件,并保存表单
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .py文件应该怎样打开?
  • //解决validator验证插件多个name相同只验证第一的问题
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题