【Unity】3.5 导入音频文件

分类:Unity、C#、VS2015

创建日期:2016-04-05

一、简介

音频文件 (Audio File) 资源的选择原则应该以无故障地流畅运行为宗旨。下面列出了常用的音频文件。

.AIFF 在导入时转换为未压缩的音频,最适合短音效。

.WAV 在导入时转换为未压缩的音频,最适合短音效。

.MP3 在导入时转换为 Ogg Vorbis,最适合较长的音乐曲目。

.OGG 压缩的音频格式,最适合较长的音乐曲目。

导入音频文件到Unity中时,可以选择其最终格式并将其推入立体声道或单声道。

要访问导入设置 (Import Settings),请在工程视图 (Project View) 中选择音频片段 (Audio Clip),然后在检视器 (Inspector) 中查找音频导入程序 (Audio Importer)。在此,您可将片段 (Clip) 压缩为 Ogg Vorbis 格式,并将其推入单声道或立体声回放,然后微调其他选项,如进行非常重要的加载时解压缩 (Decompress On Load) 设置。

导入音频文件后,就可以将音频文件添加至游戏对象 (GameObject)。将音频文件拖入至游戏对象 (GameObject) 时,此音频 (Audio) 文件将自动创建一个音频源组件 (Audio Source Component)。

二、细节描述

使用音频文件 (Audio Files) 时,需要注意以下细节。

1、原生 (Native) 和压缩 (Compressed)

Unity中的音频可以是原生 (Native) 或 压缩 (Compressed) 音频。Unity 支持大部分常见格式。默认模式为原生 (Native),即导入原始文件中的音频数据时,不对其做任何更改。但是,Unity 也可在导入时只启用导入程序中的压缩 (Compressed) 选项压缩音频数据。

原生 (Native) 和压缩 (Compressed) 模式的区别如下:

  • 原生 (Native):原生(例如.wav文件、.aiff文件等)适用于短音效。这类音频数据容量较大,但无需在运行时对声音解码。
  • 压缩 (Compressed): 音频数据容量较小,但需要在运行时对数据进行解压缩,这将产生处理开销。Unity会将音频编码为 Ogg Vorbis(Mac/PC/控制台 (Consoles))或 MP3(移动平台),具体取决于定位。

如果希望获得最佳音质,请提供 WAV 或 AIFF(包括 PCM 数据)等未压缩格式的音频,让 Unity 为你进行编码。如果你只定位 Mac 和 PC 平台(包括独立式和网页播放器两种),则导入 Ogg Vorbis 文件不会降低质量。但是,在移动平台上导入时,将 Ogg Vorbis 和 MP3 文件重新编码为 MP3 文件会对音质有轻微影响。

2、音频源 (Audio Source)

Aud音频源 (Audio Source) 在场景中播放音频片段 (Audio Clip) 。如果音频片段 (Audio Clip) 为三维片段,则源在给定位置进行播放并会随着距离而衰减。音频可以在扬声器之间散播(散播 (Spread))并在三维与二维之间变形(平移级别 (PanLevel))。这可以使用衰减曲线 (falloff curve) 随着距离进行控制。此外,如果侦听器处于一个或多个混响区域 (Reverb Zone)内,则会对源应用混响。(仅限专业版)可以将各个过滤器应用于每个音频源 (Audio Source),以获得甚至更丰富的音频体验。

