Jak działają gry audio, takie jak Audiosurf i Beat Hazard?

43

Uwaga: nie pytam, jak zrobić klon jednego z nich. Pytam o to, jak działają.

Jestem pewien, że wszyscy widzieli gry, w których korzystasz z własnych plików muzycznych (lub dostarczonych), a gry produkują na ich podstawie poziomy, takie jak Audiosurf i Beat Hazard .

Oto wideo Audiosurf w akcji, aby pokazać, co mam na myśli.

Jeśli dostarczysz heavy metalową piosenkę, otrzymasz zupełnie inny zestaw przeszkód, wrogów i wrażenia z gry od czegoś takiego jak Vivaldi.

Interesuje mnie to, jak działają te gry. Nie wiem dużo o dźwięku (cóż, po stronie danych), ale jak przetwarzają piosenkę, aby zrozumieć, kiedy się uspokaja lub przyspiesza? Sądzę, że mogliby po prostu podać wartości wysokości dźwięku (zakładając, że tego rodzaju rzeczy istnieją w plikach audio), aby utworzyć poziom, ale to by do końca tego nie wyjaśniło.

Szukam wyjaśnienia, linków do artykułów na ten temat (jestem pewien, że istnieje termin lub warunki), a nawet implementacji tego typu na zasadach open source ;-)

EDYCJA: Po kilku poszukiwaniach i niewielkiej pomocy dowiedziałem się o FFT (szybka transformata Fouriera). To może krok we właściwym kierunku, ale dla mnie nie ma to żadnego sensu ... lub pasuje do mojej wiedzy o falach.

Kaczka komunistyczna
źródło
1
Właśnie edytowane dodać trochę informacji o FFT, nadzieję, że pomoże :)
Ray Dey

Odpowiedzi:

30

Pojęcie, którego szukasz, to przetwarzanie / analiza sygnału. W grę wchodzi wiele technik, ale podstawową z tych gier jest Beat Detection . Ta próba obliczenia tempa utworu i miejsca, w którym znajdują się uderzenia w takcie, a tym samym umieszczenia przeszkód w odpowiedniej odległości od siebie, aby pokrywały się z każdym uderzeniem.

Sposób, w jaki gry wiedzą, kiedy „włączyć” itd., Może być bardzo prosty i mierzyć amplitudę (objętość) kształtu fali lub coś bardziej złożonego, jak izolowanie głośności niektórych częstotliwości i pomiar ich głośności.

Jeśli jesteś zainteresowany, zajrzyj do Cyfrowego przetwarzania sygnałów, aby zobaczyć, jak możesz analizować przebiegi, co jest zasadniczo tym, co robią te gry w fazie ładowania.

Te linki są na dobry początek:

Wprowadzenie do
teorii przetwarzania dźwięku i technik muzyki elektronicznej
Wprowadzenie do filtrów cyfrowych

Mam nadzieję, że to pomoże :)

-Promień

EDYCJA: Właśnie widziałem twoją edycję dotyczącą transformacji Fouriera i pomyślałem, że dodam trochę wglądu, chociaż w żadnym wypadku nie jestem ekspertem!

FFT to sposób obliczenia rzeczywistej transformaty Fouriera kształtu fali. Zasadniczo, jeśli załadujesz plik audio do Audacity , zobaczysz formę fali z osią czasu na górze, jest to znane jako domena czasu . FFT przekształci sygnał z dziedziny czasu w dziedzinę częstotliwości (w zasadzie wszystkie częstotliwości występujące w dźwięku).

Ta konwersja jest przydatna do analizy spektralnej. W przykładzie gry, jeśli miałbyś wykonać transformację Fouriera, możesz łatwo obliczyć liczbę wystąpień wysokich częstotliwości w dźwięku, a na tej podstawie możesz dodać migoczące efekty wizualne, gwiazdy lub coś związanego z dźwiękami o zwykle wysokiej częstotliwości. W przypadku niskich częstotliwości możesz mieć duże, żarłoczne potwory poruszające się w czasie do dźwięków basu itp.

Ray Dey
źródło
1
Świetne linki! Kliknąłem je i moje oczy trochę się stopiły. : p
Kaczka komunistyczna
5
@The Communist Duck: To była słaba strona. Teraz twoje oczy są silniejsze.
doppelgreener
3
@Kommunistyczna kaczka Właśnie zszedłeś dalej w dół króliczej nory i idzie ona bardzo długo;)
Ray Dey
Jestem trochę zirytowany, że XNA tak naprawdę nie pozwala mi robić tych rzeczy z plikami MP3 (chyba z .WAV, ale te są ogromne), co jest denerwujące. Ale hej, bardzo dziękuję za wspaniałe zasoby i ból głowy: D
The Communist Duck
1
@Kay zaktualizował link
Ray Dey
6

Oto świetna siedmioczęściowa seria samouczków na ten temat autorstwa Badlogic Games. Obejmują wszystko, od podstaw po wdrożenie.

http://www.badlogicgames.com/wordpress/?cat=18

Próbują naśladować algorytm Audiosurf kodem i wszystkim innym.

Árni Jónsson
źródło
0

Dane pochodzące z analizy zmian widmowej energii są wystarczające do wygenerowania tego rodzaju map. Problem może występować wtedy, gdy jest za dużo danych do przetworzenia: nie to, jakie dane są używane, ale jak.

Po obejrzeniu niektórych filmów zaczynam wierzyć, że dane są przenoszone dalej w domenie funkcji (domena czasu -> domena częstotliwości -> domena funkcji). Oprogramowanie generuje dane na podstawie zmian energii widmowej i próbuje rozpoznać znane obiekty, a następnie wykorzystuje informacje o tych obiektach do skonfigurowania mapy. Rozpoznanie może być dokonane przez klastry, maksymalne prawdopodobieństwo, sieci neuronowe, algorytm genetyczny i tak dalej.

Po zakończeniu rozpoznawania masz takie informacje, jak: gdzie cecha, jeśli zostanie znaleziona w czasie i częstotliwości , jaki typ cechy zostanie znaleziony, prędkość , w jakiej porusza się wektor cech i tak dalej; możesz użyć tych danych, aby nakarmić algorytm generowania mapy, pozostawiając miejsce na ulepszenia, takie jak tworzenie lepszych algorytmów rozpoznawania, rozpoznawanie większej liczby funkcji, wyodrębnianie większej ilości danych, znajdowanie nowych sposobów „renderowania” tych danych i tak dalej.

FxIII
źródło