FPS 프로젝트 준비 - 1인칭, 3인칭 스위칭 문제

프로젝트 생성부터 애를 먹었다. 이런 부분에서부터 고민이 될줄은 몰랐다. 찾아보니 나와 같은 고민을 하는 질문글들이 많았다.

유튜브, 유데미, 언리얼엔진 학습 커뮤니티에는 수 많은 FPS 튜토리얼 프로젝트들이 있지만

생각보다 1인칭 멀티 플레이어 FPS 프로젝트는 별로 없었다.

 

1인칭과 멀티/싱글이 무슨 관련인가 하지만 싱글은 어차피 다른 플레이어가 없으므로 나를 볼 일이 없기 때문에 일반적으로 팔 부분만 구현하는 경우가 많다. (게임 내 거울을 보면 내 자신이 안보이는 게임들이 대부분 이런 식이다)

 

유튜브에는 기본 강좌가 대다수이고 기본 강좌는 짧게 몇가지 기능만 주로 다루기 때문에  보통 기본 프로젝트를 활용하는데, 언리얼 엔진의 기본 프로젝트인 First Person Project는 총과 팔 부분만 구현되어있고 유튜버들이 이 프로젝트를 영상에 쓰다보니 1인칭 FPS 튜토리얼들을 보면 대다수 팔만 구현되어있는 1인칭 프로젝트를 쓰는 싱글 튜토리얼이었다.

 

반대로 3인칭 프로젝트를 쓰는 경우는 1인칭으로 전환하는 방법을 잘 설명하지 않았다. (그러나 이런 전환 방식은 일반적으로 자주 사용된다. 최근에 공개된 스타필드 게임을 보면 1인칭과 3인칭을 전환한다. 배그도 조준시에 1인칭으로 바뀌는 방식을 사용 등등 은근히 많다)

 

찾아보니 3인칭 캐릭터에 카메라 컴포넌트를 추가하고 움직일때마다 머리나 몸이 관통되는게 보이는걸 막기 위해 카메라의 소켓을 헤드로 고정해놓는 방식을 사용하여 해결하는 방식을 사용했다.(보통 스위칭하는 방법을 검색하면 이 방법이 대부분이다.)

 

그러나 나는 혼자 머릿속으로 구상하던 방식이 있었다. 1인칭과 3인칭을 모두 구현해놓고 내 화면에만 1인칭을 보여주는식으로 활용하면 안될까. 이 방식이 카메라 위치 변경이나 팔 동작 애니메이션을 보여주기 더욱 적합해 보였다.

 

해당 방식으로 구현한건 없는지 더 찾아보기로 했다. 언리얼이 최근에 Lyra 프로젝트를 공개했는데 이는 3인칭이다. 그 많은 언리얼 학습자료나 샘플에서 1인칭 풀바디가 없을까. 찾아보니 언리얼 4에 있던 레거시 샘플에 1인칭 풀바디가 있었다. 

참고하고자 프로젝트를 열어보니 내가 생각했던 방식처럼 풀바디에 1인칭을 따로 구현해놓은 방식을 사용하고 있었다. 

 

방법1보다 장점도 훨씬 많고 사용할 애니메이션 애셋들도 검색하다 보니 1인칭 전용 애니메이션도 많이 보였다. 이를 활용하기도 좋아보였다.

무엇보다 에픽게임즈에서도 채택한 방식인 만큼 믿고 방법2를 사용하기로 결정했다

 

BP_FirstPersonCharacter - 디테일 패널에 가보면 특정 메시가 오너에게만 보이도록 할건지 선택할 수 있다