下面描述了与音频源相关的属性及功能。

  • 音频片段 (Audio Clip):对将播放的声音片段文件的引用。
  • 静音 (Mute):如果启用,声音会进行播放,但会静音。
  • 绕过效果 (Bypass Effects):这是用于快速“绕过”应用于音频源 (Audio Source) 的过滤器效果。关闭/打开所有效果的方便途径。
  • 唤醒时播放 (Play On Awake):如果启用,声音会在场景启动时开始播放。如果禁用,需要在脚本中使用 Play() 命令启动它。
  • 循环 (Loop):启用此项可使音频片段 (Audio Clip) 在达到结尾时循环。
  • 优先级 (Priority):确定此音频源 (Audio Source) 在场景中共存的所有音频源 (Audio Source) 间的优先级。(优先级 (Priority):0 = 最重要。256 = 最不重要。默认 = 128。)。将 0 用于音乐轨道可避免它偶尔换出。
  • 音量 (Volume):与音频侦听器 (Audio Listener) 相距一个世界坐标单位(一米)处的声音高低程度。
  • 音调 (Pitch):由于音频片段 (Audio Clip)减慢/加快而形成的音调变化量。值 1 为正常播放速度。
  • 三维声音设置 (3D Sound Settings):音频片段 (Audio Clip) 为三维声音时应用于音频源 (Audio Source) 的设置。
  • 平移级别 (Pan Level):设置三维引擎对音频源 (Audio Source) 的影响程度。
  • 散播 (Spread):设置在扬声器空间中相对于三维立体声或多声道声音的散播角度。
  • 多普勒级别 (Doppler Level):确定对此音频源 (Audio Source) 应用的多普勒效应量(如果设置为 0,则不应用任何效应)。
  • 最小距离 (Min Distance):在最小距离 (MinDistance) 内,声音会保持为可能的最高音量。在最小距离 (MinDistance) 外,它会开始衰减。增大声音的最小距离 (MinDistance) 可使其在三维世界坐标中“更大声”,减小它可使其在三维世界坐标中“更安静”。
  • 最大距离 (Max Distance):声音停止衰减处的距离。超过此点,它会保持为与侦听器相距最大距离 (MaxDistance) 处的音量,不会再衰减。
  • 滚降模式 (Rolloff Mode):声音的降低速度。值越高,在听到声音之前便必须越接近侦听器。(这由一个图形确定)。
  • 对数滚降 (Logarithmic Rolloff):在接近音频源 (Audio Source) 时,声音较高,但是在远离对象时,它会以极快速度降低。
  • 线性滚降 (Linear Rolloff):离音频源 (Audio Source) 越远,可以听到的声音越少。
  • 自定义滚降 (Custom Rolloff):来自音频源 (Audio Source) 的声音的行为取决于设置滚降图的方式。
  • 二维声音设置 (2D Sound Settings):音频片段 (Audio Clip) 为二维声音时应用于音频源 (Audio Source) 的设置。
  • 二维平移 (Pan 2D):设置引擎对音频源 (Audio Source) 的影响程度。

列出这些属性的目的是为了弄明白英文单词属性的含义。

3、音频侦听器 (Audio Listener)

音频侦听器 (Audio Listener) 充当类似于麦克风的设备。它从场景中的任何给定音频源 (Audio Source) 接收输入,并通过计算机扬声器播放声音。对于大多数应用程序,最有意义的是将侦听器附加到相机 (Camera)。如果音频侦听器 (Audio Listener) 处于混响区域 (Reverb Zone) 边界内,则会对场景中的所有可听见声音应用混响。(仅限专业版)而且,音频效果 (Audio Effect) 可以应用于侦听器,并且将应用于场景中的所有可听见声音。

你的场景中只能有一个音频监听器 (Audio Listener),并且监听器通常附属于主相机 (Main Camera)。

4、音频片段 (Audio Clip)

音频片段 (Audio Clip) 包含音频源 (Audio Source)。 Unity 支持单声道、立体声和多声道音频资源(最多八个声道)。Unity 可以导入的音频文件格式包括 .aif、.wav、.mp3 和 .ogg 。Unity 还可以导入 .xm、.mod、.it 和 .s3m 格式的 tracker modules(跟踪器模块)。跟踪器模块资源的行为方式与 Unity 中的任何其他音频资源相同,不过资源导入检视器中不提供波形预览。

