-
스킬 범위... 어떻게 설정하지...?? with. 반월게임 클라이언트 개발/MakeDNF 2024. 2. 2. 21:35
이번 글에서는 반월 스킬을 구현하면서 스킬 이펙트에 따라 변동하는 히트박스를 어떻게 처리할 지에 대해 고민한 내용에 대해 작성해보고자 한다.
런타임에 히트박스가 변한다....??
악즉참 스킬 다음으로 구현하고자 한 스킬은 반월 스킬이다. 반월 스킬을 구현할 때 제일 고민이 됐던 부분은 스킬 범위를 런타임에 어떻게 설정할지였다. 지금까지 스킬을 구현할 땐 히트박스의 멤버 변수(Size, Offset, Pivot 등)를 에디터에서 수정하고 런타임엔 수정할 수 없도록 구현했었다.
하지만, 반월 스킬을 구현하고자 했을 땐 히트박스가 런타임 중 이동해야 한다고 생각했다. 플레이어가 화면상에선 몬스터와 검기 이펙트가 충돌하지 않았는데 피격되면 이상하게 보일 수도 있다고 판단했기 때문이다. 아래 사진들은 반월 스킬을 프레임 별로 캡처한 사진이다. 첫 번째 사진을 보면 검기 이펙트와 오른쪽 샌드백 오브젝트가 충돌하지 않았다고 보임에도 불구하고 피격되었다. 물론 이펙트가 전체 4 프레임 정도라 굉장히 빠르게 지나가기 때문에 실제 플레이에선 이상하게 보이진 않는다.
이러한 현상은 소울브링어의 기본 공격에서 더 확실히 나타난다. 기본 공격 1타에서 적의 위치에 따라 피격되는 순서가 달라지기 때문이다. 아래 사진에서 가장 왼쪽의 몬스터가 먼저 피격되고 그 이후에 두 번째 몬스터가 피격되는 모습을 볼 수 있다. 이러한 현상 때문에 런타임에 히트박스를 움직여서 피격 판정을 한다고 생각했다.
여러 개의 히트박스
힌트는 역시나 인게임에 존재했다. 소울 브링어의 기본 공격을 녹화하여 프레임 단위로 천천히 돌려본 결과, 검을 휘두르는 이펙트가 하나가 아닌 두 개의 이펙트로 이루어져 있었다. 즉, 히트 박스가 런타임에 이동하는 것이 아닌, 하나의 공격에 총 두 개의 히트 박스가 존재했던 것이었다.
그래서 반월 스킬을 구현할 때 이펙트의 위치에 맞게 총 세 개의 히트 박스를 설정하고 애니메이션에 맞게 활성화될 히트박스를 설정하여 반월 스킬을 구현할 수 있었다.
'게임 클라이언트 개발 > MakeDNF' 카테고리의 다른 글
전투 시스템 구현 (Feat. 메이플 스토리 월드) (0) 2024.03.06 캐릭터 기본 클래스 구현 (0) 2024.03.04 악즉참 스킬로 알아보는 역경직 발생 조건 (0) 2024.02.01 애니메이션과 스킬 타이밍 동기화, 근데 AnimatorStateInfo를 곁들인.. (0) 2024.01.31 남 넨마스터의 넨가드 스킬에 대한 고찰 (0) 2024.01.22