chapter10-游戏音效编程_第1页
chapter10-游戏音效编程_第2页
chapter10-游戏音效编程_第3页
chapter10-游戏音效编程_第4页
chapter10-游戏音效编程_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第10章游戏音效编程浙江大学软件学院梁秀波Email:声音根底常见的声音引擎简介Cocos2d-x中的音乐与音效游戏音效实例编程小结主要内容声音:50Hz-22,000Hz之间的压力波本质上而言是正弦波,具有波幅和频率等属性声音的低频局部不仅仅被耳朵,也可被身体所感知人感知到声音从某一地方发出不能精确地定位出音源捕捉声音通过声卡上的ADC〔模拟–数字转换器〕来完成声音根底——什么是声音声音根底——什么是声音声音表现为波形,可以记录、保存以及精确播放声音(Sound)不等同于音乐(Music)PCM(脉冲编码调制)播放所有交互、电影、游戏中所需要的.声音可以被合成出任意效果声音根底——什么是声音每次采集的数据称为采样〔Sample)每秒钟采样次数称为采样频率〔SampleFrequency〕通常的采样率:11025Hz,22050Hz和44100Hz(44.1kHZ,CD音质)采样品质:类似于图像像素的位深,通常为8bit和16bit。声音根底——什么是声音声音根底——什么是声音声音根底——什么是声音每秒钟CD品质的声音信号占据的空间是176KB,3分钟长度的歌曲容量是31MB音频的压缩和解压缩:利用时空连贯性、查找表等技术。有损压缩:MPEGLayer3〔MP3):把局部并不需要的信息过滤掉,例如一些人耳听不到的高频率信号,或者一些无用的环境噪音。无损压缩:RLE,运长编码声音根底——声音的编码存储采样〔Sampling〕通过任意方式录制声音合成(Synthesis)模拟合成调频合成波表合成声音根底——对声音的操作模拟合成不同频率波形的简单叠加从已有波形中选择叠加后进行滤波调频合成通过改变频率调整输出波形波表录制下来的每种乐器的声音,以数字化形式存放,通过选择哪件乐器演奏、音量和音速、混合和平移参数等来“奏响”记录下来的声波来合成出新的声音。声音根底——对声音的操作混音:同时播放多个声音〔背景音乐,语音,事件反响音等〕最简单的方法就是将两个声音样本的数值依次相加起来,如下图:声音根底——对声音的操作MIDI-MusicalInstrumentDigitalInterface〔乐器数字界面〕用于控制音乐合成器合成细节由合成器决定MIDI数据仅仅是一个事件的列表,描述了一个声音卡或其他播放设备要产生某种声音的特定的步骤每一个描述乐器演播的动作的字都赋给一个特定的二进制代码。要奏响一个音符,你要发出一个“音符开”〔NoteOn〕消息,然后对该音符赋以一个“速度”,用以判断该音符能奏多响。其他控制包括选择哪件乐器演奏、混合和平移声音以及控制电子乐器等声音根底——对声音的操作Bfxr游戏音效生成器支持在线使用和下载使用如图就是Bfxr主界面声音根底——简单的音效制作工具如图就是Bfxr音效混合器的选项界面声音根底——简单的音效制作工具BASS:Windows平台下的常用声音引擎,BASS支持多种开发语言MikMod:跨平台,支持几乎所有的流行音频格式的免费软件FMOD:支持几乎所有的开发平台ModPlug:非常简单的引擎,提供普通的声音的特效处理常见的声音引擎简介MilesSoundSystem:快速开发工具,也是目前最好的音频开发库EAX:“环境音效果扩展”〔EnvironmentalAudioExtension〕DOLBYDIGITALENCODING:杜比编码是专业的音频开发工具常见的声音引擎简介游戏中的声音一般分为两类背景音乐:长度较长,频率低,同一时刻只能播放一首声音特效:长度短,频率高,同一时刻可以播放多个音效CocosDenshion:Cocos2d-x中音效引擎库在游戏的制作过程中,只需引入SimpleAudioEngine类即可Cocos2d-x中的音乐与音效Cocos2d-x在不同的开发平台下所支持的音乐与音效格式有所不同,表9-1和表9-2列出了在不同平台下Cocos2d-x所支持的音乐与音效格式。Cocos2d-x中的音乐与音效平台支持格式Androidmp3、mid、ogg和waviOSAac、caf、mp3、m4a和wavWindowsmid、mp3和wav平台支持格式Androidogg和waviOScaf和wavWindowsmid和wavCocos2d-x所支持的音乐格式Cocos2d-x所支持的音效格式音乐与音效的预加载背景音乐的预加载(preloadBackgroundMusic)游戏音效的预加载(preloadEffect)音乐与音效的播放与停止播放游戏背景音乐(playBackgroundMusic)播放游戏音效(playEffect)停止播放游戏背景音乐(stopBackgroundMusic)停止播放游戏音效(stopEffect/stopAllEffects)Cocos2d-x中的音乐与音效Cocos2d-x中的音乐与音效——例如//播放背景音乐SimpleAudioEngine::getInstance()

->playBackgroundMusic("LuckyDay.mp3");//停止播放背景音乐SimpleAudioEngine::getInstance()

->stopBackgroundMusic();Cocos2d-x中的音乐与音效——例如//播放游戏音效id1=SimpleAudioEngine::getInstance()

->playEffect("gem-0.wav",true);id2=SimpleAudioEngine::getInstance()

->playEffect("FX081.mp3",true);

//停止播放所有游戏音效SimpleAudioEngine::getInstance()->stopAllEffects();

//停止播放指定的游戏音效SimpleAudioEngine::getInstance()->stopEffect(id1);

音乐与音效的暂停与恢复播放与游戏音乐、音效的播放与停止的实现方式类似暂停播放(pauseBackgroundMusic、pauseEffect、pauseAllEffects)恢复播放(resumeBackgroundMusic、resumeEffect、resumeAllEffects)值得注意的是,在一般情况下,暂停播放游戏的背景音乐的函数和恢复播放背景音乐的函数,是在Cocos2d-x的AppDelegate类的事件处理函数中被调用。Cocos2d-x中的音乐与音效其他成员回放游戏的背景音乐(rewindBackgroundMusic)判断当前是否播放游戏的背景音乐(isBackgroundMusicPlaying)判断游戏背景音乐是否可以播放(willPlayBackgroundMusic)获得游戏的背景音乐的音量(getBackgroundMusicVolume)设置游戏的背景音乐的音量(setBackgroundMusicVolume)获得所有游戏音效的音量(getEffectsVolume)设置所有游戏音效的音量(setEffectsVolume)将预加载游戏音效从缓存中删除(unloadEffect)关闭SimpleAudioEngine类对象实例(end)Cocos2d-x中的音乐与音效设置游戏背景音乐的音量大小Cocos2d-x中的音乐与音效——例如//获得滑动条的值floatbgVolume=bgVSlider->getValue();//设置音量SimpleAudioEngine::getInstance()

->setBackgroundMusicVolume(bgVolume);游戏简介实现一个简单模拟钢琴的游戏,通过点击不同按键产生不同的声音效果。辅助工具:CocosStudio

UI编辑器CocosStudio动画编辑器游戏音效编程实例游戏制作步骤使用CocosStudio

UI

编辑器编辑实现游戏钢琴界面并加载,每个按键就是一个按钮使用CocosStudio动画编辑器编辑实现小喇叭动画并加载为钢琴按键

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论