一种通用游戏音效管理系统和方法技术方案

技术编号:11325317 阅读:132 留言:0更新日期:2015-04-22 14:10
本发明专利技术公开了一种游戏音效管理系统和方法,系统包括Fmod音效引擎封装器、音效数据索引器和音效调用器,方法包括:加载Fmod音频引擎,并且向Lua脚本提供Fmod音频引擎的部分程序接口;将游戏所需的音效数据和路径进行组织,并且生成预设的或者开放编辑的分布式存储数据格式的音效路径数据表;调用Lua脚本获取音效动作指令,然后从音效数据索引器中获取音效资源来实施后续动作。本发明专利技术的有益效果为,降低游戏音效设置的复杂度,使游戏音效设计人员更加专注于音效的设计,提高音效设计质量;只需修改音效路径数据表就可以使音效资源调用生效,提高了游戏开发效率;供音效修改的检测机制,减少人失误;提供释放音效资源的机制,避免音效资源冗余。

【技术实现步骤摘要】

本专利技术涉及,尤其涉及一种基于Fmod和Lua的通用游戏音效管理系统和方法,属于游戏开发领域。
技术介绍
音效是指由声音所制造的效果,在游戏里中可以增强场景的真实感、盈造气氛等。通常需要反复推敲各种音效的实施效果,才能选用更合适的音效来适配游戏的风格和节奏。而在游戏开发中通常采用Fmod音频引擎进行音频文件处理和音效操作,以实现各种各样的游戏音效的变化和效果。例如,Fmod引擎可以对原音频进行压缩和打包,还可以将待播放声音转换成Sample (样本),该样本将在播放前先解压到内存,然后再进行多次播放。然而在游戏开发过程中,一般通过直接操作原始音频文件以实施音效操作,但是这种传统的操作方式存在缺陷。由于要在外部对原始音频的文件进行压缩操作,如果需要调整样本,还要到游戏开发工程中查找出相应文件来调整,尤其在查找音频文件时还需要到目录中搜索。但是游戏开发人员通常将文件的路径固化在游戏程序代码中,导致后期对要播放音效进行修改时,涉及到代码的修改,改动量较大并且使程序维护麻烦。而且,当需要删除没用的样本时如果稍不小心操作失误,从而导致报错。尤其在删除音效资源的情况下,但在程序代码中没有删除对应的音效路径,会造成程序对音效资源文件的引用混乱,产生程序错误。另外,由于音效路径的错乱,还使得程序里用不到音效资源仍然打包到音效包里,引起资源的冗余。在传统的音效操作方式中,在对音效功能进行扩展的情况中,比如从多个样本中随机抽取一个出来播,又比如随机调整音量、音调和音频,则需要额外的代码来封装,从而加大音效功能扩展的复杂程度。
技术实现思路
针对现有技术的缺陷,本专利技术提供,有效地提尚游戏音效的开发效率,并且提尚游戏音效的设计品质。为了实现该目的,本专利技术的技术方案采用Fmod音频引擎结合Lua脚本,封装构成一套通用的游戏音效管理框架,以解决游戏中的音效的播放、打包、修改效果、更改音效等问题。其中,Lua脚本是一种小巧的动态类型脚本,可以嵌入或整合到游戏程序中,从而为其提供灵活的扩展和定制功能。而且Lua是解释性的语言,修改后便可以执行,无须编译。本专利技术的技术方案一方面提供一种游戏音效管理系统,包括:Fmod音效引擎封装器,用于在游戏系统中加载Fmod音频引擎,并且向Lua脚本提供Fmod音频引擎的部分程序接口,使Lua脚本调用Fmod音频引擎的部分功能;音效数据索引器,用于将游戏所需的音效数据和路径进行组织,并且生成预设的或者开放编辑的分布式存储数据格式的音效路径数据表,供Lua脚本读取;音效调用器,该音效调用器分别与Fmod音效引擎封装器和音效数据索引器连接,用于调用Lua脚本从游戏系统中获取音效动作指令,然后从音效数据索引器中获取音效资源来实施后续动作,该后续动作包括对音效进行播放、打包、修改效果和更改的动作。进一步,所述音效数据索引器包括:音效存储模块,用于储存音效资源以及至少一个音效路径数据表;音效索引管理模块,该音效索引管理模块与音效存储模块连接,用于读取音效资源的分类、每个音效的名称和路径,然后分别对应每一类音效资源创建音效路径数据表,其中音效路径数据表采用分布式存储数据格式,使音效名称信息储存为音效路径数据表的主键,并且使音效路径信息储存为主键的对应值。进一步,所述音效索引管理模块包括:音效索引编辑模块,用于为用户提供修改所述音效路径数据表的接口和界面,从而通过修改音效路径数据表的主键及其对应值以调整游戏所需的音效;音效索引更新检测模块,用于更新经由音效索引编辑模块修改的音效路径数据表,根据修改的主键及其对应值以检测储存在音效存储模块中是否存在与该主键及其对应值关联的音效及其路径,如果存在相应的音效及其路径,则完成音效路径数据表的更新,否则重新触发音效索引编辑模块进行音效路径数据表的编辑。进一步,所述音效调用器包括:音效指令接收模块,用于接收游戏系统输出的音效动作指令;数据查询模块,用于读取音效数据索引器输出的音效路径数据表,查询与所述接收的音效动作指令关联的音效及其路径;Fmod引擎通信模块,用于与游戏系统引擎和封装加载的Fmod音频引擎的程序接口进行通信;音效执行模块,用于根据所述接收的音效动作指令和所述音效路径数据表,调用Lua脚本解析与所述音效动作指令对应的动作和音效的路径,然后通过游戏系统的程序接口执行该音效的后续动作;逻辑交互模块,用于反馈音效的播放逻辑标识和音效的播放状态信息到游戏系统,实现所述游戏音效管理系统与游戏系统中的各个软件模块的逻辑交互。作为以上技术方案的一种改进,该系统还包括:音效资源释放器,用于根据音效数据索引器所编辑和更新的音效路径数据表,调用游戏程序的编程接口将对应在音效路径数据表中删除的音效资源从音效打包中释放或者从游戏内存中释放。本专利技术的技术方案另一方面提供了一种游戏音效管理方法,包括如下步骤: A、在游戏系统中加载Fmod音频引擎,并且向Lua脚本提供Fmod音频引擎的部分程序接口,使Lua脚本调用Fmod音频引擎的部分功能; B、将游戏所需的音效数据和路径进行组织,并且生成预设的或者开放编辑的分布式存储数据格式的音效路径数据表,供Lua脚本读取; C、调用Lua脚本获取音效动作指令,然后使用获取的音效资源来实施后续动作,该后续动作包括对音效进行播放、打包、修改效果和更改的动作。进一步,所述步骤B包括:在存储介质中储存音效资源以及至少一个音效路径数据表;读取音效资源的分类、每个音效的名称和路径,然后分别对应每一类音效资源创建音效路径数据表,其中音效路径数据表采用分布式存储数据格式,使音效名称信息储存为音效路径数据表的主键,并且使音效路径信息储存为主键的对应值。优选地,所述步骤B还包括:为用户提供修改所述音效路径数据表的接口和界面,通过修改音效路径数据表的主键及其对应值以调整游戏所需的音效;更新已修改的音效路径数据表,根据修改的主键及其对应值以检测在所述存储介质中是否存在与该主键及其对应值关联的音效及其路径,如果存在相应的音效及其路径,则完成音效路径数据表的更新,否则重新编辑所述音效路径数据表。进一步,所述步骤C包括:接收游戏系统输出的音效动作指令;读取所述音效路径数据表,查询与所述接收的音效动作指令关联的音效及其路径;与游戏系统引擎和封装加载的Fmod音频引擎的程序接口进行通信;根据所述接收的音效动作指令和所述音效路径数据表,调用Lua脚本解析与所述音效动作指令对应的动作和音效的路径,然后通过游戏系统的程序接口执行该音效的后续动作;反馈音效的播放逻辑标识和音效的播放状态信息到游戏系统,与游戏系统中的软件模块进行逻辑交互。优选地,所述游戏音效管理方法还包括:根据已编辑和更新的音效路径数据表,调用游戏程序的编程接口将对应在音效路径数据表中删除的音效资源从音效打包中释放或者从游戏内存中释放。[0当前第1页1 2 3 本文档来自技高网...
一种通用游戏音效管理系统和方法

【技术保护点】
一种游戏音效管理系统,其特征在于,该系统利用Fmod音频引擎结合Lua脚本来实施,并且该系统包括:Fmod音效引擎封装器,用于在游戏系统中加载Fmod音频引擎,并且向Lua脚本提供Fmod音频引擎的部分程序接口,使Lua脚本调用Fmod音频引擎的部分功能;音效数据索引器,用于组织游戏所需的音效数据和路径,并且生成预设的或者开放编辑的分布式存储数据格式的音效路径数据表,供Lua脚本读取;音效调用器,该音效调用器分别与Fmod音效引擎封装器和音效数据索引器连接,用于调用Lua脚本从游戏系统中获取音效的动作指令,然后从音效数据索引器中获取音效资源来实施后续动作,该后续动作包括对音效进行播放、打包、修改效果和更改的动作。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈汉辉邹涛陈飞舟
申请(专利权)人:珠海金山网络游戏科技有限公司广州西山居世游网络科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1