Wie funktionieren Audio-basierte Spiele wie Audiosurf und Beat Hazard?


43

Hinweis: Ich frage nicht, wie ich einen Klon daraus machen soll. Ich frage, wie sie funktionieren.

Ich bin sicher, jeder hat die Spiele gesehen, in denen Sie Ihre eigenen Musikdateien (oder die bereitgestellten) verwenden, und die Spiele produzieren darauf basierende Level wie Audiosurf und Beat Hazard .

Hier ist ein Video von Audiosurf in Aktion, um zu zeigen, was ich meine.

Wenn Sie einen Heavy-Metal-Song liefern, erhalten Sie von Vivaldi ein völlig anderes Set an Hindernissen, Feinden und Spielerfahrungen.

Mich interessiert, wie diese Spiele funktionieren. Ich weiß nicht viel über Audio (nun ja, datenseitig), aber wie verarbeiten sie den Song, um zu verstehen, wann er sich beruhigt oder wann er sich beschleunigt? Ich vermute, sie könnten einfach die Tonhöhenwerte (vorausgesetzt, dass solche Dinge in Audiodateien vorhanden sind) eingeben, um einen Pegel zu bilden, aber das würde ihn nicht vollständig erklären.

Ich suche entweder eine Erklärung, Links zu Artikeln über diese Art von Dingen (ich bin mir sicher, dass es einen Begriff oder Begriffe dafür gibt) oder sogar eine Open-Source-Implementierung dieser Art von Dingen ;-)

EDIT: Nach einigem Suchen und etwas Hilfe habe ich etwas über FFT (Fast Fourier Transform) erfahren. Dies ist vielleicht ein Schritt in die richtige Richtung, aber es ist etwas, das für mich keinen Sinn ergibt ... oder zu meinem physikalischen Wissen über Wellen passt.


1
Ich habe gerade bearbeitet, um einige Informationen über FFTs hinzuzufügen, hoffe das hilft :)
Ray Dey

Antworten:


30

Der Begriff, nach dem Sie suchen, ist Signalverarbeitung / -analyse. Es gibt viele Techniken, aber die grundlegende, die diese Spiele verwenden, ist Beat Detection . Dadurch wird versucht, das Tempo des Songs und die Position der Beats in einem Takt zu berechnen und die Hindernisse so weit voneinander zu entfernen, dass sie mit jedem Beat übereinstimmen.

Die Art und Weise, in der die Spiele wissen, wann sie "einsteigen" müssen, kann sehr einfach sein und die Amplitude (Lautstärke) der Wellenform messen.

Wenn Sie interessiert sind, schauen Sie sich die digitale Signalverarbeitung an, um zu sehen, wie Sie Wellenformen analysieren können. Genau das tun diese Spiele in ihrer Ladephase.

Mit diesen Links können Sie loslegen:

Einführung in die
Theorie der Klangverarbeitung und Techniken der elektronischen Musik
Einführung in digitale Filter

Ich hoffe, das hilft :)

-Strahl

EDIT: Ich habe gerade Ihre Bearbeitung in Bezug auf Fourier-Transformationen gesehen und dachte, ich werde einen Einblick in sie geben, obwohl ich auf keinen Fall ein Experte darin bin!

FFT ist eine Methode zur Berechnung der tatsächlichen Fourier-Transformation einer Wellenform. Grundsätzlich wird beim Laden einer Audiodatei in Audacity die Wellenform mit der Timeline oben angezeigt . Diese wird als Zeitdomäne bezeichnet . Die FFT wandelt ein Signal aus dem Zeitbereich in den Frequenzbereich um (im Grunde alle Frequenzen, die innerhalb des Audios auftreten).

Diese Umwandlung ist nützlich für die Spektralanalyse. Wenn Sie in einem Spielbeispiel eine Fourier-Transformation durchführen, können Sie auf einfache Weise die Häufigkeit von Hochfrequenzereignissen im Audio berechnen und daraus visuelle Effekte, Sterne oder etwas hinzufügen, das mit typischen Hochfrequenztönen assoziiert ist. Für die tiefen Frequenzen können große, gefräßige Monster auftreten, die sich im Takt der Bässe usw. bewegen.


1
Tolle Links! Ich klickte sie jedoch an und meine Augen schmolzen ein wenig. : p
Die kommunistische Ente

5
@ The Communist Duck: Das war der schwache Teil. Jetzt sind deine Augen stärker.
Doppelgreener

3
@ The Communist Duck Du bist gerade weiter unten im Kaninchenbau gelandet und es geht ein ganzes Stück runter;)
Ray Dey

Ich bin irgendwie genervt. XNA erlaubt mir nicht wirklich, irgendetwas davon mit MP3-Dateien zu machen (ich könnte es mit .WAV tun, denke ich, aber die sind riesig), was ärgerlich ist. Aber hey, vielen Dank für großartige Ressourcen und Kopfschmerzen: D
The Communist Duck

1
@Kay hat den Link aktualisiert
Ray Dey


0

Die Daten, die aus der Analyse der Variation der spektralen Energie stammen, reichen aus, um diese Art von Karten zu erstellen. Hier kann das Problem sein, wenn zu viele Daten verarbeitet werden müssen: Nicht welche Art von Daten werden verwendet, sondern wie.

Nachdem ich einige Videos gesehen habe, glaube ich, dass die Daten in der Feature-Domain (Zeit-Domain -> Frequenz-Domain -> Feature-Domain) weiter verschoben werden. Die Software generiert Daten anhand der Änderungen der spektralen Energie und versucht, bekannte Merkmale zu erkennen. Anschließend verwendet sie die Informationen zu den Merkmalen, um die Karte einzurichten. Die Erkennung kann durch Clusterbildung, maximale Wahrscheinlichkeit, neuronale Netze, genetischen Algorithmus usw. erfolgen.

Nach Abschluss der Erkennung erhalten Sie folgende Informationen: Wo befindet sich das Merkmal in Zeit und Häufigkeit , welche Art von Merkmal befindet sich, mit welcher Geschwindigkeit bewegt sich der Merkmalsvektor ? Sie können diese Daten verwenden, um einen Kartengenerierungsalgorithmus zu erstellen, der Raum für Verbesserungen lässt, z. B. bessere Erkennungsalgorithmen, die Erkennung weiterer Funktionsfamilien, das Extrahieren weiterer Daten sowie neue Möglichkeiten zum "Rendern" dieser Daten und so weiter.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.