游戏编程技术I游戏中的声音课件.ppt

上传人(卖家):三亚风情 文档编号:3311371 上传时间:2022-08-18 格式:PPT 页数:66 大小:399.04KB
下载 相关 举报
游戏编程技术I游戏中的声音课件.ppt_第1页
第1页 / 共66页
游戏编程技术I游戏中的声音课件.ppt_第2页
第2页 / 共66页
游戏编程技术I游戏中的声音课件.ppt_第3页
第3页 / 共66页
游戏编程技术I游戏中的声音课件.ppt_第4页
第4页 / 共66页
游戏编程技术I游戏中的声音课件.ppt_第5页
第5页 / 共66页
点击查看更多>>
资源描述

1、1游戏编程技术-I第八讲 游戏中的声音2主要内容 声音的基础知识 声音的计算机处理 声音文件结构 Windows系统中声音的播放 音乐音效在游戏中的作用3声音的基础知识4声音 声音是携带信息的极其重要的媒体,是多媒体技术研究中的一个重要内容。声音的种类繁多,如人的话音、乐器声、动物发出的声音、机器产生的声音以及自然界的雷声、风声、雨声、闪电声等。这些声音有许多共同的特性,也有它们各自的特性。在用计算机处理这些声音时,既要考虑它们的共性,又要利用它们的各自的特性。5声音的本质 声音是通过空气传播的一种连续的波,叫声波。声音的强弱体现在声波振幅的大小上,音调的高低体现在声音的频率上。声音用电表示时

2、,声音信号在时间和幅度上都是连续的模拟信号。声波具有普通波所具有的特性,例如反射(reflection)、折射(refraction)和衍射(diffraction)等。6声音的特点 对声音信号的分析表明,声音信号由许多频率不同的信号组成,这类信号称为复合信号,而单一频率的信号称为分量信号。声音信号的一个重要参数就是带宽,它用来描述组成复合信号的频率范围。如高保真音信号(high-fidelity audio)的频率范围为10 Hz20 000 Hz,它的带宽约为20 kHz。声音信号的两个基本参数是频率和幅度。信号的频率是指信号每秒钟变化的次数,用Hz表示。幅度则指声音所携带的能量。7声音的

3、三要素 音调、音强、音色为声音的三要素。音强(响度)取决于声音的幅度(分贝)。音调取决于声音的频率。音色是由混入基音的泛音所决定的。8音乐音乐音乐 起初是与巫术和宗教活动联系在一起的,舜作“韶”、禹作“大夏”、武王作“大武”,“乐”被孔夫子列为“六艺”之一。后来,音乐从宗教中渐渐脱离出来,成为一种独立的艺术。9音乐 以小提琴为例,当它的A弦振动时,并不仅仅是整根弦在振动,这根弦的二分之一、三分之一、四分之一、五分之一处都在振动着。于是,整根弦的振动产生了最主要的频率,我们称之为基音基音,而弦长的二分之一、三分之一、四分之一等处的振动则产生了一些次要的频率,我们称之为泛音泛音。10音乐和噪音 如

4、果一个物体振动所发出的泛音为基音的整数倍,这个音就会具有清晰可辨的音高,我们称之为乐音,如钢琴,小提琴等发出的都是乐音乐音;如果泛音是基音的非整数倍,这个音就不具备清晰可辨的音高,我们称之为噪音噪音,如汽车发动机、计算机风扇等发出的都是噪音。11音乐的四要素音高音高:由基音的频率决定。即“哆”“唻”“咪”等音符。响度响度:由声波的振幅决定。音色音色:由基音与泛音的比例、泛音的分布、泛音随时间的衰减变化决定。不同发音源(乐器)的材质、形状不同,其泛音的排列组合也不同,也就构成了这一物体特殊的音色。时值时值:乐音振动的持续时间,即节奏。12声音的计算机处理真实声音的数字化A-D计算机合成声音D-A

