
✍️ 개요

다들 레이싱 게임 해보셨나요?
레이싱 게임을 구현하기 위해선 카메라를 어떻게 배치하면 좋을까요?
먼저 다음과 같은 조건이 필요합니다.
- 카메라는 차를 따라 위치를 이동합니다.
- 차가 왼쪽 또는 오른쪽으로 이동시 따라서 방향을 회전합니다.
- 마우스의 입력에 영향을 받지 않습니다.
다행히 시네머신에는 위 기능을 바로 구현할 수 있는 카메라가 있습니다.

또한 이 카메라는 레이싱 뿐만 아니라 Temple Run 게임에도 적용할 수 있습니다.
마우스의 입력을 받지 않고 타겟을 추적하는 경우 유용하게 사용할 수 있습니다.
그럼 이제 어떻게 구현하는지 살펴보도록 하겠습니다.
[ 오늘의 작업물 미리보기 ]
📌 구현 방법

가상 카메라를 추가해주세요.
[ Cinemachine ] - [ Targeted Cameras ] - [ Follow Camera ] 선택

생성한 가상 카메라에 다음과 같이 설정합니다.
① PlayerCameraRoot 오브젝트를 끌어 가상 카메라의 Tracking Target 으로 할당합니다.
② Cinemachine Follow 컴포넌트의 Follow Offset Z 값을 -3 으로 설정합니다.
※ 만약 이전에 추가한 가상 카메라가 있다면 Active 을 꺼주세요!
이제 Play 버튼을 눌러 확인해보세요.

자동차가 아닌 사람 모델이긴 하지만 시점은 동일합니다.
왼쪽으로 틀거나 오른쪽으로 틀 때 약간의 카메라 회전이 존재합니다.
이제 가상 카메라를 구성하는 제어 모듈에 대해 살펴보도록 하겠습니다.
📌 Cinemachine Follow 분석

Cinemachine Follow : 카메라의 위치를 타겟에 따라 이동하는 제어 모듈입니다.
Binding Mode 을 설정하여 어떻게 추적할 것인지에 대한 모드를 선택할 수 있습니다.

[ 주요 프로퍼티 ]
① Binding Mode - Lock to taret on assign
- 카메라가 타겟을 향해 이동하지만 회전은 하지 않습니다.
② Binding Mode - Lock to target with world up
- 카메라가 타겟을 향해 이동하며 마우스 입력을 통해 회전합니다.
- 카메라의 Y 값이 고정인 채로 회전합니다.
③ Binding Mode - Lock to target no roll
- 카메라가 타겟을 향해 이동하며 마우스 입력을 통해 회전합니다.
- 롤(Z 축 회전)은 무시합니다.
④ Binding Mode - Lock to target
- 카메라가 타겟을 향해 이동하며 마우스 입력을 통해 회전합니다.
- 완벽한 회전을 제공합니다.
- 회전 댐핑 모드를 선택할 수 있습니다. (Euler & Quaternion)
⑤ Binding Mode - World Space
- 카메라가 대상의 월드 좌표 위치를 따라가지만, 회전은 하지 않습니다.
- 카메라의 Up 벡터와 방향은 월드 좌표에 고정됩니다.
⑥ Binding Mode - Lazy Follow
- 카메라가 타겟을 향해 부드럽게 따라가며, 회전은 하지 않습니다.
- 지연된 반응이 추가되어 자연스러운 이동 연출을 할 수 있습니다.

Cinemachine Follow 컴포넌트는 카메라 위치를 대상에 따라 이동하거나 회전하도록 제어합니다.
하지만 카메라 자체의 회전을 담당하진 않기 때문에 Cinemachine Rotation Composer 제어 모듈을
함께 사용하여 자연스러운 카메라 연출을 구연할 필요가 있습니다.
📌 Cinemachine Rotation Composer 분석

Cinemachine Rotation Composer : 타겟을 따라 카메라를 회전하는 제어 모듈입니다.
이 모듈을 통해 타겟을 향해 바라보거나 특정 영역을 추가하여 보다 정밀한 회전을 제어할 수 있습니다.

[ 주요 프로퍼티 ]
① Screen Position
- .카메라가 타겟을 화면 내에서 어디에 배치할지 설정하는 값
- (0, 0) 은 화면 중앙을 의미
② Dead Zone
- 타겟이 이동해도 카메라가 회전하지 않는 영역을 설정

③ Hard Limits
- 타겟이 아무리 빨라도 화면 밖을 벗어나지 않는 영역을 설정

④ Center On Activate
- 카메라가 활성화될 때 타겟이 즉시 화면 중심에 배치할 지에 대한 여부
⑤ Target Offset
- 타겟으로부터의 X, Y, Z 상대적 거리
- 타겟의 위치를 기준으로 카메라 위치 조정
⑥ Damping
- 카메라가 타겟을 따라갈 때 움직임의 부드러움 설정
- X, Y, Z 축에 따라 설정 가능
⑦ Lookahead
- 타겟의 움직임을 예측하여 카메라가 타겟을 먼저 따라가도록 할지에 대한 여부
- 타겟이 매우 빠르게 움직이는 경우에 유용

위 프로퍼티를 잘 활용한다면 다양한 시네마틱 연출 효과를 보여줄 수 있습니다.
📝 정리
오늘은 시네머신(Cinemachine) 패키지를 활용하여 타겟을 향한 시점을 구현해봤습니다.
Cinemachine의 Follow Camera 은 Cinemachine Rotation Composer 와 Cinemchine Follow
제어 모듈을 사용함을 이해했으며, 모듈들의 프로퍼티가 어떤 역할을 하는지 살펴봤습니다.
'유니티(Unity) > 패키지: Cinemachine 정리' 카테고리의 다른 글
[Cinemachine] RPG 캐릭터 시점 구현 (0) | 2024.12.05 |
---|---|
[Cinemachine] 카메라와 오브젝트 충돌 (0) | 2024.12.04 |
[Cinemachine] 2.5D 구현 (3D 환경에서 2D 구현) (1) | 2024.12.02 |
[Cinemachine] 3인칭 시점 구현 (1) | 2024.12.01 |
[Cinemachine] 시네머신 동작 원리 (2) | 2024.11.30 |