在unity3d中无缝循环

nac*_*o4d 4 audio unity-game-engine

我已经在这几天已经挣扎了...... :(

我读过这些线程:无缝式MP3回放,无缝循环在iOS,无缝iOS上的循环 生产无缝循环的MP3.这里还有一点理论:mp3Loops

我按照指示做:导入WAV文件,选择MPEG编码,检查"无间隙循环"框

  • 只是未来谷歌的一个注释.在非常旧版本的Unity中,有一个"无间隙循环"按钮(自2014年左右开始删除).事实上,那个按钮完全坏了,什么也没做.

并使其循环:

    var gameObject2 = new GameObject("MyObject");
    audioSource2 = gameObject2.AddComponent<AudioSource>();

    var filename = "test01_1152x";
    audioClip2 = Resources.Load (filename) as AudioClip;
    audioSource2.clip = audioClip2;
    audioSource2.loop = true;
    audioSource2.Play();
Run Code Online (Sandbox Code Playgroud)

然而,"流行"声音非常明显.

我想知道我错过了什么?

检查"无间隙循环"只是好一点,但它不能避免100%的"弹出"声音.如果给出的文件错误或不适合这种情况,文件应该满足哪些条件才能有一个很好的无间隙循环bgm?

这些是我尝试过的各种设置的图片,包括原始的wave文件

Original Wave:很好地循环,因为它是WAV. 在此输入图像描述

压缩为MPEG(选择非无间隙循环),"pop"声音在听取它时非常明显. 在此输入图像描述

压缩为MPEG(选择Gapless looping),"pop"声音仍然很明显,比设置好一点. 在此输入图像描述

Fat*_*tie 5

你无法在Unity中循环播放mp3.

手册中清楚地解释了这一点.

只需转换为Ogg或Wav.

这里的所有都是它的.

请注意,出于这个目的,Inspector底部的显示清楚地向您显示您无法循环播放mp3.

这是与mp3和wav相同的声音:

在此输入图像描述

显然,在格式之间转换音频文件是微不足道的; 使用Mac或PC上的任何软件来执行此操作.(例如,TwistedWave.)

(注意,音频工程师的解释是关于如何在艺术意义上使文件循环的两端平滑,与Unity3D/mp3的问题完全无关.)


Bal*_*ico 3

很容易看出这些剪辑不太适合无间隙循环。我不需要播放这些剪辑来听你提到的 clic 和流行音乐,从你发布的波形中可以明显看出。将音频剪辑视为可重复的纹理或无缝图案,开始和结束需要匹配,实现这一点的最简单方法是在波的幅度为 0 时剪切剪辑。

看看与其他格式相比,WAV 格式的“正弦”波有多平滑?原因是MP3等压缩格式会丢失质量和信息,从而降低质量。请注意,压缩波开始时并不平滑,而是以直线开始,这会呈现为噪声。

因此,如果增加 kbps(减少压缩),您将获得更好的结果。但我仍然强烈建议您使用 WAV 格式以获得更好的效果,这是 Unity 对于短声音的规定:

“根据一般经验,压缩音频(或模块)最适合背景音乐或对话等长文件,而原生更适合短音效”

音频剪辑 - 导入音频资源

关于“拥有一个漂亮的无缝背景音乐”,您需要使用一个好的工具,该工具允许您在将音频循环导出到 wav 文件之前剪切、修剪、拉伸和测试音频循环。我个人使用 Cakewalk SONAR。这是您创作一个漂亮的循环声音的图像,看看我如何在振幅接近“0”时剪切声音。

最后一件事,如果同时播放多种声音,您将无法利用 MP3 的硬件解码,大多数移动设备只允许硬件解压缩一种声音,其他声音将由 CPU 渲染。

SONAR X1 上的循环构造

在另一张图片中,我展示了如何从较长的片段中正确剪切可循环的声音,并且不会像前面的示例那样褪色。

在此输入图像描述