Unity 시네머신 및 타임라인 튜토리얼

Cinemachine은 개발자에게 전문적인 카메라 제어 기능을 제공하고 영화 같은 컷씬 제작 기능을 향상시키는 Unity용 패키지입니다.

이 튜토리얼에서는 다음 주제를 다룹니다.

  • 시네머신 설치
  • 3인칭 카메라 설정
  • 타임라인 컷씬 생성

시네머신 설치

Cinemachine을 설치하려면 다음 단계를 따르십시오.

  • Unity에서 창 -> 패키지 관리자로 이동합니다.

Unity 패키지 관리자 메뉴

  • 패키지를 "Unity 레지스트리"로 변경

Unity 패키지 관리자 레지스트리

  • 목록에서 "Cinemachine"를 선택한 다음 클릭하세요. "Install"

이제 시네머신을 사용할 준비가 되었습니다.

3인칭 카메라 설정

아래에서는 Cinemachine의 가상 카메라를 사용하여 3인칭 카메라를 설정하는 방법을 보여 드리겠습니다.

가상 카메라는 Unity 카메라의 경량 버전으로, 자체적으로 렌더링되지 않고 단지 기본 카메라의 참조점으로 사용됩니다.

이 튜토리얼의 예로 3인칭 컨트롤러를 사용하겠습니다. 단, 카메라 충돌을 설정하지 않고 플레이어 계층 내에서 카메라를 이동하지 않습니다.

Sharp Coder 비디오 플레이어

보시다시피 플레이어는 움직이지만 카메라는 따라오지 않습니다.

Cinemachine을 사용하여 3인칭 카메라를 설정하는 것은 정말 쉽습니다.

  • GameObject -> Cinemachine -> Virtual Camera로 이동하여 새 가상 카메라를 만듭니다.

시네머신이 가상 카메라를 생성합니다.

  • 가상 카메라 이름 지정 "TPS Camera"
  • TPS 카메라를 선택하고 CinemachineVirtualCamera에서 Follow 변수를 할당합니다(제 경우에는 "CameraParent" 개체가 됩니다. 이 개체는 플레이어 계층 구조 내부에 위치하며 수직 보기 회전을 나타냅니다).
  • 본문 값을 다음으로 설정합니다. "3rd Person Follow"
  • 태그 무시를 "Player"으로 설정하고 플레이어 루트 개체를 선택하고 해당 태그를 "Player"으로 설정합니다(플레이어 계층 구조에 하위 충돌체가 있는 경우 해당 태그도 "Player"으로 변경해야 합니다).
  • 결과에 만족할 때까지 CinemachineVirtualCamera에서 카메라 거리, 카메라 측면, 숄더 오프셋 및 댐핑과 같은 다른 값을 조정합니다.
  • CameraParent의 목표 값을 다음으로 설정합니다. "Do nothing"

CinemachineVirtualCamera 구성 요소 값

이제 카메라가 플레이어를 따라가야 합니다.

Sharp Coder 비디오 플레이어

타임라인 컷씬 생성

여기서는 Unity's 타임라인을 사용하여 컷씬을 구성하는 방법을 보여 드리겠습니다.

타임라인은 개발자가 카메라에 애니메이션을 적용하고 기존 애니메이션(예: 캐릭터 걷기)을 사용하여 컷씬을 구성하고 이벤트와 신호를 순차적으로 배열할 수 있는 내장 편집기입니다.

Cinemachine 패키지는 타임라인 편집기에 가상 카메라 간 전환 기능과 같은 몇 가지 추가 옵션을 추가합니다.

컷씬을 만들려면 아래 단계를 따르세요.

  • 새로운 GameObject를 생성하고 호출합니다. "TimelineManager"
  • Window -> Sequencing -> Timeline으로 이동하여 타임라인 창을 엽니다.

Unity 윈도우 시퀀싱 타임라인 메뉴

  • "TimelineManager" 개체를 선택하고 타임라인 창에 Director 구성 요소 및 타임라인 자산을 생성하는 옵션이 표시되면 클릭합니다.

시네머신이 Director 구성 요소와 타임라인 자산을 생성합니다.

  • Director 구성 요소와 타임라인 자산을 생성한 후에는 빈 타임라인 창이 표시되어야 합니다(편집할 수 있도록 TimelineManager 개체가 선택되어 있는지 확인).

시네머신 타임라인 창

  • 이제 창을 마우스 오른쪽 버튼으로 클릭하여 타임라인에 구성 요소를 추가할 수 있습니다.

타임라인 구성요소 만들기