5、13真实声音的数字化 信号采样 数字化14声音信号 现实世界中的声音信号是连续的 计算机描述处理的对象是离散的 所以需要对连续信号进行采样(数字化)15模拟信号 话音信号是典型的连续信号,不仅在时间上是连续的,而且在幅度上也是连续的。在时间上“连续”是指在一个指定的时间范围里声音信号的幅值有无穷多个,在幅度上“连续”是指幅度的数值有无穷多个。我们把在时间和幅度上都是连续的信号称为模拟信号。16数字信号 在某些特定的时刻对这种模拟信号进行测量叫做采样(sampling),由这些特定时刻采样得到的信号称为离散时间信号。采样得到的幅值是无穷多个实数值中的一个,因此幅度还是连续的。如果把信号幅度取值的

6、数目加以限定,这种由有限个数值组成的信号就称为离散幅度信号。我们把时间和幅度都用离散的数字表示的信号就称为数字信号。17数字信号举例 例如,假设输入电压的范围是0.0V0.7V,并假设它的取值只限定在0、0.1、0.2,0.7共8个值。如果采样得到的幅度值是0.123V,它的取值就应算作0.1V,如果采样得到的幅度值是0.26V,它的取值就算作0.3,这种数值就称为离散数值。18为什么要使用数字信号 在数字域而不在模拟域中做信号处理的主要优点是:首先,数字信号计算是一种精确的运算方法,它不受时间和环境变化的影响;其次,表示部件功能的数学运算不是物理上实现的功能部件,而是仅用数学运算去模拟,其中

7、的数学运算也相对容易实现;此外,可以对数字运算部件进行编程,如欲改变算法或改变某些功能,还可对数字部件进行再编程。19声音的采样 声音进入计算机的第一步就是数字化,数字化实际上就是采样和量化。连续时间的离散化通过采样来实现,就是每隔相等的一小段时间采样一次,这种采样称为均匀采样(uniform sampling);连续幅度的离散化通过量化(quantization)来实现 20声音的数字化 声音数字化需要回答两个问题:每秒钟需要采集多少个声音样本,也就是采样频率(fs)是多少?每个声音样本的位数(bit per sample,bps)应该是多少,也就是量化精度。21 电压范围电压范围 量化量化

8、(dec)编码编码(bin)0.5 0.7 3 011 0.3 0.5 2 010 0.1 0.3 1 001-0.1 0.1 0 000-0.3 -0.1 -1 111-0.5 -0.3 -2 110-0.7 -0.5 -3 101-0.9 -0.7 -4 10022奈奎斯特理论 采样频率的高低是根据奈奎斯特理论(Nyquist theory)和声音信号本身的最高频率决定的。奈奎斯特理论指出,采样频率不应低于声音信号最高频率的两倍,这样就能把以数字表达的声音还原成原来的声音,这叫做无损数字化(lossless digitization)。采样定律用公式表示为fs 2f 或者 Ts T/2其中

9、f为被采样信号的最高频率。23采样精度 样本大小是用每个声音样本的位数bit/s(即bps)表示的,它反映度量声音波形幅度的精度。例如,每个声音样本用16位(2字节)表示,测得的声音样本值是在065536的范围里,它的精度就是输入信号的1/65536。样本位数的大小影响到声音的质量,位数越多,声音的质量越高,而需要的存储空间也越多;位数越少,声音的质量越低,需要的存储空间越少。24声音质量与数据率质量质量采样频率采样频率(kHz)样本精样本精度度(bit/s)单道声单道声/立体声立体声数据率数据率(kB/s)频率范围频率范围电话88单道声8 2003400AM11.0258单道声11.0201

10、5000FM22.05016立体声88.2 507000CD44.116立体声176.4202000025 计算机合成声音 使用电子元器件(计算机)生成音乐的技术称为电子音乐合成。数字合成法:FM频率调制合成 音乐样本合成 语音合成26频率调制(FM)合成法 数字式频率调制合成法,简称为FM合成法。FM电子合成器先由震荡器产生一个载波作为基音,然后再产生若干个调制波带着许多泛音加在载波之上,您可以对这个组合加以任意调整,然后加上典型的声音包络线(ADSR),再通过数控滤波器和数控放大器送往数字/模拟转换器,从而形成最后的音响。27FM声音合成器的工作原理由以下五部分组成:数字载波器 调制器 声

