위의 유니티 공식 데브윅스 영상과 유니티 시네머신 공식 문서를 바탕으로 유니티 21.3.16f1, 시네머신 2.8.9 버전에서 적용 가능하도록 수정이 되어있습니다.
목차 1. 시네머신 2. 시네머신 설치 및 준비 3. Cinemachine Virtual Camera 4. Free Look Camera 5. Timeline 6. Dolly Track (천장 바닥 등 레일 깔아서 카메라 움직이도록 하는, 그룹으로 타겟팅도 가능) 7. Follow Zoom 8. Noise (흔들기) 9. Impulse (충격 전달) 10. Group Target 11. Clear Shot (벽에 가릴때쯤에 탑뷰가 되고 이런 느낌의 전환)
1. 시네머신
카메라를 사용하기 위해 코드를 작성하지 않고도 복잡한 동작을 구현하는데 유용한 스마트 카메라 시스템
시네머신의 특징
시네머신 이전에는 직접 키프레임을 제정하거나 코드 스크립팅 사용하느라 시간 오래 걸렸습니다.
이후 시네머신이 등장하면서 코딩 없이 다양한 카마레 연출 조작 가능해졌습니다.
피사체와 카메라 내 관계 쉽게 설정할 수 있습니다.
렌즈를 통해 살펴보고 카메라 샷의 구도를 잡고 피사체 동작 따라가는 방식으로, 실제 촬영감독과 유사하게 연출됩니다.
영화 같은 모션이나 씬 전환 기능 많습니다.
간편하고, 유연하며, 비파괴적으로 원활한 카메라 성능을 지향합니다.
가상카메라가 메인카메라를 컨트롤하는 방식이기 때문에 비교적 가볍게 돌아갑니다.
VR에서는 멀미 때문에 시네머신을 추천하지 않습니다.
다양한 시네머신 기능
2D Free Look (2D 영역 제한)
3D Free Look (3D 자유 시점 카메라, 벽에 통과되지 않는 카메라)
Aim Mode (TPS)
Clear Shot (벽에 가릴 때쯤에 탑뷰가 되고 이런 느낌의 전환)
Dolly Track (천장 바닥 등 레일 깔아서 카메라 움직이도록 하는, 그룹으로 타겟팅도 가능)
Noise (흔들기)
Impulse (충격 전달)
State Driven (애니메이션 상태에 따라서 카메라를 자동으로 노이즈 등의 변환)
Mixing Camera (멀리 가면 먼 풍경까지 보일 수 있도록)
Follow Zoom (멀리 있어도 가까이 보이도록 화각 조절)
등의 다양한 기능이 있으며, 본문에서는 강의에서 진행된 Free Look, Timeline, Dolly Track, Follow Zoom, Noise, Impulse, Group Target, Clear Shot을 다룹니다.
2. 시네머신 설치 및 준비
1. 패키지 매니저에서 Cinemachine을 검색해 원하는 버전으로 install 합니다. (강의에서는 2.6.0 버전으로 사용했고, 저는 2.8.9 버전을 사용했습니다.)
2. Cinemachine 패키지에 포함된 Sample Scene도 함께 다운로드합니다.
3. 연습해 볼 Scene을 세팅합니다.
Sample 폴더에 들어있는 Prefab을 활용합니다.
wasd 상호작용으로 움직일 수 있는 캐릭터바닥
3. Cinemachine Virtual Camera
빈 게임 오브젝트에 추가하는 컴포넌트로, Unity 씬에서 가상 카메라
가상 카메라 추가
가상 카메라는 하이어라키에서 우클릭으로 추가합니다.
가상 카메라와 메인 카메라
가상카메라의 인스펙터창을 살펴봅시다.
메인 카메라에는 Cinemachine Brain 컴포넌트가 들어있습니다.
가상 카메라 Cinemachin Virtual Camera는 메인 카메라의 Cinemachine Brain을 컨트롤합니다.
여러 대의 가상카메라를 설치해 메인 카메라(1개 권장)를 조절할 수 있습니다.
실제 카메라가 여러 대 설치되는 것이 아니기 때문에 성능에 큰 영향을 미치지 않습니다.
Tip!
시네머신에서는 Save During Play를 활성화해서 실행 도중에 수정한 것도 저장이 가능합니다.
Game Window Guides
가이드 활성화 시키기
Game Window Guides를 활성화하고 Aim 토글을 눌러서 열면 아래 Zone이 보이는 가이드가 활성화됩니다.
Zone
빨간 영역 : 금지 구역
파란 영역 : Soft Zone
아무 색도 없는 영역 : Dead Zone
노란 점 : Tracked Object
노란 점이 Dead Zone을 벗어나게 되면 카메라가 노란 점을 Dead Zone 영역으로 넣기 위해서 움직입니다.
살짝 정도는 Dead Zone을 벗어날 수 있지만 금방 Dead Zone으로 돌아옵니다.
빨간 영역은 노란 점이 절대 들어갈 수 없습니다.
우선순위
가상 카메라의 Priority를 조절해 보여주고 싶은 카메라를 선택할 수 있습니다. 여러 카메라가 있을 때 Priority가 높은 가상카메라를 보여줍니다.
Body의 Transposer과 Aim의 Composer 옵션
Body: 카메라가 대상(Tracked Object)을 따라가는 방식을 정의합니다.
Transposer: 카메라가 대상과 일정한 상대 위치를 유지하며 따라가는 방식입니다.
Damping 값을 조절하면 부드럽게 따라오는 효과 추가 가능합니다.
값이 클수록 목표물의 속도에 따라 카메라가 멀어지고 목표물이 멈췄을 때 카메라의 원래위치로 복귀하는 데 오래 걸립니다.
Framing Transposer는 대상이 화면에서 일정한 위치를 유지하도록 합니다.
Orbital Transposer는 대상 주위를 회전하며 따라가는 기능을 제공합니다.
Aim: 카메라가 대상을 어떤 방식으로 바라볼지를 결정합니다.
Composer: 카메라가 대상(Tracked Object)을 따라가면서, 대상이 화면에서 특정 위치(Framing Position)를 유지하도록 조정합니다.
Dead Zone & Soft Zone을 활용해 카메라가 부드럽게 움직이도록 조정합니다.
기본 기능 활용하기 - 카메라가 캐릭터를 주시하게 만들고 싶어요
⇒ 실행 시 자동적으로 캐릭터를 트래킹 하는 것을 볼 수 있습니다.
기본 기능 활용하기 - 게임 캐릭터가 바라보는 방향을 많이 보여주고 싶어요
빈 오브젝트를 캐릭터 오브젝트 안에 생성합니다. (이름을 camTarget로 설정)
cam target 오브젝트를 캐릭터가 바라보는 전방 방향으로 옮깁니다.
가상 카메라의 Look At 대상을 cam target으로 설정합니다.
결과
⇒ 캐릭터가 바라보는 방향으로 좀 더 많이 보게 되었습니다.
4. Free Look Camera
3인칭 카메라를 제공하는 시네머신 컴포넌트
가상 카메라 추가
가상 카메라는 하이어라키에서 우클릭으로 추가합니다.
카메라가 바라볼 캐릭터 선택
Follow에는 따라갈 캐릭터를, Look At에는 바라볼 캐릭터의 상체 오브젝트를 넣습니다.
카메라 설정
Top, Middle, Bottom Rig으로 이루어져 있습니다.
시점에 따라서 카메라가 전환됩니다. → 위에서 보면 Top Rig를, 아래서 보면 Bottom Rig로 전환됩니다.
Top - 가장 상단의 빨간 원 범위로 위에서 아래를 바라보는 시점으로 전환합니다.
Middle - 중간의 빨간 원 범위로 비슷한 눈높이에서 바라보는 시점으로 전환됩니다.
Bottom - 가장 하단의 빨간 원 범위로 아래에서 위를 바라보는 시점으로 전환됩니다.
각 Rig별로 Body 및 Aim도 설정이 가능합니다.
5. Timeline
Unity의 편집기에서 사용할 수 있는 시간 기반 편집 도구로 (시네머신과 함께 사용 가능) 애니메이션, 사운드, 이펙트 등 게임 개발에 필요한 다양한 이벤트를 시각적으로 조정하고 편집 가능합니다.
Timeline 추가하기
빈 오브젝트를 추가합니다. (CamCtrl의 이름으로 설정했습니다)
CamCtrl을 선택한 상태에서 Timeline을 추가해 줍니다. (Window > Sequencing > Timeline 위치에서 별도의 패키지 설치 없이 기본적으로 추가)
그럼 Timeline이라는 새로운 뷰가 생기는데, 가운데의 Create 버튼을 만들어 Timeline을 새로 생성해 줍니다.
Main Camera를 화살표 공간에 드래그해주고 Cinemachine Track을 추가해 줍니다.
Timeline에 가상 카메라 추가하기
필요한 가상 카메라 오브젝트를 타임라인에 드래그합니다.
원하는 대로 각 요소의 타임라인을 조절합니다 (마우스 드래그, 길이 조절 등)
실행해 보면 원하는 타이밍에 필요한 카메라로 전환되도록 설정이 가능합니다.
Tip!
카메라가 자연스럽게 블렌딩 되는 전환이 싫다면 Default Blend 속성을 수정해 봅시다.
Tip!
Custom Blends를 사용하면 카메라 간 전환을 개별적으로 커스텀할 수 있습니다.
6. Dolly Track
씬의 웨이포인트 배열로 가상 카메라를 배치하거나 애니메이션 화할 고정 코스를 지정할 수 있습니다.
Dolly Camera with Track 생성하기
가상 카메라와 트랙은 하이어라키에서 우클릭으로 추가합니다.
Way points 배열
Waypoints 배열로 Track의 경로를 지정할 수 있습니다.
오브젝트를 움직이듯 각 포인트를 Scene에서 움직일 수도 있고, 각 배열값의 좌표값으로 조절도 가능합니다.
Looped를 활성화하면 트랙의 양끝을 연결할 수 있습니다.
Dolly Camera 설정하기
가상카메라의 Follow(따라갈 대상)와 Look At(바라볼 대상)을 지정합니다.
Body에서 Auto Dolly 속성을 활성화(Enabled) 해줍니다.
결과
⇒ 카메라가 지정된 트랙에서만 움직이며 타깃을 따라다닙니다.
Dolly Track with Cart 생성하기
가상 카메라와 카트는 하이어라키에서 우클릭으로 추가합니다.
Cart의 Track 설정하기
Dolly Camera Track과 동일하게 Waypoints 배열로 Track의 경로를 지정할 수 있습니다.
안쪽은 Cart의 트랙을, 바깥쪽은 Camera의 트랙으로 설정해 봅니다.
Cart 설정하기
Path는 설정한 Dolly Cart의 트랙으로 설정합니다.
Speed는 원하는 속도를 설정합니다. ⇒ 설정된 속도만큼 트랙을 따라 움직이게 됩니다.
Cart에는 찍고 싶은 대상을 넣어봅니다. (기본 오브젝트인 Capsule을 자식으로 넣었습니다.)
Dolly Camera의 설정은 아래와 같이 Cart에 타고 있는 대상으로 변경합니다.
결과
⇒ Capsule은 Dolly Cart Track을 따라서 움직입니다. ⇒ Dolly 가상 카메라는 타깃인 Capsule을 따라가되, Dolly Camera Track을 따라서 움직입니다.
7. Follow Zoom
카메라와 타겟 포지션에 관계없이 화면에서 타겟 오브젝트를 일정한 크기로 유지하도록 렌즈의 FOV를 조정합니다.