![](https://blog.kakaocdn.net/dn/C7CIN/btrLbLQsDod/RZc93jc0nptNH0FxBdXKgk/img.png)
https://unity.com/kr/unity/features/editor/art-and-design/cinemachine
시네머신
Unity의 시네머신으로 복잡한 카메라의 움직임을 만드는 방법을 알아보세요. 타겟 트래킹, 구성, 블렌딩 및 자르기까지 쉽고 직관적으로 작업할 수 있습니다.
unity.com
Cinemachine
Cinemachine은 특별한 스크립트없이 다양한 카메라 동작을 수행할 수 있도록 해주는 기능입니다.
3D에서 더 유용하게 사용할 수 있지만 2D에서 유용하게 사용할 수 있는 카메라 전환을 중심으로 간단하게 정리하였습니다.
Package 설치
![](https://blog.kakaocdn.net/dn/8p7Rc/btrLchIpebY/jUfnTaEuLPkMehqthSU5t0/img.png)
[Window > Package Manager]를 선택합니다.
![](https://blog.kakaocdn.net/dn/Wg272/btrLaelIQO5/0yVkH9TTYX27rxWfrTZ0T1/img.png)
[Packages]를 [Unity Registry]로 설정합니다.
![](https://blog.kakaocdn.net/dn/bVy15J/btrK94Q4z3t/zKlRqvcrgj8R05lDm8CLbk/img.png)
[Cinemachine]을 검색하여 설치합니다.
기본 설정
CinemachineBrain
![](https://blog.kakaocdn.net/dn/tTG6o/btrNv8KiCwW/4dcXPeymdpeY8bWUWKKEe0/img.png)
Cinemachine을 사용할 Scene의 메인 Camera에 [CinemachineBrain Component]를 추가합니다.
CinemachineBrain Component는 Cinemachine을 사용하는데 중심이 되는 Component입니다.
Virtual Camera
![](https://blog.kakaocdn.net/dn/bAdVoR/btrNxaOaneV/6DHOKfFK8oxC5YpQ1AgTEk/img.png)
[Cinemachine > 2D Camera]를 선택하여 2D전용 Virtual Camera 오브젝트를 생성합니다.
![](https://blog.kakaocdn.net/dn/cw9Buh/btrNv84D9UN/cRm1vgpjGyePgfRr8VfTr0/img.png)
Priority | 가장 먼저 활성화될 카메라 우선 순위를 결정하는 값으로 활성화되는 카메라를 결정합니다. 숫자가 클수록 우선 순위가 높습니다. |
Follow | 카메라가 따라갈 오브젝트의 Transform 위치입니다. (null일 경우 움직이지 않으며 부모 오브젝트가 움직여도 움직이지 않습니다.) |
Look At | 카메라가 바라볼 오브젝트의 Transform 방향입니다. |
Lens Ortho Size | 카메라의 Camera Component에 적용할 Size 값입니다. |
Body | 카메라가 어떤 식으로 움직일지 정의합니다. |
Aim | 카메라가 어떤 식으로 바라볼지 정의합니다. |
![](https://blog.kakaocdn.net/dn/Rfa29/btrNvMHsvsI/2bEJVFj4QluGMkJcBDzD70/img.png)
Virtual Camera를 생성하면 다음과 같이 Camera와 비슷하게 촬영 영역이 보이게 됩니다.
![](https://blog.kakaocdn.net/dn/A5WZq/btrNyEVMZPr/5DnWoudRBKxGpUu5Nf6k70/img.png)
다음과 같이 여러 Virtual Camera로 Scene을 구성합니다.
이때 Virtual Camera의 z 좌표값이 0인 경우 화면에 제대로 표시되지 않을 수 있으므로 보통 메인 Camera와 같은 -10으로 설정합니다.
![](https://blog.kakaocdn.net/dn/rJj6K/btrNyGe1xI5/6gKJMaa8Ap0QpHWabZrRd0/img.png)
이 상태에서 실행하면 메인 Camera가 우선 순위가 가장 높은 Virtual Camea의 화면을 비추게 됩니다.
카메라 컨트롤
CinemachineStateDrivenCamera
![](https://blog.kakaocdn.net/dn/Axfel/btrNvOk398j/mkDzec0FDAkI6N45crIJK0/img.png)
[Cinemachine > State-Driven Camera]를 선택하여 State-Driven Camera 오브젝트를 생성하고 [Animator Component]를 추가한 후 [Animated Target]에 해당 Component를 추가합니다.
State-Drive Camera는 Animator의 State에 따라서 카메라의 상태를 결정하는 카메라 컨트롤러입니다.
![](https://blog.kakaocdn.net/dn/qcy5d/btrNwCRKFrF/H9bEWfMMq8wht3ZLBwyW51/img.png)
이 State-Driven Camera를 중점적으로 사용하기 위해서 가장 높은 Priority 값을 부여합니다.
![](https://blog.kakaocdn.net/dn/b8qmzs/btrNvyCPUS8/9xxefv2vGuDG85vK4APsu1/img.png)
다음과 같이 State-Driven Camera의 자식 오브젝트로 Virtual Camera를 추가하면
![](https://blog.kakaocdn.net/dn/cxGSMX/btrNxbfiYLj/qwW2akslrZix9cpDXJWOe0/img.png)
다음과 같이 [Virtual Camera Children]에 Virtual Camera가 자동으로 추가된 것을 확인할 수 있습니다.
![](https://blog.kakaocdn.net/dn/bpFZZF/btrNvjso8eD/ZgQkDl0hrGgrYFKB73sm1K/img.png)
Animator에 적용할 [Animator Controller]를 생성하여 구성합니다.
이때 Animtion Clip은 따로 생성하지 않아도 되며 State만 생성해서 구성해도 됩니다.
![](https://blog.kakaocdn.net/dn/ccPB0u/btrNzJiivJ2/0fgIEMdKQGsxfKOmXEQAUk/img.png)
[CinemachineStateDrivenCamera Component]에서 위 항목을 찾아 [+]를 클릭하여 [All Unhandled States]를 선택합니다.
![](https://blog.kakaocdn.net/dn/FZrtk/btrNvOFoDgQ/Vcb3OFxJ4ltDUmjv0fKm3k/img.png)
다음과 같이 추가된 State에 각각 활성화할 Virtual Camera를 선택합니다.
![](https://blog.kakaocdn.net/dn/bcgZoT/btrNvw53Omy/nS2IGIaASxqQt14vdeaAF1/img.gif)
실행하면 다음과 같이 Animator의 State에 따라 카메라가 전환되는 것을 확인할 수 있습니다.