Unity/Tutorial

[Unity] Cinemachine (심화)

SMNNMN 2026. 2. 27. 03:52

Cinemachine에 있는 다양한 기능들을 배울 것이다.

배우지 않은 나머지 기능들 위주로 배울 것이다.

차례

ClearShot Camera

  • Cinemachine Clear Shot 컴포넌트
  • Cinemachine Deoccluder 컴포넌트
  • CCTV 카메라 구현

Dolly Camera with Spline

  • Cinemahcine Spline Dolly 컴포넌트
  • Spline Container 컴포넌트
  • 정해진 트랙 위에 카메라 구현

Dolly Cart with Spline

  • Cinemachine Spline Cart 컴포넌트
  • 플레이어 주위 계속 돌기 구현

Mixing Camera

  • Cinemahcine Mixing Camera 컴포넌트

Sequencer Camera

  • Cinemachine Sequencer Camera 컴포넌트 
  • 자동 시점 변경 구현

State-Driven Camera

  • Cinemachine State Driven Camera 컴포넌트
  • 애니메이션 상태 전환 카메라 구현

2D Camera

  • Cinemachine Position Composer 컴포넌트
  • 2D 시점 카메라 구현

Target Group Camera

  • Cineamchine Group Framing 컴포넌트
  • Cinemachine Target Group 컴포넌트
  • 중요 오브젝트 모두 바라보기 구현

Third Person Aim Camera

  • Cinemachine Third Person Aim 컴포넌트
  • 조준과 조준점 구현

 

 

 

 

 

 

 

 

 

 

ClearShot Camera : 하위 시네머신 카메라중 최적의 카메라로 촬영한다.

https://docs.unity3d.com/Packages/com.unity.cinemachine@3.1/manual/CinemachineClearShot.html

생성시, ClearShot Camera와 자식오브젝트인 CinemachineCamera가 생성된다.

Cinemachine Clear Shot 컴포넌트

Clear Shot

  • Default target : 자식 Cinemachine Camera가 추적 대상을 지정하지 않은 경우, 대체 대상
  • Acitve After : 새 카메라로 전환하기까지 기다리는 시간
  • Min Duration : 우선순위가 더 높은 카메라가 활성화 되지 않는 한, 최소한의 활성화 시간
  • Randomize Choice : Shot Quality가 동일한 카메라가 여러대 존재할 경우, 무작위 카메라 선택
  • Default Blend : 기본 전환 방법
  • Child Cameras : 자식 카메라

Cinemachine Deoccluder : 카메라 시야를 방해하는 오브젝트를 피하는 확장 모듈

  • Collide Against : 장애물로 판단할 레이어
  • Ignore Tag : 해당 태그를 가진 오브젝트는 무시한다.
  • Transparent Layers : 이 레이어를 가진 오브젝트는 절대 장애물로 취급하지 않는다.
  • Minimum Distance From Target : 이 거리보다 가까운 물체는 무시한다.

  • Avoid Obstacles : 장애물에 가려지면 카메라를 움직여서 회피
    • Distance Limit : 장애물 회피를 감지할 최대 거리
    • Minimum Occulsion Time : 장애물을 피할 최소 시간
    • Camera Radius : 장애물과의 유지 거리
    • Use Follow Target : 주시 대상 대신, 추적대상쪽으로 움직인다.
      • Y Offset : 추적대상의 높이 Offset

  • Strategy : 장애물 회피 전략
    • Pull Camera Forward : Z축 방향으로 앞으로 이동시켜, 장애물 앞에 위치
    • Preserve Camera Height : 카메라 높이를 유지하며 위치 이동
    • Preserve Camera Distance : 추적 대상과 거리를 유지하며 이동
  • Maximum Effort : 처리할 장애물 충돌 횟수
  • Smooting Time : 장애물 회피후, 카메라 고정 유지 시간
  • Damping : 장애물이 사라진 후, 카메라가 원래 위치로 돌아가는 속도
  • Damping When Occulded : 장애물을 피하기 위해 움직이는 속도
  • Shot Quality Evaluation : 촬영 품질 평가

  • Optimal Distance : 타겟과 카메라가 이 거리에 있을때, 최대 품질 점수 부여
  • Near Limit : 타겟과의 거리가 Optimal Distnace보다 작아질 경우 감소, 점수를 부여하는 최소 거리
  • Far Limit : 타겟과의 거리가 Optimal Distance보다 커질 경우 감소, 점수를 부여하는 최대 거리
  • Max Quality Boost : Optimal Distance근처에 있을 경우 가할 추가 계수 (0.2 = *1.2)