11、音包络发生器 数字运算器 模数转换器从理论上讲,从理论上讲,FM合成方法可以产生任何乐音,但是,这合成方法可以产生任何乐音,但是,这种种“物理课式物理课式”的合成方法合成出来的声音不够真实。的合成方法合成出来的声音不够真实。28乐音样本合成法 乐音样本合成法是把真实乐器发出的声音以数字的形式记录下来,播放时再加以调整、修饰和放大,生成各种音阶的音符。乐音样本通常放在ROM芯片上,播放时以查表的方式给出,所以这种合成器又叫做波表(wave table)合成器。29Wavetable合成器的工作原理Wavetable合成器所需要的输入控制参数比较少,可控的数字音效也不多,产生的声音质量比FM合成方

12、法产生的声音质量要高。乐音样本合成法30Wavetable合成器的衡量标准 波表库容量 音调数(复音数)音色数 特殊效果31软件波表与DLS(了解)软件波表,故名思义就是用软件来模拟硬件波表合成器,它的原理跟硬件波表完全一样,只不过硬波表是把乐器的波形存放到ROM里,在需要的时候直接调用;而软波表是把乐器的波形存到硬盘上的某一个文件里,在需要的时候通过CPU运算调用。所以,软波表会占用比较多的CPU资源。著名的软波表有YAMAHA公司的S-YXG系列和ROLAND公司的VSC系列,还有韩国COWON公司的JET-MIDI。由于硬波表价格难以令大众接受并且不易升级,于是就有了价格便宜的DLS(D

13、ownloadable Sound Modules)波表合成技术,这是个介于硬波表和软波表之间的东西。虽然它能把波表存储在硬盘上,使用时再调入内存然后通过声卡上的专用音效芯片来处理。32语音合成 SDK:http:/ 语言包:http:/ Audio34WAV 用.wav为扩展名的文件格式称为波形文件格式(WAVE File Format),它在多媒体编程接口和数据规范1.0(Multimedia Programming Interface and Data Specifications 1.0)文档中有详细的描述。该文档是由IBM和微软公司于1991年8月联合开发的,它是一种为交换多媒体资源

14、而开发的资源交换文件格式(Resource Interchange File Format,RIFF)。WAV多为前面讲到的真实声音的数字化35 波形文件格式支持存储各种采样频率和样本精度的声音数据,并支持声音数据的压缩。波形文件有许多不同类型的文件构造块组成,其中最主要的两个文件构造块是 Format Chunk(格式块)Sound Data Chunk(声音数据块)。格式块包含有描述波形的重要参数,例如采样频率和样本精度等,声音数据块则包含有实际的波形声音数据。RIFF中的其他文件块是可选择的。WAV结构36WAV结构typedef struct _Chunk DWORD ChunkId;

15、/*块标志*/DWORD ChunkSize;/*块大小*/BYTE ChunkDataChunkSize;/*块内容*/CHUNK;右图中的fmt和data都是一个chunk标志符(RIFF)数据大小格式类型(“WAVE”)fmt“Sizeof(PCMWAVEFORMAT)PCMWAVEFORMATdata“声音数据大小声音数据一个WAV文件:37WAV的历史及发展 WAV格式最早仅记录声音的原始波形信号 后来,在WINDOWS平台上通过ACM(Audio Compression Manager)结构及相应的驱动程序(在这里通常称为CODEC,编码/解码器),可以在WAV文件中存放超过20种

16、的压缩格式,比如ADPCM、GSM、CCITT G.711、G.723等等,当然也包括MP3格式的数据。38MIDI 电子乐器数字接口(musical instrument digital interface,MIDI)是用于在音乐合成器、电子乐器、音序器和计算机之间交换音乐信息的一种标准协议。从80年代初问世至今,MIDI经历了长时间的发展,现已成为电脑音乐的代名词。MIDI主要由计算机合成,即计算机模拟而成 FM频率调制合成 音乐样本合成39MIDI MIDI实质上是由MIDI控制器(或MIDI文件)产生的指示电子音乐合成器要做什么、怎么做(如演奏某个音符、加大音量、生成音响效果)的一套标

