2017/01/03

[Korean] BPM에 따른 초당 버튼연타 계산

요약 : 스포츠/격투게임 및 음악게임에서 BPM에 따른 고속연타속도의 계산방법.
이론적 고찰과 실제 환경을 대략적으로 고려하여 연타속도 한계를 도출.

1. 용어의 정의
 현재 FPS장르를 제외한 일반적인 게임은 대부분 60프레임(1분당 60장면 표현)으로 표현된다. 이 말은 즉, 시스템적으로 초당 최대 60번의 행동을 표시가능하다는 점을 염두해야한다. 음악게임은 현재도 발매되고 있는 터치/버튼연타류를 지칭한다. 방식은 모두 동일하므로 같은 방식으로 초당연타수를 계산할 수 있다.

입력 : 게임에서 입력은 임의의 특정버튼 또는 터치패드의 특정위치를 누르는 것으로 인식되고 다음입력을 받기위해서는 반드시 버튼/터치패드로부터 떼어야 한다. 이 동작은 반드시 누르고 떼는 행동이 필요하므로 컴퓨터의 신호적으로 0(미입력)과 1(입력)이라는  두 가지의 행동이 필요하다. 지속입력(누르고 있기)는 여기서 고려할 상황이 아니므로 언급하지 않는다.


1타 : 임의의 특정 버튼을 한 번 입력(누르고 떼기)한다.
2연타: 임의의 특정 버튼을 두 번 입력한다.
n연타: 상기동일하게 n번 입력한다.

BPM : Beat per minute. 분당 박자가 몇 번 입력하는가를 표시한다. 음악의 악보에도 등장하는 용어이며, 보통 음악의 빠르기로도 표현된다. 여기서 박자(Beat)는 음악에서 4/4박자 기준으로 표현되는 게 보통이며 음악게임에서는 보통 베이스(Bass)가 1분당 몇 번 울리는 가를 표현한다고 봐도 무방하다.

2. 이론적 계산
 a. 초당 연타수 계산

용어의 정의에서 60프레임에서는 60번의 동작이 한계라는 것을 미리 언급했다. 여기서 계산은 60프레임을 기준으로 한다.

초당연타수 = n연타수/sec                              Eq. (1)

단순하다. 1초간 몇 번 입력을 했는가, 시간만 재서 연타수를 측정하면 된다. 단, 60프레임이므로 60번의 동작이 한계임을 감안하면 입력은 30타/sec가 한계임을 알 수 있다. 다른 말로 만약 게임이 240프레임일 경우  120타/sec까지 입력할 수 있다는 말이 된다.

 b. BPM에 따른 음악의 고속연타속도 계산
BPM이 분당 4/4박자 Bass의 울림수를 기준으로 표현하므로, 위의 2a에서 언급한 것처럼 임의의 버튼 한 개당 초당 30타를 넘지 않으면 게임상으로도 문제는 없다.

4비트 : BPM/60 [연타/sec]
8비트 : BPM x2 /60
16비트 : BPM x4 /60
예) BPM 120 16비트의 초당연타수 = 120x4/60= 8연타/sec
예) BPM 180 32비트의 초당연타수 = 180x8/60= 24연타/sec

8, 12, 16, 24, 32비트 연타를 그래프로 표현하면 다음과 같다.


3. 실제환경을 고려한 연타수한계
이론적으로 60프레임환경상 30프레임이 계산적으로 한계치라는 것은 분명하지만, 버튼 및 장치들의 물리적인 한계를 고려하면 실제 인간이 입력할 수 있는 한계는 필자의 견해를 먼저 말하자면 약 24연타/sec가 한계라고 생각한다. 위의 그래프에서 24연타 윗부분이 적색영역은 역대 기네스 기록 및 사람/장치의 한계를 적절히 고려한 한계영역을 표시하였다. 물론 이 수치는 실제 측정한 값도 아닐 뿐더러 버튼이 입력받을 수 있는 한계속도는 더 빠를 수도 있기에 신뢰성이 높지 않기에 어디까지나 참고적으로만 받아들이거나 이의를 제기할 수 있다.  정확히 측정하려면 오실로스코프와 같이 적어도 마이크로초(1/100만)단위로 단순 스위치 회로를 구성한 후 흐르는 전류신호의 On/Off를 전압과 시간으로 측정하면 된다. 

4. 결론
일하다 하기싫고 심심해서 만들었다.