CCTV 카메라 구현

Clear Camera의 Default Blend 시간을 0으로 하여, 즉시 카메라 전환이 이뤄지도록 한다.

Cinemachine Deoccluder의 Shot Quality Evaluation을 체크하여 플레이어를 가장 잘 볼수 있는 카메라로 전환되게끔 한다.

장애물에 벽 레이어를 추가하고, 장애물 무시에 플레이어 태그를 넣어서, 벽에 가려진 경우를 포함한다.

자식 시네머신 카메라의 설정

ClearShot + Rotation Composer

따라가는 CCTV

Dolly Camera with Spline : 카메라를 트랙위에 고정시켜 움직이게 함

생성시 Spline Dolly + Rotation Composer 시네머신 카메라와

Dolly Spline 오브젝트가 생성된다.

Cinemahcine Spline Dolly 컴포넌트

https://docs.unity3d.com/Packages/com.unity.cinemachine@3.1/manual/CinemachineSplineDolly.html

Spline : 카메라가 움직이는 곡선 트랙

Position : 카메라를 배치할 Spline상의 위치

  • Normalized : 0은 스플라인의 시작, 1은 스플라인의 끝
  • Knot : 0은 스플라인의 첫번째 매듭, 1은 두번째 매듭
  • Distacne : 스플라인을 따라 이동한 거리

Spline Offset : Spline 기준의 한 점으로 부터 카메라의 Offset

Camera Rotation : 카메라 회전 방식

  • Default : Cinemachine Brain 의 World Up 사용
  • Spline : 스플라인의 Up 벡터 사용
  • Spline No Roll : 스플라인의 Up 벡터 사용, Roll 값 0
  • Follow Target : 추적대상의 회전값 사용
  • Follow Target No Roll : 추적대상의 회전값 사용, Roll 값 0

Automatic Dolly : 자동으로 Spline 위 이동

  • None : 자동이동 없음, 카메라 직접 이동 제어
  • Nearest Point To Target : 추적대상과 가장 가까운 Spline 지점으로 이동

  • Position Offset : 가까운 지점에서의 Offset
  • Sarch Resolution : 스플라인위 간격을 계산할 지점 개수
  • Search Iteration : 근사값을 찾을 횟수
  • Fixed Speed : 일정 속도로 계속 이동

  • Speed : 이동 속력
  • Damping : 원하는 지점으로 이동하는 카메라의 속도
  • Position : Offset을 유지하려는 보정 정도
  • Angular : 회전 보간 정도

Spline Container

Closed : 루프 사용

Knot : 트랙의 점 좌표

Data : 추가 정보 저장

Spline 을 수정하기 위해선 Scene화면에서 Spline Edit Mode에 들어가야한다.

Spline Edit Mode

Knot 생성 버튼을 눌러 Spline을 만들어 준다.

Knot 을 만들게 되면 선으로 Linear , Auto , Bezier 을 선택할 수 있다.

직선 경로는 Linear , 일반적인 부드러운 경로는 Auto , 정밀한 조정의 경우 Bezier를 사용한다.

정해진 트랙 위에 카메라

Dolly Cart with Spline

https://docs.unity3d.com/Packages/com.unity.cinemachine@3.1/manual/CinemachineSplineCart.html

생성시, Dolly Spline과 Dolly Cart가 생성된다.

