개발자 노트

> 새소식 > 개발자 노트

영웅전의 타격 판정

  • DEV 파파랑
  • 2009-09-18 16:53
  • https://heroes.nexon.com/common/postview?b=20&n=35



안녕하세요, 파파랑입니다.

영웅전의 구체적인 오픈일정은 다음달쯤 발표될 것으로 보입니다.

다음 게릴라테스트는 길드와 채널포탈, 웹 연동 등에 관한 테스트가 될 것이며, 아마 10월에 진행될 것 같습니다.

9월중에 하게되면 저 부분들은 제외하고 지난번과 동일한 버전으로 하게 됩니다.

 

 

 

타격 판정이란 무엇인가

 

칼과 같은 근접 무기를 들고 전투를 하는 게임에서 가장 기본이 되는 처리는 "때리고 맞는 판정" 하는 것입니다. 이를 <타격 판정>이라고 하는데, 3D 만들어진 많은 게임들은 다양한 방식으로 타격 판정을 하게 되며 이것이 게임성에 큰 영향을 주게 됩니다.

 

 

액션 게임을 많이 해보신 분들은 차이를 아시겠지만, 보통의 온라인 게임들은 단순한 방식으로 타격 판정을 하기 때문에 세밀한 액션성을 살리기에 적합하지 않습니다. 그러나 마비노기 영웅전에서는 재미있고 리얼한 액션을 위해 한층 정교한 타격 판정을 실시하고 있습니다.

 

 

 

보통의 MMORPG 방식

 

타격 판정을 하는 가장 단순한 방법은 오직 공격자와 피격자 사이의 거리만 가지고 체크하는 것입니다. 공격이 이루어졌는데 둘이 일정 거리내에 있었다면 맞은 것으로 판정하게 됩니다. 이런 방식을 쉽게 설명하자면, 캐릭터와 몬스터를 () 또는 원통과 같이 매우 간단한 모습으로 간주하는 것입니다.

 

아래 그림은 예를 들어서 나타내본 것인데, 파란 원과 빨간 원이 겹치면 몬스터는 공격에 맞았다고 판정됩니다. 

 

 

 

 

그리고 방향에 의한 판정을 추가할 수도 있습니다. 이럴 때는 공격 범위가 부채꼴 비슷한 모습으로 체크됩니다.

 

 

그리고 이런 요소들은, 시간에 의한 움직임 역시 반영되지 않습니다. 칼을 휘두르면 범위 내의 모든 몬스터들이 동시에 맞을 뿐이지, 오른쪽에서 왼쪽으로 휘두른다고 해서 왼쪽 몬스터가 오른쪽 몬스터보다 조금 늦게 맞지는 않습니다.

 

보통의 온라인 게임들은 대개 이렇게 단순하게 타격판정을 합니다.

MMORPG 액션성이 중요하지 않으므로 이런 식으로 타격판정을 해도 문제가 없지만, 순간의 조작으로 생사가 오가는 액션 게임에서는 이런 처리만으로는 많이 부족해집니다. 몬스터와의 거리와 방향만이 고려되고, 몬스터의 모양이나 움직임 시간, 고저차 같은 것은 전투에 영향을 미치지 않기 때문입니다.

 

 

 

 

마비노기 영웅전의 타격 판정 방식

 

영웅전에서는 액션게임이라는 이름에 부끄럽지 않고자, 정교한 타격 판정 방식을 쓰고 있습니다.

FPS 게임 엔진의 기초 위에 디테일한 근접무기 판정을 덧붙인 방식입니다.

 

 

 

 

플레이어와 몬스터에는 모두 그림과 같은 히트박스(hitbox)라는 것이 있습니다. 히트박스는 움직이는 사지에 각각 눈에 보이지 않는 상자를 입힌 것으로, FPS 게임에서 총알에 맞았는지 판별할 때에 상자를 기준으로 처리하게 됩니다. 여러분이 즐겨쏘는(?) 헤드샷 같은 것도, 머리에 해당하는 히트박스가 맞았는지 판단하는 방식으로 처리합니다. 다른 곳에 비해 어느 부위가 약점이라는 것도 이런 식으로 만들어집니다.

 

FPS 게임이라면 ()으로 발사되는 총알 궤적이 히트박스에 맞았는지 체크하는 것만으로도 충분합니다. 그러나 영웅전은 근접공격이 주가 되는 게임이므로 특수한 처리가 필요합니다. 칼날이 휩쓸고 () 히트박스에 맞았는지 판정하는 것입니다. 이를 통해 칼이 팔을 베고 지나갔는지 다리를 베고 지나갔는지 정교한 판정이 가능합니다. 18세 버전에서 몬스터 몸에 묻는 피도 무작위로 보이는 게 아니고, 타격된 부위에 정확히 나타나는 것입니다.

 

 

