2025-05-26

유니티 6 으로 업그레이드하면서 공식 적용된 시네머신 3 에 대해 알아보자.
2D 플랫포머 형식의 앙빅 리턴즈 를 끝내고, 3D FPS 형식의 게임을 만들기 위해 공부하다가
Cinemachine 이 기존에 사용하던 것과 많이 바뀐 것 같아
이번 기회에 한 번 알아보려고 한다.
Package Manager 를 통해 Cinemachine 을 받아주자.
| Package Manager | Samples |
|---|---|
![]() | ![]() |
Unity Korea 에서 제공하는 시네머신3 소개 와 공식 문서 1, 공식 문서2 ,
시네머신 패키지에서 제공하는 Samples 를 통해 알아보자.
기존 Cinmeachine 의 Virtual Camera 가 사라지고, Cinemachine Camera 라는 이름으로 바뀌었다.
또한, 기존에 사용되던 명칭이 바뀌어 예전 시네머신 관련 영상을 보며, 기능을 구현하려고 하니
헷갈리거나 사라진 속성이 많았다.
복잡했던 시네머신 설정이
Cinemachine Camera, Cinemachine Component, Cinemachine Extension
3가지로 모듈화 되어 원하는 카메라 세팅을 제작할 수 있다고 한다.
| Cinemachine Camera | Cinemachine Component | Cinmeachine Extension |
|---|---|---|
![]() | ![]() | ![]() |
이제 새롭게 바뀐 카메라들의 이름과 용도를 알아보자.
목표를 추적하거나 바라보는 기본 구조의 카메라들
| 종류 | 용도 | 특징 |
|---|---|---|
| 2D Camera | 2D 게임 전용 | XY 평면 기반의 카메라 추적 |
| Follow Camera | 3D 게임에서 객체를 따라다니는 카메라 | FPS/3인칭에서 기본적으로 사용되는 구조 |
| FreeLook Camera | 3인칭 RPG 스타일 | 주변을 자유롭게 둘러보며 캐릭터를 중심으로 회전 |
| Target Group Camera | 여러 타겟을 동시에 추적할 때 | 플레이어, NPC 등을 TargetGroup 으로 묶고 중심과 범위를 조절 |
| Third Person Aim Camera | 슈팅 게임의 조준 모드 | 어깨 뒤 시점에서 목표를 겨냥하며 카메라 회전, 줌 고정 |
일반 용도의 카메라
| 종류 | 용도 | 특징 |
|---|---|---|
| Cinemachine Camera | 기존 Virtual Camera, 기본 카메라 컴포넌트 | 다양한 컨트롤 모드를 설정해 상황에 맞게 구성 |
| ClearShot Camera | 여러 카메라 중 하나를 자동으로 선택 | 여러 시점이 존재할 때 자동으로 전환 |
| Mixing Camera | 여러 카메라의 뷰를 혼합 (Blend) | 여러 시점을 섞은 자연스러운 카메라 전환 |
짧은 스토리를 보여주는 영화 같은 일련의 샷을 연출하기 위한 카메라
시네머신 3에서는 전문적으로 곡선 데이터를 제작할 수 있는 Spline 패키지가 자동으로 연동되도록 개편.
(시네머신 3 패키지를 받으면 자동으로 Spline 패키지가 설치됨)
| 종류 | 용도 | 특징 |
|---|---|---|
| Dolly Camera with Spline | 레일 따라 움직이는 카메라 | Spline 커브를 따라 움직임 |
| Dolly Cart with Spline | 레일 따라 움직이는 카트에 카메라 | 속도, 위치 제어 가능 |
| Sequencer Camera | Timeline 기반 컷씬 | 특정 이벤트에 따라 활성화/비활성화 가능 |
| State-Driven Camera | Animator 상태에 따라 카메라 전환 |
Cinemachine Brain 의 Update Method, Sequencer Camera 에 대해 알아볼 수 있다.
현재 활성화된 카메라의 위치와 회전을 주기적으로 갱신하는 방법을 Update Method 로 결정한다.
시네머신3 에서 제공하는 Sample Scene 을 통해 Brain Update 모드에 따른 차이점을 살펴볼 수 있다.
Rigidbody는 FixedUpdate 에서 움직이고,
Interpolation 을 사용하면 Unity 가 이전 물리 프레임과 현재 물리 프레임 사이를 보간하여
중간 위치에 있는 것처럼 보여주는 역할을 한다.
Unity 의 모든 Update 가 끝난 뒤 실행.
그러나, Rigidbody 는 앞서 말했듯이 FixedUpdate 에서 움직이므로,
이전 물리 프레임과 현재 물리 프레임 사이의 중간 위치를 모르기 때문에 튀는 듯한 움직임이 보이게 된다.
따라서, 캐릭터의 움직임이 Rigidbody - Interpolation 으로 작동한다면,
Late Update 로 설정해주자.
Unity 의 물리 프레임에 맞춰 일정한 간격으로 실행.
Rigidbody 기반 움직임이 있는 대상은 FixedUpdate 에서 이동하므로,
카메라도 FixedUpdate 에서 움직인다면 정확한 추적이 가능하다.
따라서, 캐릭터의 움직임이 Rigidbody 기반이고, Interpolation 을 따로 설정하지 않았을 때는
Fixed Update 로 설정해주자.
시네머신이 자동으로 최적의 Update Method 를 선택.
추적 대상이 Update 기반인지, FixedUpdate 기반인지 자동으로 분석하여
각각 가장 적절한 타이밍으로 카메라를 업데이트한다.
Smart Update 기법에서 추적 대상을 자연스럽게 전환하기 위해 사용되었다.
| Hierarchy | Sequencer Camera_Inspector | Child Camera_Inspector |
|---|---|---|
![]() | ![]() | ![]() |
| 항목 | 설명 |
|---|---|
| Default Target | Sequencer Camera의 Tracking Target을 자식 카메라들이 상속받도록 설정하는 옵션 (True/False) |
| Loop | 시퀀스의 마지막 카메라까지 도달한 후 다시 처음부터 반복 재생할지 여부 |
| Instructions | 시퀀서가 어떤 자식 카메라를, 언제, 어떻게 활성화할지를 정의하는 섹션 |
| └ Child Camera | 사용할 자식 Cinemachine Camera 선택 |
| └ Blend In | 전환 방식 설정 (예: Ease In Out으로 부드러운 진입/종료) |
Child Cinemachine Camera 설정
Position Control - Follow (대상을 따라가는 위치 기반 추적하는 방식)
| 항목 | 설명 |
|---|---|
| Tracking Target | 예: Red Car, Blue Car 등 대상 오브젝트 |
| Binding Mode | World Space - 월드 좌표계 기준으로 추적 |
| Position Damping | 대상 위치를 따라올 때 카메라 이동의 지연 속도 |
| Follow Offset | 대상과 카메라 사이의 상대 거리 |
Rotation Control - Rotation Composer (대상을 따라 어떻게 회전할지)
| 항목 | 설명 |
|---|---|
| Screen Position | 대상이 화면 내에 유지되길 원하는 위치 (0.5, 0.5는 화면 중앙) |
| Dead Zone | 회전 반응 전에 허용되는 움직임 범위 (On/Off) |
| Hard Limits | 카메라가 따라갈 수 있는 회전 각도 제한 설정 (On/Off) |
| Center On Activate | 카메라가 활성화될 때 자동으로 스크린 중심으로 보정할지 여부 |
| Target Offset | LookAt 대상의 어느 지점을 바라볼지 지정 (예: 머리, 어깨 등) |
| Damping | 회전의 부드러움 조절 |
| Lookahead | 대상의 이동 방향을 예측하여 미리 회전할지 여부 (On/Off) |