판정박스

Hitbox / Hit Mark

1 개요

게임에서 위치, 공격, 피탄 등을 판별하기 위해 오브젝트나 캐릭터를 둘러싸도록 만든 투명한 박스를 말하며, , 스페이스 인베이더에서 시작해서 판정이 필요한 모든 게임에 변용될 정도로 아주 오래된 아이디어이다. 2D 대전격투게임에서는 캐릭터 성능을 좌우하는 기준으로 쓰기도 한다.

판정박스가 겹치는지 매 순간 검사하는 알고리즘을 충돌 감지(Collision Detection)라 한다.

2 판정박스란?

다음과 같은 상황을 예로 들어 생각해보자.

  • 인간형 플레이어 캐릭터
  • 인간형 적이 칼로 플레이어를 내려친다.

이 상황에서 '칼에 맞았다'라는 걸 프로그램이 어떻게 판단할까?

상식적으로 생각해봤을 때 '칼날이 플레이어의 몸체가 차지하는 공간을 지나갔다.'가 정답일 것이다. 물론 틀린 말은 아니며 충분히 구현 가능하다. 하지만 인간형 물체가 굴곡져 있는지라 이를 기준으로 공간을 판단하면 계산할 양이 많아진다. 게다가 액션게임이 아닌 이상 '맞았다', '안 맞았다' 판단만 하면 땡이므로 굴곡을 직접 쓰는 방법은 쓸데없는 연산을 늘릴 뿐이다. 따라서 몸체를 적당히 네모난 박스로 둘러싸고 이 박스들이 충돌했느냐에 따라 칼에 맞았는지 안맞았는지 판단하는 것이다.

앞서 언급했듯 퐁이나 스페이스 인베이더 같은 단순한 게임의 경우 통짜 네모 박스를 써도 되고 액션 게임이나 FPS 등 정교한 판단을 요구하는 경우 부위별로 판정박스를 만들기도 한다. 물론 판정'박스'라고 그 범위가 사각형이나 직육면체일 필요는 없으며, 굳이 공간에 한정할 필요도 없다. 그 사례로 벡터 기반의 게임은 사각형이 아닌 도형 자체를 판정박스로 사용하기도 하고, 리듬게임에서는 시간차와 입력 위치를 판정박스로 사용하기도 한다. 심지어는 직접 '박스'를 쓰지 않아도 일반적인 로직으로 구현할 수 있는데, 판정박스 자체가 판정 로직을 '단순화한 가상의 물체'로 정의한 것이기 때문에 이런 게 가능한 것이다.

실제 게임에서 쓰인 사례를 소개한 페이지

3 대전액션게임에서의 판정박스

파일:Attachment/daimon-3c1.png파일:Attachment/daimon-3c2.png

※KOF의 예 크고 아름다운 공격판정을 봐라 핵두상

공격판정, 피격판정, 몸판정, 장풍판정, 반격판정, 가드포인트 판정 등으로 나누어지며 뒤의 스샷에서 공격판정은 빨간색, 피격판정은 파란색, 몸판정은 하늘색으로 되어있다.[1]

3D 대전액션게임에서는 이 판정박스가 3D 폴리곤의 형태로 나타나나, 스트리트 파이터 4를 필두로 한 2D의 게임성을 가지고 있는 게임들은 그래픽만 3D로 쓸 뿐 2D 판정박스를 사용한다.

