TimeLine
유니티 상에서 카메라 제어와 효과를 사용해 연출 기법을 다뤄봤다면 이를 정해진 시간과 플로우에 원하는 장면을 연출할 수 있도록 하는 것이 타임라인이다.
TimeLine
타임라인은 Window 탭의 Sequencing - Timeline을 통해 신규 탭을 생성할 수 있다. 여기에 타임라인을 생성하기 위해서는 하이어라키 상에서 오브젝트를 선택할 필요가 있기에 먼저 빈 오브젝트를 하나 생성한 뒤, 해당 오브젝트에서 타임라인을 생성한다.
타임라인을 새롭게 생성할 경우 왼쪽에 다양한 track을 추가할 수 있는 tracklist가 있으며, 위 사진은 tracklist에 Cinemachine track과 Animation track, Signal track 추가한 상태이다.
각 track에는 속성에 맞는 오브젝트나 animator등을 드래그로 넣을 수 있고, 이를 원하는 프레임에 위치시켜 자연스러운 연출을 할 수 있다.
Animation Track
애니메이션 트랙은 특정 오브젝트의 애니메이션을 재생시키는 역할을 하는데, 중요한 것은 Track Offsets이다. 해당 옵션을 Apply Scene Offsets
으로 설정해야 기존 위치에서 애니메이션을 재생한다.
Signal Track
시그널 트랙은 시그널을 설정하여 해당 시그널에 반응할 메서드를 등록하여 마치 이벤트처럼 활용할 수 있다. 예를 들어 타임라인 맨 앞에 생성한 시그널에는 PlayerController
를 비활성화하도록 하여 플레이어가 컷씬 중에 이동할 수 없도록 설정하고, 타임라인 마지막에 생성한 시그널에는 다시 활성화하여 움직일 수 있도록 구현하는 것이 가능하다.
Playable Director
타임라인을 생성한 오브젝트를 선택하면 인스펙터 창에 Playable Director가 추가된 것을 확인할 수 있는데 Timeline에서 생성한 track이 Bindings에 업데이트된 것을 확인할 수 있다.
Render Pipeline
게임 내에서 봤던 3D 환경이 어떤 과정을 거쳐서 평면의 모니터 상으로 나타나게 되는지에 대해 알아보자. 렌더 파이프라인은 컴퓨터가 가상 공간에 놓인 물체를 모니터에 표현하는 과정을 의미하며, 대표적 API로 DirectX와 OpenGL이 있고 5단계 파이프라인을 표준으로 사용하고 있다.
Pipeline Order
Input Assembler
3D 장면의 정보를 cpu가 GPU에게 전달하여 이를 기본 도형으로 조립하는 단계
Vertex Shader
정점 데이터의 공간 변환 수행, 3D 공간 상의 정점의 위치를 클립 공간으로 옮기는 단계
Rasterizer
정점 데이터의 프래그먼트를 구성하고 화면에 출력할 픽셀을 구성하는 단계. 프로그래밍이 불가능한 고정 파이프라인 단계로 그래픽 하드웨어의 자체 알고리즘으로 동작한다.
Pixel Shader
래스터라이저 단계에서 구해진 기본 도형의 픽셀에 투명도, 조명과 그림자, 텍스쳐 색상을 입히는 단계.
Output Merger
표시되는 픽셀을 결정하고 최종 픽셀 색을 혼합하기 위한 단계.