스파르타코딩클럽_Unity개발과정

유니티 심화 개인주차 (1) - 시네머신 기초

ybbro 2025. 6. 4. 11:15

전에 맵 밖으로 나가지 않는 카메라 구현에서 생각했던 것이 있었습니다.

 

'해당 코드가 사각형 맵이라면 잘 동작하지만, 다른 형태의 맵이라면 어떻게 구현해야 하나?'

 

정답은 우리가 직접 구현할 필요가 없었습니다.

좋은 API의 사용법을 공부하고 적재적소에 사용하여 개발 기간을 줄이는 것 또한 좋은 개발자의 덕목!

따라서, 오늘은 유용한 유니티 API를 하나 공부했습니다.

 

게임에서 카메라의 움직임은 게임 화면에 비추어 줄 것을 결정하기에 연출, 플레이에 있어 중요한 사항입니다.

 

그리고 유니티는 현재 유명한 상용 게임 엔진이지요.

이 중요한 기능을 위한 수단을 이미 준비해 두었습니다.

 

1. Cinemachine 패키지 설치

유니티 에디터 상단 Window 메뉴 - Package Manager 로 패키지 매니저 창을 연 다음

아래 스크린샷의 절차를 따라하면 됩니다.

 

2. CinemachineBrain

강의에서는 기본적으로 존재하는 메인 카메라 오브젝트에 해당 컴포넌트를 부착했습니다.

아래는 매뉴얼에 나온 내용 중 번역이 이상한 부분을 수정하여 축약한 것입니다.

가상 카메라가 무엇인지는 다음 항목에서 다룹니다.

 

  • Unity 카메라 자체의 컴포넌트
  • 씬에 있는 액티브 가상 카메라를 모두 모니터링
  • 다음 라이브 가상 카메라를 지정하려면 원하는 가상 카메라의 게임 오브젝트를 활성화 또는 비활성화

        >> 우선순위가 가장 높은 라이브 카메라가 비추는 것으로 변경

        >> 이전 가상 카메라와 새 가상 카메라 간의 컷이나 블렌딩을 수행

팁: 동적 게임 이벤트에 유용

우선 순위 조작을 통해 게임 로직이 카메라를 제어

행동 예측이 때때로 어려운 라이브 게임플레이에 특히 유용

 

컷씬과 같은 예측 가능한 상황에서 타임라인을 사용하여 안무 카메라를 구성

타임라인은 시네머신 브레인 우선 순위 시스템을 오버라이드하여 정확한 프레임별 카메라 제어 기능을 제공

 

 

3. CinemachineVirtualCamera

가상 카메라들 및 이에 필요한 오브젝트들을 모아놓는 하이어라키 구조를 만들었습니다.

Cameras : 그룹을 묶어주기 위한 정리용 빈 오브젝트

1) Priority

이전의 설명에 나와 있던 우선순위입니다.

활성화 된 가상 카메라 중 해당 우선순위가 높은 것을 보여주게 됩니다.

여러 활성화된 가상 카메라들의 우선 순위 값이 동일하며 가장 큰 경우,
가장 마지막으로 활성화 혹은 위치가 바뀐 가상 카메라가 우선 적용됩니다.

 

2) Follow

카메라가 어떤 트랜스폼을 따라다니게 할지 정할 수 있습니다.

 

3) Look At

카메라가 어떤 트랜스폼을 바라보게 할지 정할 수 있습니다.

해당 프로젝트는 2D 탑다운 방식이기에 따로 Look At을 지정할 필요가 없었습니다.

 

4) Lens Ortho Size

카메라 사이즈입니다.

Ortho가 붙은 걸 보니 기존 카메라 설정에 알맞게 2D로 자동으로 잡아준 것으로 보입니다.

카메라 사이즈는 기존 카메라의 사이즈와 동일하게 맞춰 주었습니다.

 

5) Cinemachine Confiner 2D

이제야 제가 서두에 얘기했던 내용이 나옵니다.

Add Extension 의 드롭다운을 통해 선택할 수 있습니다.

2D 카메라의 경계, 콜라이더를 넣어 카메라 이동의 경계를 지정할 수 있습니다.

 

그리고 Virtual Camera Collider 오브젝트에 콜라이더 컴포넌트를 넣고 원하는 형태에 맞춰준 후
가상 카메라 컴포넌트의 Bounding Shape 2D(2D 경계 모양)에 해당 콜라이더를 포함한 오브젝트를 넣어줍니다.

콜라이더 모양

 

생성한 콜라이더와 카메라 사이즈에 따라 자동으로 카메라가 이동 가능한 영역이 표시

 

이후에 패치될지는 모르겠지만 포스팅하는 현재,

만약 콜라이더 형태를 바꿨다면 한번 None으로 바꾼 후 바꾼 콜라이더를 다시 넣어줘야 적용이 됩니다.

 

<< 참고 매뉴얼 >>
https://docs.unity3d.com/kr/Packages/com.unity.cinemachine@2.3/manual/CinemachineOverview.html

 

시네머신 개요 | Cinemachine | 2.3.5-preview.3

시네머신 개요 시네머신을 사용하려면 카메라 작동에 대한 새로운 사고 방식이 필요합니다. 예를 들어 신중하게 스크립트화된 카메라 동작에 이미 많은 투자를 했을 수 있습니다. 하지만 시네

docs.unity3d.com