보시다시피 타임라인 창에는 다양한 옵션이 있습니다.

  • 트랙 그룹 - 타임라인 작업을 포함할 수 있고 구성하는 데 유용한 그룹입니다.
  • 활성화 트랙 - 설정된 기간 동안에만 활성화되어야 하는 개체를 정의합니다.
  • 애니메이션 트랙 - 설정된 기간 동안 특정 애니메이션을 재생합니다.
  • 오디오 트랙 - 설정된 기간 동안 특정 오디오를 재생합니다.
  • Control Track - 클립이 GameObject의 시간 관련 요소를 제어하는 ​​트랙입니다.
  • 신호 트랙 - 특정 시간에 특정 게임 개체에 대해 다양한 작업을 수행할 수 있습니다(예: 플레이어 이동 스크립트 활성화 또는 타임라인이 특정 프레임에 도달하면 특정 기능 호출 등).
  • 재생 가능한 트랙 - 클립이 사용자 정의 재생 가능한 트랙입니다.
  • 시네머신 트랙 - 여러 시네머신 가상 카메라를 혼합할 수 있습니다.

이 튜토리얼에서는 Animation TrackSignal Track만 사용하겠습니다.

설정

  • 다른 가상 카메라를 만들고 이름을 "CutsceneCamera"으로 지정하고 "Priority" 값을 "TPS Camera"보다 한 수준 높은 값으로 설정합니다(예: 11).
  • 프로젝트 보기에서 마우스 오른쪽 버튼 클릭 -> 생성 -> 신호를 지정하고 이름을 지정합니다. "DisablePlayer"

Unity 타임라인 신호 생성

  • "DisablePlayer" 신호를 복제하고 이름을 다음으로 바꿉니다. "EnablePlayer"

Unity 타임라인 신호 자산

  • 장면에 새 GameObject를 만들고 이름을 지정합니다. "SignalReceiver"
  • SignalReceiver 구성요소를 "SignalReceiver" 객체에 연결
  • "Add Reaction"을 2번 클릭하세요
  • 첫 번째 반응에 "DisablePlayer"를 할당하고 두 번째 반응에 "EnablePlayer"을 할당합니다.

Unity 타임라인 신호 추가 반응

"DisablePlayer" 컷씬 카메라를 활성화하고 플레이어 카메라와 플레이어 제어 스크립트를 비활성화하며 타임라인 시작 부분에 배치됩니다.

"EnablePlayer" 컷씬 카메라를 비활성화하고 플레이어 카메라와 플레이어 제어 스크립트를 활성화하며 타임라인 끝에 배치됩니다.

  • (+)를 클릭하여 반응 슬롯을 추가한 다음 활성화/비활성화해야 하는 스크립트 또는 구성 요소가 있는 개체를 할당합니다.

팁: 반대 신호를 생성하려면 "DisablePlayer"에 대한 반응을 설정한 다음 기어 아이콘 -> 복제를 클릭하고 신호를 "EnablePlayer"로 변경하고 확인란을 반전하면 됩니다.

Unity 중복 신호

Unity 타임라인 신호 반응 설정

  • "TimelineManager" 개체를 선택한 다음 타임라인 창에서 마우스 오른쪽 버튼을 클릭하고 신호 트랙을 클릭하여 새 신호 트랙을 추가한 다음 "SignalReceiver" 개체를 할당합니다.
  • 타임라인 시작 부분에 "DisablePlayer" 신호 자산을 드래그 앤 드롭하고 컷씬을 종료하려는 프레임에 "EnablePlayer"을 드래그 앤 드롭합니다.

Unity 타임라인 신호 미리보기

이렇게 하면 플레이어 컨트롤러 스크립트와 카메라가 처음에 비활성화되고 타임라인이 끝나면 다시 활성화됩니다.

마지막으로 간단한 카메라 애니메이션을 만들어 보겠습니다.

  • 타임라인 -> 애니메이션 트랙을 마우스 오른쪽 버튼으로 클릭한 다음 "CutsceneCamera"을 할당합니다(아무것도 없는 경우 개체에 애니메이터 구성 요소를 추가하라는 메시지가 표시됩니다).
  • 녹음버튼을 클릭하세요

Unity 타임라인 애니메이션 클립 기록

  • "CutsceneCamera"을 살짝 움직여 키프레임을 적용한 후 타임라인 프레임 핸들을 끝으로 이동하고, 마지막으로 카메라를 새 위치로 이동한 후 녹화 중지를 클릭합니다.

Unity 시네머신 컷씬 타임라인

재생을 누르고 결과를 살펴보겠습니다.

Sharp Coder 비디오 플레이어

컷신은 게임이 시작될 때 재생됩니다.

추천 기사
Unity의 2D 및 3D 개발 환경 비교
Unity용 게임패드 튜토리얼
Unity 스크립팅 API 및 Unity Pro
Unity에서 지형에 나무를 그리는 방법
Unity로 애니메이션을 가져오는 방법
Unity 환경에 적합한 Skybox 선택
불법 복제로부터 Unity 게임을 보호하기 위한 전략