Cinemachine Spline Cart : GameObject의 Transform을 Spline으로 제한하는 컴포넌트

Spline : 따라갈 Spline

Cinemachine Camera 설정, Dolly Cart, Spline

Cinemachine Camera의 Tracking Target에 Dolly Cart를 넣고, Look At Target에 플레이어를 넣으면, 카메라가 Dolly Cart를 따라가면서 플레이어를 쳐다보게된다.

이때 Spline이 이어져있다면 계속해서 움직이게 된다.

플레이어 주위 계속 돌기

Mixing Camera : 하위 시네머신 카메라의 가중 평균을 사용하여 계산한다.

https://docs.unity3d.com/Packages/com.unity.cinemachine@3.1/manual/CinemachineMixingCamera.html

최대 8개의 Cinemachine Camera를 관리한다.

기본으로 자식 cinemachin camera 두개를 가진다.

Cinemahcine Mixing Camera

Child Camera Weights : Cinemachine Camera 의 가중치

Mix Result : 혼합 결과

Sequencer Camera : 시간 순대로 카메라 리스트를 자동으로 실행한다.

https://docs.unity3d.com/Packages/com.unity.cinemachine@3.1/manual/CinemachineSequencerCamera.html

https://docs.unity3d.com/Packages/com.unity.cinemachine@3.1/manual/CinemachineBlending.html

자식 오브젝트에 있는 Cinemachine Camera들을 전환으로 사용한다.

Cinemachine Sequencer Camera

Sequencer

Default Target : 자식 카메라가 추적 대상을 지정하지 않은 경우, 대체 추적 대상

Loop : 마지막 Cinemachine Camera에서 멈추지 않고 무한히 순환

Instructions

Child Camera : 자식 카메라

Blend in : 전환 가속 곡선

  • Cut : 길이 없는 전환
  • Ease In Out : 천천히 전환 시작하고 천천히 전환 끝내기
  • Ease In : 처음엔 빠르고 전환이 끝날수록 감속
  • Ease Out : 처음엔 느리고 전환이 끝날수록 가속
  • Hard In : 이전 카메라에서 천천히 빠져나오다가 다음 카메라로 가속
  • Hard Out : 이전카메라에서 빠르게 빠져나오다가 다음 카메라로 감속
  • Linear : 일정 속도 보간
  • Custom : 커스텀

자동 시점 변경

State-Driven Camera : 애니메이션 상태에 따라 자동으로 카메라를 전환한다.

https://docs.unity3d.com/Packages/com.unity.cinemachine@3.1/manual/CinemachineStateDrivenCamera.html

자식 cinemachine을 가지고 생성된다.

카메라 전환할때, 자식 시네머신 카메라로 전환할 수 있다.

Cinemachine State Driven Camera

State Driven Camera

Default Target : 자식 Cinemachine Camera가 추적 대상을 지정하지 않은 경우, 대체 대상

Default Blend : 특정 전환방법을 지정하지 않았을 때의 기본값

Ainmated Target : Animator Controller를 포함하는 오브젝트, 카메라가 관여할 애니메이터

Layer Index : 관찰할 Animator 레이어

Instruction

State : 카메라가 지정될 상태

Camera : 지정될 카메라

Wait : 상태에 진입한 이후 활성화까지 기다리는 시간 (4초일 경우 2초에서 상태 해제시 활성화X)

Min : 카메라가 활성화 된 이후 최소로 유지되는 시간

애니메이션 상태 전환 카메라

Idle, Walk, Run

2D Camera

Cinemachine Camera + Position Composer과 동일하다.

Cinemachine Position Composer : Tracking Target을 화면 특정 위치에 두도록 한다.

https://docs.unity3d.com/Packages/com.unity.cinemachine@3.1/manual/CinemachinePositionComposer.html

Camera Distance : 추적 대상으로부터 유지하는 거리

Dead Zone Depth : Z축에서의 허용 범위

