https://unity.com/kr/unity/features/editor/art-and-design/cinemachine
Cinemachine
Cinemachine은 특별한 스크립트없이 다양한 카메라 동작을 수행할 수 있도록 해주는 기능입니다.
3D에서 더 유용하게 사용할 수 있지만 2D에서 유용하게 사용할 수 있는 카메라 전환을 중심으로 간단하게 정리하였습니다.
Package 설치
[Window > Package Manager]를 선택합니다.
[Packages]를 [Unity Registry]로 설정합니다.
[Cinemachine]을 검색하여 설치합니다.
기본 설정
CinemachineBrain
Cinemachine을 사용할 Scene의 메인 Camera에 [CinemachineBrain Component]를 추가합니다.
CinemachineBrain Component는 Cinemachine을 사용하는데 중심이 되는 Component입니다.
Virtual Camera
[Cinemachine > 2D Camera]를 선택하여 2D전용 Virtual Camera 오브젝트를 생성합니다.
Priority | 가장 먼저 활성화될 카메라 우선 순위를 결정하는 값으로 활성화되는 카메라를 결정합니다. 숫자가 클수록 우선 순위가 높습니다. |
Follow | 카메라가 따라갈 오브젝트의 Transform 위치입니다. (null일 경우 움직이지 않으며 부모 오브젝트가 움직여도 움직이지 않습니다.) |
Look At | 카메라가 바라볼 오브젝트의 Transform 방향입니다. |
Lens Ortho Size | 카메라의 Camera Component에 적용할 Size 값입니다. |
Body | 카메라가 어떤 식으로 움직일지 정의합니다. |
Aim | 카메라가 어떤 식으로 바라볼지 정의합니다. |
Virtual Camera를 생성하면 다음과 같이 Camera와 비슷하게 촬영 영역이 보이게 됩니다.
다음과 같이 여러 Virtual Camera로 Scene을 구성합니다.
이때 Virtual Camera의 z 좌표값이 0인 경우 화면에 제대로 표시되지 않을 수 있으므로 보통 메인 Camera와 같은 -10으로 설정합니다.
이 상태에서 실행하면 메인 Camera가 우선 순위가 가장 높은 Virtual Camea의 화면을 비추게 됩니다.
카메라 컨트롤
CinemachineStateDrivenCamera
[Cinemachine > State-Driven Camera]를 선택하여 State-Driven Camera 오브젝트를 생성하고 [Animator Component]를 추가한 후 [Animated Target]에 해당 Component를 추가합니다.
State-Drive Camera는 Animator의 State에 따라서 카메라의 상태를 결정하는 카메라 컨트롤러입니다.
이 State-Driven Camera를 중점적으로 사용하기 위해서 가장 높은 Priority 값을 부여합니다.
다음과 같이 State-Driven Camera의 자식 오브젝트로 Virtual Camera를 추가하면
다음과 같이 [Virtual Camera Children]에 Virtual Camera가 자동으로 추가된 것을 확인할 수 있습니다.
Animator에 적용할 [Animator Controller]를 생성하여 구성합니다.
이때 Animtion Clip은 따로 생성하지 않아도 되며 State만 생성해서 구성해도 됩니다.
[CinemachineStateDrivenCamera Component]에서 위 항목을 찾아 [+]를 클릭하여 [All Unhandled States]를 선택합니다.
다음과 같이 추가된 State에 각각 활성화할 Virtual Camera를 선택합니다.
실행하면 다음과 같이 Animator의 State에 따라 카메라가 전환되는 것을 확인할 수 있습니다.