2D대전액션게임에는 기본적으로 3가지 종류의 데미지 박스가 있으며 특수한 데미지 박스까지 합하면 4~5개쯤 나오며 스트리트 파이터 4는 가드플래그(여기에 닿아야 가드 모션이 뜸) 판정, 장풍무적 판정 등 정말 복잡하기 그지없는 판정박스를 보여준다.

  • 공격판정(빨간색) - 이곳과 상대의 피격판정을 닿게 하면 때리는 것으로 인식이 된다. 넓을수록 유리하며 이것이 화면 전체에 있는것이 화면 전체판정
  • 피격판정(파란색) - 이곳과 상대의 공격판정이 닿으면 플레이어가 맞는 것으로 인식이 된다. 작을수록 유리하며 이것이 아예 없는 것이 무적시간.
  • 잡기판정-이 판정이 상대의 몸판정에 닿으면 잡는 것으로 인식한다. 물론 점프하면 땡이지만 공중에 뜬 몸판정만 잡는 잡기판정도 있다.
  • 몸판정(하늘색) - 캐릭터들이 겹쳐질 수 없도록 하는 판정. 이 판정은 서로 겹쳐질 수 없고 벽에도 부딪힌다. 캐릭터들의 위치관계의 기준이 되므로 역가드공격의 기준이 되며 잡기의 기준이 된다. 물론 앉아 있는 것과 서 있을 때의 크기는 다르다.
  • 장풍판정 - 장풍, 혹은 장풍상쇄가능한 기술 등에 붙어있는 판정으로 장풍판정끼리 닿으면 없어진다. 장풍의 종류에 따라 강약이 있는 경우(예를 들면 한 쪽이 왕장풍일 경우)에는 판정이 더 센 왕장풍 쪽이 뚫고 지나간다. 아 물론 KOF의 오로치는 그냥 필살기 장풍이 초 필살기 왕장풍도 상쇄한다. 단, 지들끼리는 상쇄 안된다.
  • 반격판정 : 여기에 공격판정이 닿으면 반격을 시도한다. 지상기본기만 반격가능한 것, 필살기나 공중기본기만 반격가능한 것, 모든 것을 반격가능한 것 등으로 구분된다.
  • 기타 - 가드 포인트 등의 판정범위를 표시하는 판정박스

특히 주가 되는 것은 공격판정과 피격판정. 여기에 따라서 기본기와 필살기의 성능이 좌우된다고 보면 된다.

4 슈팅게임에서의 판정박스

파일:Attachment/hitmark dariusgx.png
다라이어스 외전의 예. 노란 부분이 판정박스이며, 2.7버전에서 1P C + 2P C로 디버그 모드로 들어간 뒤 Hit Mark를 ON으로 설정하여 확인할 수 있다.

파일:Attachment/판정박스/18.jpg
스트라이커즈 1945 II 기체들의 피탄 판정, 피탄 판정 역시 판정박스의 일종이다.

대전액션게임과는 달리 각 플레이어별(적 포함)로 탄환 판정과 피탄 판정으로 나뉘는데, 자신의 탄환이 상대방의 기체에 닿으면 그것에 대해 조건 처리를 하면 된다. 이 판정박스를 극악으로 활용한 예는 탄막 슈팅 게임, 이 경우 플레이어의 기체와 적 탄환에 판정박스를 가급적 작게 만들어, 요리조리 회피가 가능한 탄막을 가능하게 한다.

건 슈팅 역시 판정박스를 활용한다. 오리사냥 등에 쓰였던 재퍼가 대표적인 예.

5 판정박스의 예시

좋은 판정박스의 예는 다음과 같다.

파일:Attachment/daimon-j-d.png

98 버전의 다이몬 고로 점프 D. 통칭 발로 쏘는 장풍. 추가로 김가불 문서 참조. 몸판정과 공격판정이 지옥을 보여준다(...)히히 정가드일까 역가드일까 나도몰라

파일:Attachment/shoryuken.png
스트리트 파이터 2승룡권. 이쪽은 아예 피격판정이 존재하지 않는데다[2] 공격판정도 아스트랄하게 넓다.

구려터진 판정박스의 예로는

download?fid=6422171e14a0060031c8171ea54ad622&name=%EC%95%89%EC%95%84%EC%95%BD%EB%B0%9C.gif
download?fid=6422171e14a006002f7c171e8e4bb222&name=%EC%9B%90%EA%B1%B0%EB%A6%AC%EA%B0%95%EC%86%90.gif
이런 걸 들 수 있다. 참고로 저건 기본기 구리기로 가장 악명높은 02쿄의 판정박스이다. 역시 쿄레기 우리를 실망 안시킨다.

6 번외편 : 빌리 안습의 법칙

빌리 안습의 법칙 문서 참고

  1. 그러나 위 스샷의 색상은 유저들이 편의를 위해 직접 추가한 것이다. 실제 에뮬을 켜서 보면 저렇게 친절하게 빨강 파랑으로 나오지 않고 테두리만 살짝 나온다.
  2. 때문에 둘이 동시에 승룡권을 쓰면 공중에서 서로 몸만 부데끼다가 내려오고(...), 시전에 약간의 시간차가 있으면 먼저 쓴 쪽이 격추당한다(...).