이하 Rotation Composer 과 동일

2D 시점 카메라

Target Group Camera

https://docs.unity3d.com/Packages/com.unity.cinemachine@3.1/manual/CinemachineTargetGroup.html

생성시 Cinemachine Group Farming을 추가로 가지는 시네머신 카메라와

Cinemachine Target Group을 가지는 Target Group 오브젝트가 생성된다.

Cineamchine Group Framing : 여러타겟을 화면안에 적절한 크기로 맞춰주는 기능

https://docs.unity3d.com/Packages/com.unity.cinemachine@3.1/manual/CinemachineGroupFraming.html

Framing Mode : 프레임 구성시 고려할 축

  • Horizontal : 가로 크기만 고려
  • Vertical : 세로 크기만 고려
  • Horizontal And Vertical : 가로 세로중 더 큰쪽 기준

Framing Size : 화면에서 타겟 그룹이 차지할 비율

Center Offset : 카메라 프레임내 중심 위치 Offset

Damping : 프레임 조정 변화 속도

Size Adjustment : 카메라 속 타겟 크기를 조정하는 방법

  • Zoom Only : 카메라 위치 고정, 시야각 조절
  • Dolly Only : 카메라 이동, 시야각 고정
  • Dolly Then Zoom : 허용된 이동범위내 이동후, 시야각 조정

Lateral Adjustment : 카메라 구도를 조정하는 방법

  • Change Position : 카메라 이동 이동
  • Change Rotation : 카메라 회전 보정

Fov Range : 시야각 제한 범위

Dolly Range : 카메라 이동 거리 제한

Cinemachine Target Group : 여러 오브젝트를 하나의 추적대상으로 처리할 수 있다.

Position Mode : Target Group 의 위치를 계산하는 방법

  • Group Center : 모든 타겟를 감싸는 박스의 중심
  • Group Average : 타겟의 위치 가중 평균

Rotation Mode : Target Group의 회전을 계산하는 방법

  • Manual : Target Group의 Transfrom 회전값 사용
  • Group Average : 타겟의 회전 가중 평균

Targets : 대상 게임 오브젝트 목록

R (Radius) : 크기로 취급하는 반경

W (Weigth) : 평균 계산시 가중치

중요 오브젝트 모두 바라보기

3개의 빨간 오브젝트가 카메라에 나오게끔 설정

Third Person Aim Camera

생성시 Cinemachine Third Person Follw와 Cinemachine Third Person Aim 컴포넌트가 부착된 카메라가 생성된다.

Cinemachine Third Person Aim : 카메라가 향하고 있는 물체를 감지하는 것이 목적이다.

https://docs.unity3d.com/Packages/com.unity.cinemachine@3.1/manual/CinemachineThirdPersonAim.html

Aim Collision Filter : 이 레이어에 있는 객체를 감지한다.

Ignore Tag : 무시할 태그

Aim Distance : 감지하는 거리

Noize Cancellation : 카메라 흔들림이 있어도 조준점은 화면 중앙에 고정

 

조준 타겟 보이게하기

using Unity.Cinemachine;
using UnityEngine;

public class AimTest : MonoBehaviour
{
    public CinemachineThirdPersonAim aim;
    public Transform testObject;
    // Start is called once before the first execution of Update after the MonoBehaviour is created
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        testObject.position = aim.AimTarget;
    }
}

CinemachineThirdPersonAim.AimTarget으로 조준하고 있는 타겟을 알수 있다. 

 

조준과 조준점

벽 레이어를 감지하고, 플레이어 태그를 무시한다.

 

'Unity > Tutorial' 카테고리의 다른 글

[Unity] Canvas (UI 시스템)  (0) 2026.03.01
[Unity] Raycast  (0) 2026.02.28
[Unity] Cinemachine (응용)  (0) 2026.02.25
[Unity] Cinemachine (기초)  (0) 2026.02.24
[Unity] Character Controller (3D)  (0) 2026.02.24