패스트캠퍼스 환급챌린지 50일차 : RPG 전투 플레이 프로젝트로 배우는 언리얼 엔진 5 게임 개발 강의 후기
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
오늘은 언리얼 엔진에서 인디케이터를 사용하는 스킬 시스템을 구현해봤다. 게임 플레이 중 플레이어가 스킬을 사용할 때, 사전에 타겟 지점이나 영향을 받을 범위를 시각적으로 표시해주는 기능을 인디케이터라고 부르는데, 이번 학습에서는 그 인디케이터를 기반으로 스킬 발동 위치를 정하고 실제 효과를 적용하는 전체 흐름을 만들어보았다.
가장 먼저 했던 작업은 인디케이터 메시를 만들고 배치하는 시스템이었다. 나이아가라 또는 단순한 데칼을 활용해 반투명한 원형 표시를 만들고, 마우스 위치를 기반으로 지면에 해당 표시가 따라다니게 설정했다. 이후에는 스킬 시전 준비 상태와 발동 상태를 나눠 구현했다. 마우스 오른쪽 버튼을 눌렀을 때 인디케이터가 활성화되고, 그 위치에 스킬을 사용할 수 있게 대기하다가, 다시 한 번 키를 누르면 해당 위치에 스킬이 발동되도록 구성했다.
인디케이터 기반 스킬 시스템을 구현하면서 느낀 가장 큰 장점은, 스킬 사용의 피드백과 조작 감각이 훨씬 좋아졌다는 점이다. 아쉬운 점도 있었다. 지형이 경사져 있는 경우, 인디케이터가 잘못된 방향으로 배치되거나 부자연스러운 위치에 나타나는 문제가 있었다. 이후에는 지형 노멀 방향을 읽어 인디케이터의 방향을 보정하는 기능도 추가하고 싶다. 또, UI와 상호작용해서 마우스 포인터 모양을 바꾸거나, 선택을 취소하는 기능도 보완할 필요가 있다.
단순히 인디케이트를 처리하면 되는 줄 알았는데 생각보다 언리얼에서 추가해줘야 되는 부분이 많았고 구조적으로도 꽤나 복잡한 작업이 이루어졌다. 그래도 엔진의 장점은 한번 구조를 만들어 놓으면 재사용을 할 수 있어서 좋은 것 같다. 다음 시간에는 시네마틱 연출을 통해서 컷씬을 제작하는 학습을 진행하게 된다. 컷씬을 제작하고 나면 강의의 전반적인 구성은 끝이 나고 마무리만 남게 된다. 패스트 캠퍼스 챌린지를 진행하면서 매일매일 꾸준히 강의를 학습할 수 있고 어려운 언리얼 강의도 완강을 코앞에 두고 있어서 꽤나 도움이 많이 되었다.
Abit.ly 다운받기
abit.ly