[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