본문 바로가기
프로그래밍/게임 개발

게임 개발 「 추천 편」시네머신과 타임라인의 결합으로 컷신 만들기

by grapedoukan 2024. 1. 18.
728x90

시네머신과 타임라인을 별도로 사용하는 방법을 살펴보았습니다. 이제 우리는 컷신을 만들기 위해 그들의 사용을 결합할 것입니다.

Mixamo에 가서 플레이어를 위한 말하는 애니메이션을 다운로드했습니다. 이를 준비하기 위해 릭(Rig) 으로, 애니메이션 타입(Animation Type) 을 휴머노이드(Humanoid) 로 설정했습니다.

말하는 애니메이션 임포트 세팅.

그런 다음 실제 애니메이션을 복제하고 이름을 Talking_anim로 바꿨습니다.

Ctrl + D는 Unity에서 항목/개체를 복제하는 단축키입니다.

며칠 동안 머리를 쥐어뜯다가 블렌드 리스트를 사용하여 샷 사이에 애니메이션을 적용할 수 있다는 것을 깨달았습니다!

먼저, 메인 카메라가 드롭된 시네머신 트랙을 추가했습니다. 그런 다음 해당 트랙에 Blend List Camera 를 추가했습니다.

블렌드 리스트에 7개의 가상 카메라가 있습니다: 1)돌리 시작 2)돌리 끝 3)플레이어 오버 더 숄더(OTS) 시작 4)플레이어 오버 더 숄더(OTS) 종료 5)NPC-오버 더 숄더 시작 6)NPC-오버 더 숄더 끝 7)NPC-클로즈업.

트랜지션을 설정하기 위해, 저는 컷신이 어떻게 재생되기를 원하는지에 따라 가상 카메라를 구성했습니다.

그런 다음 계층구조(Hierarchy) 에서 각 카메라를 선택하고 씬 뷰(Scene View) 뷰포트를 원하는 위치로 설정한 후 게임 오브젝트(GameObject) 드롭다운 메뉴를 사용하여 뷰에 정렬(Align with View) 을 선택했습니다. 또 다른 방법은 Ctrl + Shift + F를 누르는 것입니다.

돌리 비긴.

돌리 엔드.

플레이어 오버 더 숄더(OTS)가 시작됩니다.

플레이어 오버 더 숄더(OTS) 엔드.

NPC-어깨 너머로 시작.

NPC-어깨 너머로.

NPC-클로즈업.

컷신이 제가 원하는 느낌을 줄 때까지 이러한 블렌드 또는 전환을 조정했습니다. 다소 느리고 신중합니다.

플레이어의 경우, 타임라인에 애니메이션 트랙을 추가하고 Talking2 애니메이션을 추가하여 플레이어가 컷씬 도중 움직이지 않도록 했습니다.

그리고 NPC의 경우 애니메이션 트랙을 추가하고 이전에 다운로드하여 준비한 말하는 애니메이션을 사용했습니다.

트리거의 경우 큐브를 만들고 MeshRenderer 컴포넌트를 끄고 BoxCollider는 활성 상태로 두었습니다. Is Trigger(트리거 표시) 옵션을 true로 설정했습니다.

트리거 만들기.

컷신을 플레이할 때마다 플레이어와 NPC의 위치가 바뀌는 것을 발견했습니다. 이 문제를 해결하기 위해 타임라인 내에서 애니메이션을 선택했습니다.

타임라인 내에서 애니메이션을 선택합니다.

그런 다음 인스펙터 내에서 오프셋을 조정합니다.

플레이어의 Talking2 애니메이션에 사용됩니다.

NPC의 말하는 애니메이션용.

이렇게 하면 애니메이션이 재생될 때 플레이어는 일정한 위치에 있고 NPC는 플레이어를 계속 향하고 있습니다.

Cutscene2_trigger 스크립트의 경우 스크립트에서 타임라인을 제어하려면 Using UnityEngine.Playables를 추가해야 합니다. 그런 다음 시간의 Serialized 변수를 PlayableDirector로 만들 수 있습니다. 이 변수의 이름을 _director. Unity의 Inspector에서 director에 대한 참조를 완료합니다.

다음으로 필요한 것은 트리거와 충돌한 다른 트리거에 Player 태그가 지정되었는지 확인하는 OnTriggerEnter 메서드입니다.

다른 한 명에게 "플레이어"라는 태그가 붙어 있으면 감독을 연기합니다. 16.0초 후에 메서드를 호출하는 코드 줄이 있습니다.

호출된 메서드는 TurnOffCollider라고 하며 이 함수입니다. 콜라이더가 활성 상태일 때 트리거 영역에 두 번째로 들어가면 컷신이 다시 재생됩니다.

Unity로 들어가 느슨한 끝을 묶어 보겠습니다.

트리거에서 디렉터/타임라인을 드래그하려고 합니다.

Director/타임라인에서 Play On Awake 를 false로 설정하려고 합니다.

그리고 플레이어에 "플레이어"라는 태그가 지정되어 있는지 확인해야 합니다.

컷신을 살펴보겠습니다.

시네머신과 타임라인을 결합하여 컷신을 만듭니다.

이것으로 궁극의 제어를 위한 시네머신과 타임라인의 결합을 마칩니다. 한계는 없습니다!

728x90