Unity优化翻译官方文档(四) ------ Audio Clip

   官网 : https://docs.unity3d.com/Manual/class-AudioClip.html


音频剪辑包含音频源所使用的音频数据。Unity支持mono、立体声和多声道音频asset(最多8个频道)。Unity可以导入的音频文件格式是.aif,.wav,.mp3,和.ogg。Unity还可以在.xm、.mod、.it和.s3m格式中导入跟踪器模块。跟踪器模块的asset与其他任何音频asset的行为方式相同,尽管在asset导入检查器中没有可用的波形预览

Unity优化翻译官方文档(四) ------ Audio Clip

1.Options

Force To Mono 当这个选项被启用时,在打包之前,多通道音频将被混合到一个单声道。
Normalize 当这个选项被启用时,音频将在“强制到Mono”的混合过程中被规范化。
Load In Background 当这个选项被启用时,该剪辑的加载将在一个单独的线程上延迟的时间发生,而不会阻塞主线程。
Ambisonic 双音音频源以一种格式存储音频,它代表一个可以根据监听器的方向旋转的声场。它对360度视频和XR应用程序非常有用。如果您的音频文件包含有环境编码的音频,则启用此选项。

2.Properties

Property: Function:
Load Type Unity使用的方法是在运行时加载音频资产。
  Decompress On Load 音频文件一旦加载就会被解压。使用这个选项来处理较小的压缩声音,以避免在苍蝇上解压缩的性能开销。请注意,在负载上解压缩vorbis编码的声音将使用比保持压缩的10倍的内存(对于ADPCM编码大约是3.5倍),所以不要为大文件使用这个选项。
  Compressed In Memory 在记忆中保持声音压缩,在播放时解压。这个选项有轻微的性能开销(特别是ogg/vorbis压缩文件),所以只在更大的文件中使用它,在这些文件中,负载的减压将使用大量的内存。减压过程发生在混合器线程上,并且可以在分析器窗口的音频窗格中的“DSP CPU”部分进行监控。
  Streaming 在飞行中解码声音。这种方法使用最少的内存来缓冲压缩的数据,这些数据是从磁盘上逐步读取并在动态中解码的。注意,减压发生在单独的流线程上,它的CPU使用率可以在分析器窗口的音频窗格的“流式CPU”部分中进行监控。注意:流片段的过载大约是200 KB,即使没有加载任何音频数据。对于手游而言不要优先考虑使用这种方式。
Compression Format 在运行时将用于声音的特定格式。请注意,可用的选项取决于当前选定的构建目标。
  PCM 这个选项提供了更高的质量,而牺牲了更大的文件大小,并且对于非常短的音效是最好的。
  ADPCM 这种格式对于包含大量噪音的声音很有用,需要大量播放,比如脚步声、影响、武器。压缩比是PCM的3.5倍,但是CPU的使用比mp3/vorbis格式要低得多,这使得它成为上述类别的声音的首选。
  Vorbis/MP3 压缩会导致较小的文件,但是与PCM音频相比质量更低。压缩的数量可以通过质量滑块进行配置。这种格式最适合中等长度的声音效果和音乐。
  HEVAG 这是在PS Vita上使用的原生格式。它的规格与ADPCM格式非常相似。
Sample Rate Setting PCM和ADPCM压缩格式允许自动优化或手动采样率降低。
  Preserve Sample Rate 这个设置使样本速率保持不变(默认)。
  Optimize Sample Rate 该设置根据分析的最高频率内容自动优化采样率。
  Override Sample Rate 这个设置允许手动覆盖采样率,因此可以有效地使用它来丢弃频率内容。
Force To Mono 如果启用,音频剪辑将被降级为单一通道声音。在降级之后,信号是峰值的,因为降级过程通常会产生比原始信号更安静的信号,因此,峰值标准化信号为以后的调整提供了更好的空间,通过音频源的音量属性进行调整。
Load In Background 如果启用,音频剪辑将会在后台加载,而不会导致主线程上的档位。默认情况下,这是为了确保标准的统一行为,当场景开始播放时,所有的AudioClips都已经完成了加载。请注意,在后台仍在加载的AudioClips上的播放请求将被延迟,直到加载完成。负载状态可以通过AudioClip查询。loadState财产。
Preload Audio Data 如果启用,音频剪辑将在加载场景时预加载。默认情况下,这是为了反映标准的Unity行为,当场景开始播放时,所有的AudioClips都已经完成了加载。如果这个标志没有设置,音频数据将被加载到第一个音频源.play()/音频源.playoneshot(),或者它可以通过音频源.loadaudio data()加载,并通过音频源.unloadaudio data()再次卸载。
Quality 确定要应用于压缩的剪辑的压缩量。不适用于pcm/adpcm/hevag格式。关于文件大小的统计信息可以在检查器中看到。调优这个值的一个好方法是将滑块拖到一个位置,让播放“足够好”,同时保持文件足够小,以满足您的分发需求。注意,原始大小与原始文件,所以如果这是一个MP3文件和压缩格式设置为PCM(即未压缩的),由此产生的比例将超过100%,因为文件现在存储压缩和占用更多的空间比它来自源MP3。

3.预览窗口

预览窗口包含三个图标。

Unity优化翻译官方文档(四) ------ Audio Clip 当自动播放的时候,剪辑就会在他们被选中的时候播放。

Unity优化翻译官方文档(四) ------ Audio Clip 当循环播放时,片段将在一个连续循环中播放。

Unity优化翻译官方文档(四) ------ Audio Clip 这将播放这个片段。

4.导入音频资源

Unity能够读取广泛的源文件格式。每当一个文件被导入时,它将被转换成适合于构建目标和声音类型的格式。这是通过检查器的压缩格式设置的可选择的。

一般来说,PCM和vorbi/mp3格式更容易使声音保持在尽可能接近原始的状态。PCM在CPU需求上非常轻,因为声音是未压缩的,可以从内存中读取。vorbi/mp3允许通过质量滑块来自适应地丢弃更少的声音信息。

ADPCM是内存和CPU使用之间的折衷,因为它只使用比未压缩的PCM选项稍微多一点的CPU,但是产生一个常量3.5压缩因子,这通常比使用Vorbis或MP3压缩所能达到的压缩要差3倍。此外,ADPCM(如PCM)允许自动优化或手动设置采样率,根据声音的频率内容和可接受的质量损失,可以进一步缩小包装好的声音资产的大小。

模块文件(.mod,.it,.s3m..xm)可以以极低的内存占用非常高的质量。在使用模块文件时,除非您特别想要这样做,确保加载类型被设置为压缩在内存中,因为如果它被设置为解压,整个歌曲将被解压。这是Unity 5.0中的一种新行为,它允许在这些类型的剪辑中使用getdata/setdata,但是跟踪器模块的一般和默认用例是将它们压缩到内存中。

一般的经验法则是,压缩音频(或模块)对于像背景音乐或对话框这样的长文件是最好的,而PCM和ADPCM则更适合于包含一些噪音的短音效,因为ADPCM的人工制品在平滑信号上太明显了。您应该使用压缩滑块来调整压缩的数量。从高压缩开始,逐渐减少设置到可以感知到的声音质量下降的程度。然后,再稍微增加一点,直到感知到的质量损失消失。

5.平台具体细节

Unity支持导入各种源格式的声音文件。然而,在导入这些文件时(除了跟踪器文件),它们总是被重新编码到构建目标格式。默认情况下,这种格式是Vorbis,不过如果需要的话,可以将每个平台覆盖到其他格式(ADPCM、MP3等)。