17、准指令。MIDI不是声音信号,在MIDI电缆上传送的不是声音,而是动作指令。40MIDI的通道概念单个物理MIDI通道分为16个逻辑通道,每个逻辑通道可指定一种乐器。MIDI键盘可设置在这16个通道中的任何一个,MIDI合成器可以被设置在指定的通道上接受。41MIDI与WAV比较 由于MIDI只是记录音乐信息的数字代码,所以生成的文件比较小,便于传播,也便于编辑修改。MIDI音乐常作为背景音乐。与Mp3、Wav等音频格式不同的是MIDI的播放质量很大程度上取决于硬件或软件的音源环境,也就是说同样的MIDI文件在不同的电脑上可能有非常明显的效果差别,究其原因是因为它们调用的波表音色库不一样。42

18、MOD Module(简称mod)是数码音乐文件,由一组samples(乐器的声音采样)、曲谱和时序信息组成,告诉一个mod播放器何时以何种音高去演奏在某条音轨的某个样本,附带演奏一些效果比如颤音等。因而mod与纯正的象WAV或AU那样的没有包含时序信息的样本文件不同,与象MIDI文件那样的不携带任何附加样本/乐器的文件也不同。43 由于该格式起源很早,因此曾经非常流行,因为mod提供了一种具有可以接受的音质水平而又非常廉价的制作音乐的方法。而且这种文件的音质效果对于当时的电脑硬件水平来说效果比MIDI要好,文件的体积也不大,好处是轻而易见的。mod成为一种介乎于象WAV或VOC那样的纯正样本

19、数据文件和象General MIDI那样的纯正时序信息文件之间的混合体,成为一种比较灵活的音频格式。44MP3 mp3是第一个实用的有损音频压缩编码。在mp3出现之前,一般的音频编码即使以有损方式进行压缩能达到4:1的压缩比例已经非常不错了。但是,mp3可以实现12:1的压缩比例,这使得mp3迅速地流行起来。mp3之所以能够达到如此高的压缩比例同时又能保持相当不错的音质是因为利用了知觉音频编码技术,也就是利用了人耳的特性,削减音乐中人耳听不到的成分,同时尝试尽可能地维持原来的声音质量。Mp3pro、wma、ra等文件同mp3一样都是将wav文件记录的波形进行压缩而成45声音文件播放46声音文件

20、的播放方法 MCI VFW DirectSound47直接用函数播放WAV 首先在工程头文件中加入:#include mmsystem.h#pragma comment(lib,WINMM.LIB)然后在需要播放的地方加入:sndPlaySound(sound_file.wav,SND_ASYNC|SND_LOOP);SND_ASYNC:在背景播放 SND_LOOP:连续播放 48MCI播放MIDI Media Control Interface 通过对多媒体设备发送命令来与之通信 命令:播放、暂停、停止、跳到某个位置 MCI支持两种工作方式:命令消息:MCISendCommand 命令字符串

21、:MCISendString 同样MCI可以播放CD、WAV等49MCI重要概念设备ID 同接收消息的窗口句柄一样,MCI操作的设备为了唯一性识别,需要在每一条mciSendCommand指令中加入设备ID这样一个参数 这里的设备并不一定表示外设,一个wav文件,CD驱动器都可以是外设 打开时即可取得该参数,以后针对同一设备的各种命令(播放、暂停等)都需要通过设备ID来操作50mciSendCommand 原型:MCIERROR mciSendCommand(UINT wDeviceID,UINT wMessage,DWORD dwParam1,DWORD dwParam2)参数:wDevic

