Warzone은 FPS 배틀로얄 슈터 장르이기 때문에, 적에게 총을 사격하여 적중한 상황에 대해 분석하고자 한다.
- 플레이어가 총을 격발한다면 총기의 기본 탄속에서 사용한 탄약의 종류, 배럴 등 기타 파츠에 따라 탄환 속도를 계산한 후, 플레이어가 보고 있는 화면의 중앙 좌표에 대응하는 월드 공간의 위치에서 총기의 사거리 만큼을 더해 총알의 최대 도달 위치를 구하고, 마지막으로 총알의 스폰 위치와 최대 도달 위치를 통해 총알의 회전 값을 구한다. 이 정보들을 바탕으로 총구 위치에서 총알의 회전 값을 통해 지정된 방향으로 최대 도달 위치만큼 계산된 탄환 속도 값으로 스폰되어 날아가게 된다.
- 이때 플레이어가 총구에 소음기 파츠를 장착하지 않았다면 적의 맵 UI에 플레이어의 사격시 위치를 표시한다.
- 총기 고유의 반동, 사격 사운드, 총구 화염 등을 플레이어에게 적용시킨다.
- 발사된 총알이 아군이 아닌 적에게 피격되었다면, 플레이어가 사격한 위치부터 적의 위치까지의 거리와 적이 총알에 맞은 신체 부위 정보를 가져올 것이다.
- 그리고 나서 플레이어의 총기 종류와 탄약의 종류에 따라 데미지의 값을 가져와 총알이 스폰된 위치에서 적과의 거리, 적의 피격 부위에 따른 데미지 계산을 마치고 적에게 최종적인 데미지 값을 입히게 된다.
- 워존의 캐릭터는 장갑판으로 이루어진 150의 체력과 캐릭터 자체 체력 150을 가지고 있어 총 300의 체력을 가진다. 적의 체력이 150 이상이라면 장갑판이 깨지는 UI와 사운드를 재생하고 150 이하라면 캐릭터 피격 UI와 사운드를 재생, 사망했다면 적 처치 알림UI와 사운드로 적의 체력 상태나 사망 유무를 총을 쏘는 플레이어가 알 수 있게 한다.
평소 즐겨하던 게임을 할 때는 총을 쏘고 숨고 이기기 위해서만 생각했는데, 이렇게 직접 제작한다고 생각하고 분석하니 총알을 한 발 쏠 때 수많은 계산과 표현들이 너무나 많다는 것을 다시금 느끼게 되었고,
앞으로 내가 게임을 제작할 때, 어떠한 부분 고려하고 설계해야할지 생각하는 힘이 길러진 것 같다.
'내배캠 > Unreal Engine' 카테고리의 다른 글
월드 좌표계와 로컬 좌표계의 차이 (0) | 2024.12.17 |
---|---|
언리얼 에디터 인터페이스 (0) | 2024.12.17 |
게임 개발자에 대하여 (1) | 2024.12.06 |
Game Scene (1) | 2024.12.03 |
Unreal Engine에 대하여 (1) | 2024.12.03 |