任何导入至 Unity 的音频文件都可在脚本中找到其音频片段 (Audio Clip) 的实例,它实际上是一个实用的音频数据存储工具。

  • 音频格式 (Audio Format):运行时用于声音的特定格式。
  • 原生 (Native):此选项以较大文件大小为代价提供较高质量,最适合于非常短的声音效果。
  • 压缩 (Compressed):压缩可生成较小文件,但是与原生音频相比质量有所下降。此格式最适合于中等长度声音效果和音乐。
  • 三维声音 (3D Sound):如果启用,声音会在三维空间中播放。单声道和立体声声音都可以进行三维播放。
  • 强制单声道 (Force to mono):如果启用,则音频片段会降混为单声道声音。
  • 加载类型 (Load Type) Unity:在运行时用于加载音频资源的方法。
  • 加载时解压缩 (Decompress on load):音频文件将在加载之后立即解压缩。将此选项用于较小的压缩声音可避免动态解压缩的性能开销。请注意,加载时解压缩声音使用的内存比保持声音处于压缩状态时大约多十倍,因此请勿将此选项用于大型文件。
  • 在内存中保持压缩状态 (Compressed in memory):使声音在内存中保持压缩状态并在播放时解压缩。此选项具有少量性能开销(尤其是对于 Ogg/Vorbis 压缩文件),因此仅将其用于加载时解压缩会使用过多内存量的较大文件。请注意,由于技术限制,在使用 FMOD 音频的平台上,此选项对于 Ogg Vorbis 资源会无提示地切换为从光盘进行流式处理 (Stream From Disc)。
  • 从光盘进行流式处理 (Stream from disc):直接从光盘对音频数据进行流式处理。此选项使用的内存通常是文件大小的一小部分,因此对于音乐或其他很长的音轨十分有用。出于性能原因,通常建议一次仅从光盘对一个或两个文件进行流式处理,不过可以从容处理的流数量取决于硬件。
  • 压缩 (Compression):应用于压缩片段的压缩量。 可以在滑块下查看有关文件大小的统计信息。调整此值的一个好方法是将滑块拖动到保持播放“足够良好”、同时文件小到足以满足分发要求的位置处。
  • 硬件解码 (Hardware Decoding):(仅限 iOS)在 iOS 设备上,可以使用 Apple 的硬件解码器,从而在解压缩过程中产生较小的 CPU 开销。有关更多信息,请查看平台相关详细信息。
  • 无缝循环 (Gapless looping):(仅限Android/iOS)在压缩无缝循环音频源文件(采用非压缩 PCM 格式)时使用此选项可确保在对接处保持完美的连续性。标准 MPEG 编码器在循环点处引入了一个较短无声期,这可作为短暂的“嘀嗒”或“嘭嘭”声听见。

音频片段(Audio Clip)必须与音频源 (Audio Sources) 和音频侦听器 (Audio Listener) 配合使用才可生成声音。将片段添加至游戏中的对象时,会将音频源 (Audio Source) 组件添加至含有音量 (Volume)、音高 (Pitch) 等许多其他属性的对象。播放源 (Source) 时,音频侦听器 (Audio Listener) 可"听到"范围内的所有源,再将这些源组合起来,声音即可通过扬声器发出。

5、音轨模块

音轨模块 (Tracker Modules) 文件与 MIDI 文件有许多相似之处。音轨是包含何时弹奏乐器、音高和音量等信息的乐谱,然后以此创建原始曲调的旋律和节拍。

但是,MIDI有一个缺点,音质依赖于音频硬件中的可用音色库,因此,MIDI 音乐的音质会因使用的计算机不同而不同。

相比之下,音轨模块既包括高质量的PCM示例,又不受所使用的音频硬件的影响。

(1)支持的格式

Unity可支持四个最常见的模块文件格式,即 Impulse Tracker (.it)、Scream Tracker (.s3m)、扩展模块文件格式 (Extended Module File Format)(.xm) 和原始模块文件格式 (original Module File Format) (.mod)。

(2)使用音轨模块 (Tracker Modules) 的优势

音轨模块文件不同于主流的 PCM 格式(.aif、.wav、.mp3 和 .ogg),此文件可以非常小,但不会对音质造成影响。你可调节一个声音样本的音高和音量(并且可运用其他效果),所以,其本质上是一种可播放曲调的“乐器 (instrument)”,还可节省录制完整曲调所需的开销。因此,将音轨模块应用于游戏,可帮助解决音乐和下载大文件等问题。

posted @ 2016-04-05 07:06  rainmj  阅读(2980)  评论(0编辑  收藏  举报