Audiosurf 및 Beat Hazard와 같은 오디오 기반 게임은 어떻게 작동합니까?


43

참고 :이 중 하나를 복제하는 방법을 묻지 않습니다. 나는 그들이 어떻게 작동하는지 묻고 있습니다.

모든 사람이 자신의 음악 파일 (또는 제공된 파일)을 사용하는 게임을보고 오디오 서프비트 해저드 (Beat Hazard )와 같은 게임을 기반으로 레벨을 생성한다고 확신합니다 .

여기에 내가 의미하는 바를 보여주는 Audiosurf 의 비디오 가 있습니다.

헤비메탈 곡을 제공한다면 비발디와는 완전히 다른 장애물, 적, 게임 경험을 얻게됩니다.

나에게 관심이있는 것은이 게임의 작동 방식입니다. 나는 오디오에 대해 잘 알지 못하지만 데이터가 안정되거나 속도가 빨라지는 것을 이해하기 위해 노래를 어떻게 처리합니까? 나는 그들이 피치 값을 공급하여 (그런 종류의 것들이 오디오 파일에 있다고 가정) 레벨을 형성 할 수 있다고 생각하지만, 완전히 설명하지는 못합니다.

나는 설명,이 종류의 물건에 대한 기사에 대한 링크 또는 용어에 대한 오픈 소스 구현을 찾고 있습니다. ;-)

편집 : 약간의 검색과 약간의 도움을 얻은 후 FFT (Fast Fourier Transform)에 대해 알았습니다 . 이것은 올바른 방향으로의 발걸음 일 수도 있지만, 나에게 이해가되지 않는 것입니다.


1
FFT에 대한 정보를 추가하기 위해 방금 편집했습니다. 도움이 되길 바랍니다 :)
Ray Dey

답변:


30

찾고있는 용어는 신호 처리 / 분석 입니다. 관련된 많은 기술이 있지만 그 게임에서 사용하는 기본 기술은 비트 탐지 입니다. 이는 곡의 템포와 소절의 비트가있는 위치를 계산하여 각 비트와 일치하도록 적절한 거리를두고 장애물을 배치합니다.

게임이 언제 시작되는지 등을 알 수있는 방법은 매우 간단하고 파형의 진폭 (볼륨) 또는 특정 주파수의 볼륨을 분리하고 볼륨을 측정하는 것과 같이 더 복잡한 것까지 다양합니다.

관심이 있다면 디지털 신호 처리를 살펴보고 파형을 분석하는 방법을 확인하십시오. 이는 본질적으로 이러한 게임이로드 단계에서 수행하는 작업입니다.

이 링크는 시작하기에 좋습니다.

사운드 프로세싱
이론 및 전자 음악 기술
소개 디지털 필터 소개

희망이 있습니다 :)

-레이

편집 : 방금 푸리에 변환에 대한 편집 내용을 보았고 전문가가 아니더라도 통찰력을 추가 할 것이라고 생각했습니다!

FFT는 파형의 실제 푸리에 변환을 계산하는 방법입니다. 기본적으로 오디오 파일을 Audacity에 로드 하면 타임 라인과 함께 타임 라인과 함께 웨이브 형식이 표시되며이를 시간 도메인 이라고 합니다 . FFT는 시간 도메인의 신호를 주파수 도메인 (기본적으로 오디오 내에서 발생하는 모든 주파수)으로 변환합니다.

이 변환은 스펙트럼 분석에 유용합니다. 게임 예제에서 푸리에 변환을 수행하는 경우 오디오에서 고주파 발생량을 쉽게 계산할 수 있으며,이를 통해 트위스트 시각 효과, 별 또는 일반적으로 고주파수 사운드와 관련된 것을 추가 할 수 있습니다. 저주파의 경우 시간이 지남에 따라 저음으로 이동하는 크고 무성한 괴물을 가질 수 있습니다.


1
훌륭한 링크! 그러나 나는 그들을 클릭했고 눈이 약간 녹았다. : p
공산주의 오리

5
@ 공산당 오리 : 그것은 약한 부분이었습니다. 이제 눈이 더 강해집니다.
doppelgreener

3
@ 공산주의 오리 당신은 방금 토끼 구멍을 밟아 내려갔습니다.;)
Ray Dey

나는 XNA가 MP3 파일 (이것으로 생각할 수있는 .WAV로 할 수는 있지만 거대합니다)으로 이러한 일을 할 수있게 해줍니다. 그러나 훌륭한 자원과 두통에 대해 대단히 감사합니다 : D
공산주의자 오리

1
@Kay는 링크를 업데이트했습니다
Ray Dey


0

스펙트럼 에너지 변동에 대한 분석에서 나온 데이터는 이러한 종류의지도를 생성하기에 충분합니다. 처리 할 데이터가 너무 많은 경우 문제가 발생할 수 있습니다. 어떤 종류의 데이터가 사용되는지가 아니라 어떻게.

일부 비디오를 본 후 데이터가 기능 도메인 (시간 도메인-> 주파수 도메인-> 기능 도메인)으로 더 이동한다고 믿기 시작했습니다. 소프트웨어는 스펙트럼 에너지 변화를 사용하여 데이터를 생성하고 알려진 기능을 인식 한 다음 해당 기능에 대한 정보를 사용하여 맵을 설정합니다. 인식은 군집화, 최대 가능성, 신경망, 유전자 알고리즘 등으로 수행 할 수 있습니다.

인식을 완료 한 후에는 같은 infomations 있습니다 에서 발견 된 경우 기능 의 시간주파수 , 어떤 유형 featuature의가 발견되면, 속도가 특징 벡터 이동 등됩니다; 이러한 데이터를 사용하여지도 생성 알고리즘을 제공하여 더 나은 인식 알고리즘 만들기, 더 많은 기능 군 인식, 더 많은 데이터 추출, 이러한 데이터를 "렌더링"하는 새로운 방법 찾기 등과 같은 개선의 여지를 남겨 둘 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.