본문 바로가기
공부/Unity 기초

3D 그래픽 - 7 / 씨네머신

by svcbn 2022. 6. 5.

 

먼저 Package Manager에서 Cinemachine을 설치

 

 

씨네머신은 영화 촬영 현장과 비슷하다.

감독 - Playable Director (컴포넌트)

카메라 - Cinemachine Brain (컴포넌트)

시나리오, 필름 - TimeLine (에셋)

로케이션 - Scene

배우, 소품 - GameObject

 

 

 

 

 

Director 만들기

 

 

 

Timeline 만들어 Director에 포함

 

 

 

 

TimeLine에서 사용할 가상 카메라들을 만들어 배치하고,

페이드 인아웃할 이미지를 만들어 에니메이션으로 녹화한다.

사용 시간이 지나면 비활성화 되도록 처리해 메인카메라를 돌려놓도록 한다.

 

 

 

 

 

 

여러 개의 디렉터를 사용한 타임라인을 사용해야 할 때는 스크립트에서 조절하는 것이 편리할 수 있다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables; // PlayableDirector 를 제어하기 위한 네임스페이스
using Cinemachine;           // CinemachineBrain 을 제어하기 위한 네임스페이스

// 씨네머신을 제어하고싶다.
public class DirectorAction : MonoBehaviour
{
    // 감독 오브젝트
    PlayableDirector pd;

    public Camera targetCam;

    // Start is called before the first frame update
    void Start()
    {
        // Director 오브젝트가 가지고 있는 PlayableDirector 컴포넌트를 가지고 온다.
        pd = GetComponent<PlayableDirector>();

        // 타임라인을 실행한다.
        pd.Play();

    }

    // Update is called once per frame
    void Update()
    {
        // 현재 진행중인 시간이 전체 시간과 크거나 같으면 (재생시간이 다 되면)
        if(pd.time >= pd.duration)
        {
            // 만약 메인카메라가 타겟카메라(씨네머신에 활용하는 카메라) 라면
            if(Camera.main == targetCam)
            {
                // 제어를 위해서 씨네머신 브레인을 비활성화 한다.
                targetCam.GetComponent<CinemachineBrain>().enabled = false;
            }

            // 씨네머신에 사용한 카메라도 비활성화 한다.
            targetCam.gameObject.SetActive(false);

            // Director 자신을 비활성화 한다.
            gameObject.SetActive(false);


        }


    }
}

 

 

 

https://tv.kakao.com/channel/3992018/cliplink/429307818