2024-06-14

Unity 에서 제공하는 고급 카메라 시스템.
카메라 이동, 추적, 매핑, 블렌딩 등을 쉽게 구현할 수 있도록 도와주는 시스템.
(Package Manager - Cinemachine 을 추가)
기존에는 Main Camera 를 Player 오브젝트의 자식 오브젝트로 설정하거나,
카메라의 움직임을 관리하는 스크립트를 통해 카메라 위치를 상황에 따라 옮겨주었다.
3D 환경에서 캐릭터가 지붕 아래에 들어가 캐릭터의 모습이 가려지거나,
하늘을 보기 위해 시야를 조정했다가 카메라가 땅에 박히는 경우가 발생한다.
Cinemachine 을 추가하며 사용할 수 있게된 카메라의 종류에 대해 알아보고,
활용할 수 있는 방법도 생각해보았다.
| 카메라 종류 | 설명 | 활용 방안 |
|---|---|---|
| 2D Camera | 2D 게임에서 가장 기본이 되는 카메라 | |
| Blend List Camera | 할당된 가상 카메라를 정해진 블렌딩 방식에 따라 순차적으로 전환하는 카메라 | 컷씬, 액션 씬을 다양한 각도에서 보여줄 때 |
| ClearShot Camera | 여러 대의 카메라 중 장애물이 없는 가장 적합한 뷰를 선택하는 카메라 | 캐릭터가 건물 내부로 들어갈 때, 벽이나 장애물이 많은 곳을 지나갈 때 |
| Dolly Camera with Track | 설치된 트랙을 따라 이동하는 카메라 | (영화 촬영 시,) 캐릭터가 긴 복도를 걸어가는 장면에서 트랙을 설치해두고 따라가며 촬영 |
| Dolly Camera with Cart | 카트를 타고 이동하며 카메라 | (영화 촬영 시,) 자동차 추격 씬 |
| FreeLock Camera | 3인칭 시점에서 캐릭터를 따라가는 카메라 | RPG 게임 등에서 마우스나 조이스틱을 통해 다양한 각도에서 상황을 볼 때 |
| Mixing Camera | 여러 대의 가상 카메라의 출력을 혼합하여 하나의 최종 뷰를 생성하는 카메라 | |
| State-Driven Camera | 게임의 상태에 따라 카메라를 전환하는 카메라 | 차량에 탑승했을 때, 전투기에 탑승했을 때 |
| Target Group Camera | 여러 개의 타겟을 그룹으로 묶어, 그룹의 중심을 따라가는 카메라 | 유저들이 협력하는 게임에서, 모든 캐릭터를 한 화면에 담을 때 |
| Virtual Camera | 시네머신의 기본 구성 요소, 카메라의 위치, 회전, 줌 등을 설정할 수 있는 가상 카메라 |
| Property | 속성 |
|---|---|
| Priority | 다양한 카메라 중 우선순위 |
| Follow | 따라다닐 오브젝트 설정 |
| Look At | 바라볼 오브젝트 설정 |
| Standby Update | Live 상태가 아닌 카메라의 업데이트 주기 |
| (Never - 항상 / Always - Live일때만 / Round Robine - 정기적으로) | |
| Body | 씬 내부의 가상 카메라가 움직일 때 따라가는 방법 |
| Aim | 씬 내부의 가상 카메라가 LookAt 을 바라보는 방법 |
플레이어가 건물 안으로 들어가거나 장애물에 가려질 때,
다른 카메라를 사용할 필요 없이
Cinemachine Collider 컴포넌트를 붙여 해결할 수 있다.
캐릭터가 건물에 들어갈 때 (카메라가 벽을 통과할 때),
벽에 의해 캐릭터가 가려지지 않고 건물 안이나 밖으로 이동할 때 적절하게 따라온다.
저번 3D 팀 프로젝트를 할 때, Player 를 담당한 팀원이 시네머신을 활용한 적이 있어,
다음 3D 프로젝트 때는 직접 시네머신을 사용해보고 싶었는데 바로 사용해보게 되었다.
3D 게임, 다양한 액션 씬이나 RPG 게임 등에서 시네머신 카메라가 유용하게 쓰일 것 같으니 잘 기억해둬야겠다.