| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> Unity优化篇 - 音频优化 -> 正文阅读 |
|
[游戏开发]Unity优化篇 - 音频优化 |
在Unity项目中音频的优化不可缺少,在很多时候甚至会成为内存杀手。 这篇主要记录关于Unity内音频设置与音频优化的一些方法,有什么不对或缺少的地方欢迎各位大神纠正或补充。末尾有总结 优化的目标: 1.文件体积尽可能小。 2.内存占用尽可能小,全部播放总内存占用<10MB。 3.音质够用。 Unity支持很多音频格式: 1.Mp3 :失真小,适合音质要求较高的文件。 2.WAV:资源大,不推荐。 3.OGG:压缩比高,适合人声和音效等。 先祭一张Unity音频的设置面板 根据上图的Unity音频设置面板先介绍下个选项的功能: ForceToMono:如果启用,音频将向下混合成单声道,一般手机使用单声道足够满足需求。建议强制音效使用单声道,只有少数手机真的有立体声喇叭,最重要的是将音频强制设置为单声道可以让内存减半。 Normalize:当ForceToMono开启后选项可用,开启后音频将在ForceToMono的混合过程中被单位化。 LoadInBackground:后台加载,默认关闭。如果启用此选项这个音频将在一个单独的线程中延迟加载而不会阻塞主线程。 Ambisonic:是否是环绕声,对于360度视频和XR应用程序非常有效。如果AudioFile包含三维编码音频,则开启此项其余情况可关闭。 LoadType: 1.DeCompressOnLoad 加载后解压缩(适合小音效) 音频文件将在加载后立即解压缩,对较小的音效使用此选项可避免动态解压缩的性能开销。请注意在加载后解压缩Vorbis编码的声音,会使用它压缩时大约10倍的内存,ADPCM编码大约是3.5倍。所以请不要降此选项用于大文件。 2.CompressedInMemory 压缩在内存中(适合较大文件音效) 将声音压缩在内存中,在播放是解压缩。这个选项有轻微的性能开销(尤其是对于ogg/Vorbis压缩文件)所以只能用于大文件音效,因为在加载时解压缩会使用大量的内存。可在Profiler窗口的音频面板中的“DSP CPU”部分监视。 3.Streaming 流(适合大文件) ?动态解码声音,此方法是使用最最小量的内存来缓冲从磁盘逐渐读取并在运行中解码的压缩数据。解压缩发生在单独的流线程上,请注意解压缩发生在Profiler窗口的音频面板中的"Streaming CPU" 部分中可监视其CPU使用率的单独流式线程上,即使没有加载任何饮品数据,流式片段也会有200KB的过载。 Preload Audio Data:预加载音频数据。如果启用音频剪辑将在场景加载时预先加载,也就是当场景开始播放时,所有的AudioClips已经完成了加载。如果没有开启,音频数据也会在第一次调用AudioSource.Play(),AudioSource.PlayOneShot()执行时被加载,或者也可以通过AudioSource.LoadAudioData(),AudioSource.UnLoadAudioData()再次加载时被加载。 Compression Format 压缩格式 1.PCM:这个选项提供了以更大的文件大小和代价提供了更高的质量,所以非常适合使用在很短的音效上面。 2.ADPCM:这个格式适用于需要大量使用的音效上面,比如脚步 爆破和子弹发射,他比PCM小3.5倍但是CPU适用于远低于Vorbis,所以适合多次调用的短音效。 3.Vorbis:比PCM小但是质量比PCM低,比ADPCM消耗更多而CPU。这种格式最适合中等长度的音效和音乐,这个选择多了个Quality可以调节质量改变文件大小1-100。 SampleRateSetting ? PCM和ADPCM压缩格式允许自动优化或手动降低采样率 1.OptimizeSampleRate:该设置根据分析的最高频率内容自动优化采样率。 2.PreserveSampleRate:该设置保持比率未修改(默认) 3.OverrrideSampleRate:该设置允许手动覆盖采样率,优先选择22050HZ,如果音质不能接受就选择44100HZ,但是不允许高于44100HZ。 重点关注信息 OriginalSize:磁盘大小 ImportedSize:内存大小 Ratio:ImportedSize占OriginalSize比例 ?修改AudioClip属性之后记得点击Apply。如果一个MP3文件和压缩格式设置为PCM(未压缩),由此产生的Ratio的比例将超过100%,因为文件现在存储未压缩的空间比它来自于源MP3占据更多的空间。 总结: 统一要求 1.单声道:勾选ForceToMono,根据效果选择是否勾上Mormalize 2.自定义设置覆盖默认设置:勾选OverrideForAndroid/IOS。采样率(SampleRateSetting)设置为OverrideSampleRate,然后优先选择22050HZ,如果音质不能接受就选择44100HZ,不允许高于44100HZ。 策略 导入时可根据不同目录设置不同的参数
目录:Audio/Bgm,预计最大内存占用200KB,播放时加载 1.LoadType 设置为Streaming 2.CompressionFormat 设置为Vorbis 3.Quality设置为尽可能的小,在音质可以接受的前提下
目录:Audio/Short_NoDelay,预计占用最大内存86KB*音频数量,游戏启动时加载,永不释放 1.LoadType 设置为DeCompressOnLoad 2.CompressionFormat 设置为ADPCM
目录:Audio/Medium_NoDelay,预计占用最大内存ImportedSize*音频个数,播放时加载 1.LoadType 设置为CompressionInMemory 2.CompressionFormat 设置为ADPCM
目录:Audio/Short,预计占用最大内存ImportedSize*音频个数,播放时加载 1.LoadTyoe 设置为CompressedInMemory 2.CompressionFormat 设置为ADPCM
目录:Audio/Medium,预计占用最大内存ImportedSize*音频个数,播放时加载 1.LoadType 设置为CompressedInMemory 2.CompressionFormat 设置为Vorbis |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/16 7:58:00- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |