Cinemachine

Hyeon O·2025년 6월 5일

Unity

목록 보기
2/15

개요

유니티의 카메라 프레임 워크인 시네머신에 대해서 정리한다.

시네머신은 카메라 연출에 필요한 코드와 조정 작업 대부분을 대체할 수 있다.

게임 잘으마다 고유한 카메라 동작을 별다른 스크립트 작성 없이 구현할 수 있다.

이를 잘 다루기 위해, 개념부터 활용까지 한번 정리해보자.

기본 개념

시네머신은 다음과 같이 크게 두 가지로 나뉜다.

  • 브레인 카메라
  • 가상 카메라

브레인 카메라는 시네머신으로 카메라 추적을 구현하기 위한 필수적인 것으로,

게임 월드를 촬영하는 진짜 카메라이며 씬에 하나만 존재한다.

가상 카메라는 브레인 카메라의 분신 역할을 하며, 씬에 여러 개 존재할 수 있다.

브레인 카메라는 여러 가장 카메라 중 하나를 골라 현재 활성화된 카메라로 사용한다.

가상 카메라는 실제 카메라로 동작하지 않는다.

반면, 브레인 카메라를 위한 여러 설정값을 제공한다.

브레인 카메라가 어떤 가상 카메라를 현재 활서와쇤 카메라로 설정하면,

브레인 카메라는 해당 가상 카메라의 위치로 이동하고

해당 가상 카메라의 설정값들을 브레인카메라 자신의 설정값으로 사용한다.

이제 시네머신에 대한 기능, 설정을 좀 더 알아보자.

시네머신의 컴포넌트들

대표적으로 쓰이는 브레인과 가상 카메라를 살펴보자.

시네머신브레인 컴포넌트

시네머신 브레인 컴포넌트의 모습이다. 필드에 대해서 한번 다 짚고 넘어가보자.

  • Live Camera : 현재 활성화된 가상 카메라다. 실행 중에만 표시된다.
  • Live Blend : 현재 어떤 카메라 Blend가 진행 중인지 보여준다.
    • Blend란 두 개의 가상 카메라 전환 시, 메인 카메라의 위치와 회전을 부드럽게 중간 값으로 바꾸는 것을 의미한다.
  • Show Debug Text : 체크 시 디버그 정보를 화면 좌측 상단에 표시한다.
  • Show camera Frustum : 체크 시 씬 뷰에서 카메라의 시야각을 시각적으로 보여준다.
  • Ignore time Scale : 체크 시 Time.time.Scale 값과 관계없이 카메라가 움직인다.
  • World Up Override : 카메라 회전 시 기준이 되는 월드의 Up방향을 오버라이드 할 수 있는 Tranform을 넣는 부분이다. 카메라에게 위가 어디인지 말해주는 나침판 같은 역할을 한다.
  • Update Method : 카메라 위치 계산 메소드를 결정한다. FixdeUpdate, LateUpdate 등 선택지가 있고, SmartUpdate는 Unity가 상황에 맞게 자동으로 설정한다.
  • Blend Update Method : Blend 계산을 어느 시점에서 수행할지 결정한다. 보통 Late Update를 사용한다.
  • Default Blend : 두 가상 카메라 전환 시의 기본 Blend 방식을 결정한다.
    속성설명
    Ease In Out천천히 시작 → 빠르게 → 천천히 끝남 (가장 부드럽고 자연스럽다)
    Cut전환 없음. 그냥 즉시 딱 바뀜
    Hard In시작은 빠르게, 끝날 때 천천히
    Hard Out시작은 천천히, 끝날 때 빠르게
  • Duration(s) : Blend가 진행되는 시간을 설정한다. 위에서는 기본값으로 2로 되어 있다.
  • Custom Blends : 특정 가상 카메라 간 전환에 개별적인 Blend를 설정할 수 있는 Blend asset을 할당하는 곳이다.

시네머신 가상 카메라 컴포넌트

  • Status:Live :현재 이 가상 카메라가 활성 상태인지 여부를 나타낸다. Live면 실제 카메라가 이 가상캠을 사용 중이고, Solo는 SceneView에서 해당 카메라 시점으로 강제로 전환된다. 디버깅 용으로 주로 사용한다.
  • Game Window Guides : 카메라가 대상을 따라가거나 바라볼 때, 기준이되는 프레임 가이드 라인을 표시할지 여부이다. 그냥 항상 체크하면 된다.
  • Save During Play : 체크 시 플레이 모드 중 변경된 값이 그대로 유지된다. 실험적인 조정 값들을 테스트할 때 유용하다.
  • priority : 여러 개의 가상 카메라가 존재할 경우, 우선순위를 설정하는 부분이다. 값이 클수록 우선 순위가 높다.
  • Follow : 카메라가 위치적으로 따라갈 대상을 설정하는 부분이다.
  • LookAt : 카메라가 바라보는 대상이다.
  • Standby Update : 이 가상 카메라가 비활성 상태일 때도, 업데이트를 계속할 지 여부를 설정하는 부분이다. 일반적으로는 Round Robin이 권장된다.
    옵션설명
    Always활성화 여부와 관계없이 항상 업데이트 (비용 ↑)
    Never비활성화되면 업데이트 하지 않음 (성능 ↑)
    Round Robin여러 비활성 VCam 중 일부만 간헐적으로 업데이트 (균형)
  • Lens Ortho Size : 이 값은 Orthographic 카메라에서만 유효한 것으로, 화면에 표시되는 높으의 절반을 의미하며, 값이 클수록 더 넓은 영역을 보여준다.
  • Body : 카메라의 위치 이동 방식을 설정한다.
    옵션설명사용 예시
    Do Nothing카메라 위치 고정. 이동하지 않음고정된 연출, 컷신, 2D 배경 등
    Framing Transposer카메라가 대상이 일정한 화면 위치에 있도록 자동으로 따라감. 2D에 적합2D 플랫포머, 횡스크롤
    Hard Lock to Target카메라가 대상과 완전히 동일한 위치로 이동1인칭 시점, 완전 밀착 추적
    Orbital Transposer대상 주변을 원형으로 회전하며 따라감. Orbit 카메라3D 액션, RPG, RTS
    Tracked Dolly카메라가 지정된 레일 경로(Dolly Track)를 따라 이동레일컷신, 연출 장면
    Transposer대상과의 상대적인 위치를 유지함 (Offset 기반). 3D에 자주 사용3인칭 시점, 드론 느낌
  • Aim : 카메라의 회전을 설정한다.
    옵션설명사용 예시
    Do Nothing회전 안 함. 회전 제어를 외부에서 처리고정 카메라 연출
    ComposerLookAt 대상이 화면의 특정 지점에 오도록 자동 조정시네마틱, 스토리 중심
    Group Composer여러 대상이 화면 내에 모두 보이도록 회전과 줌 자동 조정협동 게임, RTS
    POV (Point of View)카메라를 입력 장치(마우스, 조이스틱)로 직접 회전1인칭/3인칭 자유 시점
    Same As Follow Target카메라 회전을 Follow 대상과 완전히 동일하게 유지FPS, 차량, 1인칭 주행 게임
    Hard Look At대상만 바라보되, 회전의 부드러움 없이 정확한 회전만 적용연출용 빠른 응시
  • Noise : 카메라에 진동 효과를 추가한다. Basic Multi Channel Perlin 사용 시, 진동 강도/속도 등 조절이 가능하다.
  • Extensions : 시네머신 카메라에 다양한 추가 가능을 부착하는 필드이다. 한 11개의 스크립트를 넣을 수 있는데 자주 사용하는 스크립트만 정리하였다.
    확장기능
    Cinemachine Confiner카메라가 특정 Collider 범위 밖으로 나가지 않게 제한
    Cinemachine Collider벽이나 장애물에 가려지지 않게 카메라 위치 자동 조정
    Cinemachine Impulse ListenerImpulse 이벤트를 받아서 카메라에 진동 효과 적용

간단한 시네머신 사용법

플레이어를 추적하는 카메라를 시네머신으로 만들어보자.

1. 시네머신 설치

Window → PackageManager → Cineachne Install

브레인 카메라 설정 및 가상 카메라 만들기

  1. 메인 카메라 : 브레인 카메라 컴포넌트 추가
  1. 가상 카메라 생성
    하이어라키 → 우클릭 → Cinemachine → Virtual Camera
  1. 용도에 따라 카메라 설정하기

사용 용도에 따라 다르지만, 여기서는 추적을 목적으로 하기에

가상 카메라의 컴포넌트 필드에 Follow와 Look AT에 추적할 대상 오브젝트를 할당한다.

profile
천천히, 꾸준하게, 끝까지

0개의 댓글