[C#, 유니티] Unity3D_RPG 타임라인 & 게임연출 (Cinematic Studio)
2022. 9. 2. 17:24ㆍ코딩 2막 <C#개념편>
728x90
타임라인
타임라인이란 게임씬의 간단한 연결성과 시각적 효과를 위한 게임적 시퀀스를 만드는 툴이다
시간의 흐름에 따라 게임씬의 오브젝트들을 재구성하는 것
마치 동영상을 편집하는 툴이 유니티에서도 구현된다고 생각하면 되겠다
타임라인을 쓰려면 우선 패키지매니저에서 시네마틱 스튜디오라는 것을 다운로드해야한다
다운로드한 타임라인을 이제 다뤄보도록 하자!!
우선 빈 오브젝트를 만들고 <TimelineManager>로 지정하여 타임라인을 관리하도록 하자
다양한 트랙을 써서 시각적인 연출이 가능하다
타임라인의 Track의 종류는 다양한데 오늘 다뤄볼 track을 소개하자면
activation, animation, audio, control, signal, playable 그리고 cinemachine track등이 있다
이름 | 설명 |
시그널 트랙 | 시간의 흐름동안 위치에 이벤트 추가 |
컨트롤 트랙 | 시간의 흐름동안 파티클 효과 추가 |
오디오 트랙 | 시간의 흐름동안 오디오소스 추가 |
애니메이션 트랙 | 시간의 흐름동안 애니메이션 추가 |
트랙 그룹 | 트랙들을 그룹화하여 관리 |
시네머신 트랙 | 메인카메라 본체는 한대이고 브레인을 통해서 시네머신들이 당겨져 다양한 카메라 연출 추가 |
추가적으로 시네머신 중 달리트랙(DollyTrack)을 쓰게 되면 정해진 경로를 따라 카메라가 타겟을 따라다니며 연출이 가능한데,
게임씬에서 원하는 타이밍 혹은 상황에서 적시적소 연출을 할 수 있다는 장점이 있다
스크립트
1. TimelineManager.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
using Cinemachine;
[RequireComponent (typeof(PlayableDirector))]
public class TimelineManager : Singleton<TimelineManager>
{
private PlayableDirector director;
// 게임씬에서 여러 상황들을 고려하여 다양한 타임라인으로 연출하여 받도록 리스트로 timelines를 구현한다
[SerializeField]
private List<TimelineAsset> timelines;
[SerializeField]
private CinemachineFreeLook playerCinemachine;
private void Awake()
{
director = GetComponent<PlayableDirector>();
}
public void PlayTimeline(TimelineAsset asset)
{
playerCinemachine.enabled = false;
director.playableAsset = asset;
director.Play();
}
public void OnPlayEnd()
{
playerCinemachine.enabled = true;
Debug.Log("연출이 끝났습니다");
}
}
|
cs |
공감해주셔서 감사합니다
728x90
'코딩 2막 <C#개념편>' 카테고리의 다른 글
[C#, 유니티] 클래스 다이어그램 <UML> (0) | 2022.09.26 |
---|---|
[C#, 유니티] Unity_Git (버전 관리 시스템) (0) | 2022.09.05 |
[C#, 유니티] Unity3D_RPG 몬스터 (타입 & 제네릭 상태패턴) (2) | 2022.09.01 |
[C#, 유니티] Unity3D_RPG 몬스터 (FSM, ViewDector) (0) | 2022.08.31 |
[C#, 유니티] Unity3D_RPG ScriptableObject (Conversation) (0) | 2022.08.26 |