때문에 움직임의 시간에 따른 영향도 생겨납니다. 칼을 오른쪽에서 왼쪽으로 휘두르면, 왼쪽에 있는 몬스터는 오른쪽 몬스터보다 늦게 맞게 됩니다. 타격감을 위해 칼날이 몬스터 몸에 걸려 잠시 멈추는 처리도 동작하므로, 다수의 적에 포위되어 싸우는 불리한 상황에는 정말 0.1초의 차이로 생사가 달라질 있습니다. 

 

이런 정교한 처리는 '쫀득한 타격감'의 바탕이 됩니다. 타격감을 만드는 요소는 이펙트, 사운드, 카메라 처리 등 여러가지가 있지만 여기에다 정교한 타격판정이 더해져 영웅전 특유의 쾌감이 생깁니다.

 

 

*위 동영상에서 몬스터의 움직임과 히트박스의 움직임이 달라보이는 이유는, 서버와 클라이언트 사이에 통신시간(ping)과 보간(interpolation) 처리로 인해 클라이언트 쪽이 0.1초 정도 과거의 모습을 보여주기 때문입니다. 공정성을 위해 이에 따른 오차를 줄이고자 서버에서 지연보상(lag compensation)이라고 하는 처리를 해 과거시점으로 히트박스의 위치를 되돌려 판정하는 처리가 들어가는데, 복잡하니까 자세한 설명은 생략합니다.

 

 

 

플레이어도 적의 공격에 맞을 때에도 비슷하게 정교한 방식을 사용합니다. 때문에 자세나 움직임에 따라서 재미있는 상황이 전개되기도 합니다. 제가 테스트 플레이를 겪은 일로는, 전투 중에 체력도 스태미나도 바닥난 절체절명의 순간에, 힘들어서 허리를 숙이는 동작을 하다가 아슬아슬하게 화살을 피해서 살아남은 적이 있었습니다. 이런 의외의 순간들이 벌어지는 것도 영웅전만의 매력입니다.

 

 

(비슷하게 재현해보았습니다)

 

그리고 새로 등장할 캐릭터 커스터마이즈 메뉴에는, 캐릭터의 '' 조절할 있게 됩니다. 정교한 타격 판정 때문에, 영웅전에서는 키가 크면 공격범위가 약간 넓어지게 됩니다. 대신 밸런스를 맞추기 위해서 공격속도가 약간 느려지게 했습니다. 그리고 덩치만큼 약간이나마 화살도 맞게 됩니다. +-5% 정도의 미세한 차이라서 크게 드러나는 것은 아니지만요.

 

하지만 영웅전이라도 맹목적으로 리얼리티만을 추구하는 것은 아닙니다. 리얼리티는 게임의 재미를 위해 존재하므로, 재미를 위해서는 적당한 과장도 섞여 있습니다. 특히 스매시 계열의 액션들은 통쾌함을 위해 뻥뻥 날라가게 만들었습니다.

 

지연보상 이외에도 온라인 플레이를 보완하는 여러가지 복잡한 테크닉과 트릭이 곁들여져서 영웅전의 종합적인 타격감과 공방을 만들게 됩니다. 

 

 

 

거대한 몬스터를 상대할 때에 드러나는 차이점

 

영웅전의 정교한 타격 판정의 이점은 몸집이 거대 몬스터와 싸울 더욱 빛을 발합니다.

 

 

영웅전의 거대한 보스 몬스터와 싸워본 분들은 이야기를 실감하실 겁니다. 위 동영상에서 거대 몬스터의 뒷발목을 칼로 베는 장면처럼, 몬스터의 몸통과 사지에 각각 타격이 맞아 들어가며, 보스의 공격 역시 마찬가지입니다. 멀리서 창을 던져 몬스터의 약점에 꽂아넣는 플레이는 쉽게 할 수 있는 것이 아닙니다.

 

액션이든 RPG이든 영웅전 외의 온라인 게임에서 이런 방식을 쓰는 게임은 거의 없으며, 있더라도 한정적으로만 적용하곤 합니다. 일부 게임에서는 보스 이외의 피래미 몬스터와의 전투에는 기술적 문제로 동기화(同期化) 처리를 하지 않아서, 나와 같은 몬스터를 상대하고 있는 동료가 내게는 허공에 칼질을 하고 있는 것처럼 보이기도 합니다.

 

영웅전에서는 이런 디테일한 타격 공방에, 물리 엔진이 주변 환경을 시뮬레이션하므로 한층 현장감과 긴장감을 제공합니다. RPG이든 액션이든 다른 온라인게임에서 번도 겪어보지 못한 체험을, 게임의 세계에서는 즐기실 있을 겁니다.

댓글 252

로그인 후 이용하실 수 있습니다

글을 등록하실 때는 타인을 존중해 주시기 바랍니다. 타인을 비방하거나 개인 정보를 유출할 경우,
운영 정책에 의하여 제재를 받거나 관련 법에 의하여 처벌을 받을 수 있습니다.