在Unity3D中更改音乐曲目的速度

时间:2018-07-28 15:52:11

标签: unity3d audio playback

是否可以在不使用FMOD之类的声音引擎的情况下更改音乐曲目的速度?我知道通过更改AudioSource中的音调可以改变音乐的速度,但是您知道通过更改音调实际上可以完全改变音乐。

2 个答案:

答案 0 :(得分:2)

如果您想要答案,那是我在Unity中找到的最佳方法。 (实际上我的一个朋友建议使用这种方法)

  1. 创建音频混音器(左键单击项目文件夹>创建>音频混音器)
  2. 将音频混音器添加到检查器中“输出”值中的AudioSource
  3. 在其孩子下面选择音频混音器>主设备,单击Add Effect并选择Pitch shifter
  4. 选择AudioSource并将Pitch设置为2(示例)
  5. AudioMixer Pitch的音高设置为0.5(示例)

计算AudioSource PitchAudioMixer Pitch的公式:AudioMixer Pitch Value = 1 / AudioSource Pitch Value

  • 如果您使用的AudioSource Pitch大于2,则需要在AudioMixer中添加另一个Audio Pitch Shifter,并设置两个值都将获得原始音高(1)

答案 1 :(得分:1)

通过更改播放速率来提高音调是唯一简单的方法(显然,它也会更改速度)。数十种算法可让您更改一个而不更改另一个,但是 a)他们大多数是专有的 b)他们大多数都有讨厌的文物 c)大多数具有这些选项的软件都会为您提供可供选择的算法-至少从理论上讲,与其他算法相比,其中一种听起来最不可怕

在诸如Ableton Live这样的“高级”选项软件中,该选项基本上根据材料的特性在模式之间进行切换,这在不超过百分之几的变化范围内即可得出可信的结果,但随着我们的听力,我们在世界范围内的警觉性变得如此重要,进化的,我们对任何细微的变化都非常敏感。

最简单的拉伸算法是基于粒度合成的,您可以将流分成“颗粒”-如果您只逐一播放它们,则会得到原始信号,但是如果以较高的速度播放它们(则均等地启动它们)您可以在不更改速度的情况下更改音高。问题是,即使有很多窗口,在真正令人讨厌的工件开始出现之前,您也只能做很多事情。

简短的回答是“否”。