[UE5] Unreal Engine 5 길라잡이 - 13. 탑다운 뷰(쿼터뷰) 카메라 구현하기

세동네·2022년 10월 9일
0
post-thumbnail

디아블로, 로스트 아크, 리그오브레전드 등 다양한 게임이 사용하는 시야는 탑다운 뷰이다. 이때 정확히 위가 아닌 공간의 각도가 45도 정도 비틀어져 바닥 타일이 마름모 모양인 경우는 탑다운 뷰에 속하는 쿼터뷰로 분류된다.

[쿼터뷰 예시 - 출처 : 인벤]

이러한 시점의 특징은 캐릭터를 중앙에 고정하고 캐릭터 이동에 따라 카메라가 이동하는 것이다. 확대 축소 혹은 각도 조절이 가능하기도 하고, 캐릭터 고정을 해제하고 카메라로 월드 내를 자유롭게 이동할 수 있는 기능을 추가하기도 한다.

우리가 만들어 볼 것은 간단하게 캐릭터를 기준으로 카메라를 고정하고, 캐릭터 이동에 따라 카메라를 이동하는 것이다.

· 클래스 생성 및 컴포넌트 부착

캐릭터 C++ 클래스를 생성하고, 이를 부모로 하는 블루프린트 클래스를 만들어 주었다. 기본 캐릭터 클래스이므로 컴포넌트 등이 부족한 상태이다.

블루프린트 에디터를 열어 캡슐 컴포넌트의 자식으로 SpringArm, SpringArm 컴포넌트의 자식으로 Camera 컴포넌트를 부착해 주었다. 이제 새롭게 부착한 컴포넌트의 프로퍼티를 조정해주어야 한다.

· SpringArm 컴포넌트 세팅

SpringArm은 캐릭터와 카메라를 연결해주는 지지대 역할을 한다. 사람과 핸드폰을 연결해주는 셀카봉과 같은 역할을 한다고 보면 된다. 탑다운 뷰를 구현하기 위해 SpringArm 컴포넌트의 다양한 섹션을 손봐주어야 한다.

  • 변수 섹션

    변수의 카테고리를 카메라로 변경해 준다. 카테고리는 유니티 엔진으로 따지면 태그 정도로 볼 수 있다. 해당 변수가 어떤 부류에 속할 것인지 지정해주는 역할을 한다.

  • 트랜스폼 섹션

    카메라는 암의 끝 부분에 달려 있기 때문에, 암이 이동하고 회전하는 것이 카메라에 전달된다. 또한, 암의 반대편 끝에는 캐릭터가 연결되므로 캐릭터가 회전하는 것이 암에 전달될 것이다. 우리가 구현할 카메라는 회전하지 않게 할 것이므로 캐릭터의 회전이 암에 전달되지 않도록 설정한다.

    회전 프로퍼티의 타입을 상대에서 월드로 변경하면, 현재 SpringArm 컴포넌트가 부착된 부모 컴포넌트의 회전이 아닌 월드의 회전에 영향을 받게 되어 캐릭터가 움직이면서 회전하더라도 암에는 전달되지 않는다. 이후 피치(Y)를 -50°로 설정해 대각선으로 캐릭터를 내려보게 설정한다.

  • 카메라 섹션

    타깃 암 길이 프로퍼티를 1400으로 설정해준다. 타깃 암 길이는 셀카봉 길이라고 보면 된다. 암의 양 끝에 달린 캐릭터와 카메라 사이의 거리를 조절해준다. 이때 언리얼의 길이 단위는 (cm)이므로, 1400cm를 떨어뜨린 것이라고 볼 수 있다. 실제로 따지면 14m를 떨어뜨린 것인데, 너무 먼데..? 하지만 인게임에서 보았을 때 이 정도가 적당하다.

  • 카메라 콜리전 섹션

    콜리전 테스트 실행 프로퍼티를 비활성화해준다. 카메라 클리핑이란 카메라가 바라보고 있는 액터를 다른 액터가 가렸을 때 카메라를 끌어 당겨 가리는 액터의 앞으로 가져오는 것이다. 아래 그림을 참고하자. 벽에 가까이 다가갔을 때 우측처럼 카메라를 끌어 당긴다.

    현재 게임에서 플레이어가 벽에 가리더라도 가리는 액터의 투명도를 조절하는 등의 기법으로 처리할 것이고, 카메라는 움직이지 않게 할 것이므로 클리핑이 일어나지 않도록 콜리전 테스트를 꺼준다.

  • 지연 섹션

    카메라 렉 활성화 프로퍼티를 활성화하여 캐릭터가 이동할 때 약간의 지연 시간을 두고 카메라가 이동하여 부드러운 움직임을 주도록 한다. 이때, 너무 긴 지연을 주지는 않도록 카메라 지연 속도를 3으로 설정했다.

· Camera 컴포넌트 세팅

  • 변수 섹션

    SpringArm과 마찬가지로, 카메라의 카테고리 또한 카메라로 변경해준다.

  • 카메라 세팅 섹션

    필드 오브 뷰 프로퍼티를 55도로 설정해준다. 이는 그래픽스에선 FOV, 사진술에선 화각이라는 용어로 불린다. 카메라가 담을 수 있는 영역의 각도를 의미하는데, 아래 사진을 보면 쉽게 이해가 된다.

[FOV - 출처 : ResearchGate]

이것이 게임에선 다음과 같은 차이를 준다.

[그래픽스 FOV - 출처 : Youtube]

이때 주의깊게 보아야 할 것은 그래픽스 FOV의 중앙부에 가까워질수록 차이가 나타나는 것이다. 같은 크기의 화면 안에 더 많은 화각을 표현해야 하기 때문에 거리가 멀수록 밀집되어 왜곡되는 현상을 확인할 수 있다. 특히 FPS 게임에서 FOV는 중요한 요소이지만, 과도한 왜곡으로 게임에 지장을 주지 않을 정도의 설정을 해주는 것이 중요하다.

· 결과

아직 캐릭터에 대한 애니메이션 적용이 안 되어서 액터가 어색하지만, 카메라 세팅은 잘 된 것을 확인할 수 있다.


· 참고

[UE Document] 스프링 암 컴포넌트 사용법

0개의 댓글