基于音频的游戏(例如Audiosurf和Beat Hazard)如何工作?


43

注意:我并不是在问如何克隆其中之一。我在问他们如何工作。

我敢肯定,每个人都看过使用自己的音乐文件(或提供的音乐文件)的游戏,并且这些游戏会根据这些文件产生关卡,例如AudiosurfBeat Hazard

这是 Audiosurf 的视频,以展示我的意思。

如果您提供一首沉重的金属歌曲,那么您会从Vivaldi之类的游戏中获得完全不同的障碍,敌人和游戏体验。

我感兴趣的是这些游戏的工作方式。我对音频(数据方面)了解不多,但是他们如何处理歌曲以了解它何时稳定下来或何时加速呢?我想他们可以只输入音调值(假设音频文件中存在这些东西)来形成一个级别,但是并不能完全解释它。

我正在寻找一个解释,一些关于这种事情的文章的链接(我肯定有一个术语),甚至是这种事情的开源实现;-)

编辑:经过一些搜索和一点帮助之后,我发现了有关FFT(快速傅立叶变换)的信息。这也许是朝着正确方向迈出的一步,但这对我来说没有任何意义,也不适合我对波的物理知识。


1
我刚刚编辑了一些有关FFT的信息,希望对您有所帮助:)
Ray Dey

Answers:


30

您要寻找的术语是信号处理/分析。涉及很多技术,但是这些游戏所使用的基本技术是Beat Detection。这会尝试计算歌曲的节奏以及小节拍的位置,因此将障碍物放置在适当的距离以与每个节拍重合。

游戏知道何时“踢”等的方式范围很简单,可以测量波形的振幅(音量),也可以是更复杂的事情,例如隔离某些频率的音量并测量其音量。

如果您有兴趣,请查看“数字信号处理”以了解如何分析波形,这实际上是这些游戏在加载阶段所做的工作。

这些链接可以帮助您入门:


电子音乐的声音处理理论与技术
概论数字滤波器概论

希望有帮助:)

-射线

编辑:我刚刚看过您对傅立叶变换的编辑,并认为我会对此有所了解,尽管我绝不是专家!

FFT是一种计算波形实际傅立叶变换的方法。基本上,如果将音频文件加载到Audacity中,您将看到波形图,时间轴位于顶部,这就是时域。FFT将把信号从时域转换到频域(基本上是音频中出现的所有频率)。

这种转换对于光谱分析很有用。在一个游戏示例中,如果要进行傅立叶变换,则可以轻松地计算音频中高频出现的次数,然后可以添加眨眼的视觉效果,星空或通常与高频声音相关的内容。对于低频,您可能会让大型,glut嘴的怪物及时移至低音,等等。


1
大链接!但是,我点击了它们,我的眼睛有点融化了。:p
共产党鸭子

5
@共产主义鸭子:那是薄弱的部分。现在你的眼睛更强了。
doppelgreener 2011年

3
@共产主义鸭子你刚刚进一步走下兔子洞,它走了很长一段路;)
Ray Dey

我有点恼火,XNA并没有真正允许我对MP3文件做任何这些事情(我想可以用.WAV,但它们很大),这很烦人。但是,非常感谢您提供的大量资源和令人头疼的地方:D
共产党鸭子

1
@Kay更新了链接
Ray Dey


0

来自频谱能量变化分析的数据足以生成此类图。这里的问题可能在于是否有太多数据要处理:不是使用哪种数据,而是如何使用。

看了一些视频之后,我开始相信数据会在特征域(时域->频域->特征域)中进一步移动。该软件通过使用光谱能量变化生成数据并尝试识别已知特征,然后使用有关特征的信息来设置地图。识别可以通过聚类,最大似然,神经网络,遗传算法等来完成。

在完成确认后,你有一个像infomations:其中,如果在发现功能的时间频率,什么类型的发现featuature中,速度的特征向量移动等; 您可以使用这些数据来提供地图生成算法,从而留出改进的空间,例如制定更好的识别算法,识别更多的要素系列,提取更多的数据,寻找“渲染”这些数据的新方法等等。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.