22、eID:接受消息的设备ID wMessage:MCI命令消息 dwParam1:命令的标志位 dwParam2:所使用参数块的指针 51MCI 打开设备 MCI_OPEN_PARMS OpenParms;OpenParms.lpstrDeviceType=(LPCSTR)MCI_DEVTYPE_SEQUENCER;/MIDI类型OpenParms.lpstrElementName=(LPCSTR)Filename;OpenParms.wDeviceID=0;mciSendCommand(NULL,MCI_OPEN,MCI_WAIT|MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID|

23、MCI_OPEN_ELEMENT,(DWORD)(LPVOID)&OpenParms)MCI设备ID指明打开了哪个设备,当发送了MCI_OPEN命令时,这个值在参数块中返回应被保存备用。52MCI 关闭设备 mciSendCommand(m_wDeviceID,MCI_CLOSE,NULL,NULL);53MCI 播放 MCI_PLAY_PARMS PlayParms;PlayParms.dwFrom=0;/指定从什么地方(时间)播放 mciSendCommand(m_wDeviceID,MCI_PLAY,MCI_FROM,(DWORD)(LPVOID)&PlayParms);54MCI 停止

24、 mciSendCommand(m_wDeviceID,MCI_STOP,NULL,NULL);55MCI 暂停 MCI_PLAY_PARMS PlayParms;mciSendCommand(m_wDeviceID,MCI_PAUSE,0,(DWORD)(LPVOID)&PlayParms);MSDN:With the MCICDA,MCISEQ,and MCIPIONR drivers,the MCI_PAUSE command works the same as the MCI_STOP command.对于MIDI文件,MCI_PAUSE与MCI_STOP相同。56MCI 跳转*跳转到

25、任意地方MCI_SEEK_PARMS SeekParms;SeekParms.dwTo=(nMinute*60+nSecond)*1000;/跳转的目标时间,时间单位为毫秒mciSendCommand(m_wDeviceID,MCI_SEEK,MCI_TO|MCI_WAIT,(DWORD)(LPVOID)&SeekParms);*跳到文件头mciSendCommand(m_wDeviceID,MCI_SEEK,MCI_SEEK_TO_START,NULL);*跳到文件尾mciSendCommand(m_wDeviceID,MCI_SEEK,MCI_SEEK_TO_END,NULL);57实例:

26、MCI播放音乐#include mmsystem.h#pragma comment(lib,WINMM.LIB)58VFWVideo for Windows 包含:#include#pragma comment(lib,vfw32.lib)初始化:HWND m_hWnd;m_hWnd=MCIWndCreate(this-m_hWnd,NULL,MCIWNDF_NOPLAYBAR|MCIWNDF_NOAUTOSIZEWINDOW,TEXT(“bgm.mp3”);/可以放系统中装有解码器的各类文件:WAV/MP3/wma/midi 播放:MCIWndPlay(m_hWnd);停止:MCIWndSt

27、op(m_hWnd);59DirectSound 在DirectX的时候讲60声音在游戏中的应用61波形文件:WAV/MP3/CD 主要用于音效、片头 在空间允许的情况下,也可用作BGM62合成声音:MID/MOD 多用作BGM63语音 目前语音合成技术效果不能完全接近真实,一般情况还是用录制的真实语音,少用计算机合成语音64特殊的游戏类型音乐游戏 以音乐节奏作为游戏的主要目的以及评分规则,游戏场景及目标与音乐互动 跳舞类DDR、Bust a move 乐器类劲乐团、Samba Da mingo 节奏类Rez65跳舞机 科纳米在街机平台上推出了音乐游戏DDR跳舞机(Dance Dance Revolution),这也是众多类似音乐游戏中最著名的一款,迅速席卷了日本。DDR可以说创新性的将玩家作为了游戏的操作界面:当歌曲播放时,从屏幕的上方会不断开始下落不同方向的箭头;当箭头到达动作区域后,玩家必须在跳舞毯上踩到相应方向的箭头。踩的节奏越准确,得分就越高。66 其他类似音乐游戏还有疯狂吉他(Guitar Freaks,模拟演奏吉他),打鼓机(DrumMania,模拟敲架子鼓)和打碟机(HipHopMania,模拟DJ打碟)等。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(游戏编程技术I游戏中的声音课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|