Unity Engine

[Unity] Cinemachine - 초기 세팅

Aostols 2022. 12. 19. 09:30
반응형

https://unity.com/unity/features/editor/art-and-design/cinemachine

 

Cinemachine

Learn how Unity's Cinemachine makes complex camerawork – including target tracking, composing, blending, and cutting – easy and intuitive.

unity.com

 

시네머신은 카메라의 다양한 컨트롤을 하기 위해 사용합니다.

이름에서 알수 있듯이 영화쪽에서도 쓸 수 있다고 안내하고 있습니다.

 

초기세팅 및 카메라 전환을 간단히 알아 보겠습니다.

 

설치

시네머신은 기본으로 설치되어 있지 않습니다.

따라서 패키지 매니저에서 선택 해 줍니다.

패키지 종류를 Unity Registry로 선택 해 줍니다.

유니티에서 등록한 패키지들이 표시 됩니다.

리스트상 스크롤을 내리다보면 Cinemachine이 있고 선택해서 우측 하단의 Install버튼을 눌러 설치 해 줍니다.

 

배치

이제 실제로 카메라가 잘 움직이는지 확인해야 하기 때문에 임의의 객체들을 대충 배치해 줍니다.

정말 큰 의미없고 카메라가 잘 전환 되는지 확인용 입니다.

우리가 Cinemachine에서 사용할 것은 CinemachineBrain과 Cinemachine VirtualCamera 입니다.

CinemachineBrain은 이름에서도 알 수 있듯이 여러대의 카메라를 컨트롤 해주는 컨트롤 타워 역할을 해 주는 객체이고

CinemachineVirtualCamera는 실제 카메라 입니다.

다만 Unity에서 말하길 상당히 경량화 되어 있다고 부담없이 쓰라고 합니다.

 

Hierarchy 창에서 우클릭을 하면 객체 추가를 할 수 있는데 리스트 상에서 Cinemachine->Virtucal Camera를 선택 해 줍니다.

전환 되는것을 확실히 봐야 하기 떄문에 2개를 넣어 줍니다.

그리고 아까 배치했던 객체들을 기준으로 배치 합니다.

여기서 CinemachineVirtualCamera 속성을 보게 되면 다양한 것들이 있는데 일단 우리가 지금 알아야 할것은 Look At 속성입니다.

Look At은 말그대로 바라볼 대상으로 아까 설치해 뒀던 객체중 하나를 할당하게 되면 자동으로 카메라가 그 방향으로 틀어지게 됩니다.

양쪽 카메라 모두 같은 처리를 해줍니다.(어떤 객체를 Look At 하건 크게 상관 없습니다.)

 

이제 MainCamera에 가서 CinemachineBrain을 추가 해 줍니다.

추가하게 되면 Live Camera항목에 아까 배치했던 CinemachineVirtucalCamera중 하나로 할당되게 되며 MainCamera가 동기화 됩니다.

이제 본격적으로 MainCamera가 VirtualCamera로 컨트롤 하게 됩니다.

 

스크립트

스크립트는 온전히 단순한 테스트 용이며 어떠한 연결성도 없기 때문에 임의의 빈 객체를 하나 만들고 거기에 넣어 줍니다.

    [SerializeField] private List<CinemachineVirtualCamera> _cameras;
    
    private uint cameraIdx = 0;

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            ToggleCamera();
        }
    }

    private void ToggleCamera()
    {
        if (cameraIdx == 0)
        {
            _cameras[0].gameObject.SetActive(false);
            _cameras[1].gameObject.SetActive(true);
            cameraIdx = 1;
        }
        else
        {
            _cameras[0].gameObject.SetActive(true);
            _cameras[1].gameObject.SetActive(false);
            cameraIdx = 0;
        }
    }

List에 카메라 목록을 다 받고 Update에서 Space키가 눌리면 카메라 객체들의 Active를 토글하게 됩니다.

그리고 Inspector상에 가서 리스트 객체를 2개 만들어 주고 아까 생성했던 VirtualCamera를 모두 할당 해 줍니다.

결과

 

일단은! 동작하는 것을 확인 할 수 있습니다.

카메라간 자연스럽게 블렌딩 되고 누를떄 마다 전환되고 있습니다.

지금 까지 Cinemachine의 기본을 살펴 보았고 차후에 더 자세한 내용을 올리도록 하겠습니다.

반응형