UnityCameraSystem_CC: Cinemachine 기반 카메라 시스템 소개
요약
Cinemachine 플러그인을 활용하여 1인칭, 3인칭 오버숄더, 자유 시점 등 다양한 기능을 갖춘 카메라 시스템을 소개합니다. 이 시스템은 가상 카메라를 기반으로 하며, 잠금, 회전, 축소/확대, 목표물 추적, 충돌 방지 등의 고급 기능을 구현했습니다.
핵심 포인트
- Cinemachine Virtual Camera 기반의 다기능 카메라 시스템입니다.
- 1인칭부터 탑뷰까지 5가지 시점 전환을 지원합니다.
- 카메라 잠금, 동적 추적, 가림 투시 등 다양한 기능이 내장되어 있습니다.
- URP/HDRP 파이프라인으로 업그레이드가 가능하며, 신규 입력 시스템 사용을 권장합니다.
UnityCameraSystem_CC
개요
Cinemachine을 기반으로 한 1인칭/3인칭 오버숄더/자유/사선45도/탑뷰(俯視角) 카메라 시스템입니다.
본 카메라 시스템은 Cinemachine의 Virtual Camera를 구현하여, 잠금(Locking), 회전(Rotation), 축소/확대(Scaling), 이동(Movement), 마우스 표시/숨김, 카메라 위치 초기화, 카메라 각도 제한, 목표물 동적 추적(Dynamic Following), 시점 전환, 가림 투시(Occlusion Perspective) 등의 기능을 구현했습니다. 또한 카메라 충돌 기능이 내장되어 있어 벽을 뚫는 것을 방지합니다.
소프트웨어 아키텍처
Unity 2020.3.33f1c2
Cinemachine (플러그인)
Input System (플러그인)
사용 설명
상세 내용은 문서를 참고하십시오.
기여 참여
월우함선(B站)
특기 사항
Cinemachine은 Unity의 강력한 카메라 플러그인으로, 코딩 없이도 복잡한 효과를 구현할 수 있으며 스크립트를 통해 더 복잡한 효과로 확장하는 것도 지원합니다. 사용하기 쉽고 Unity 2017 이상 버전에서 사용할 수 있습니다.
카메라와 다른 점은, 가상 카메라는 실제 카메라가 아니며 Camera 컴포넌트를 부착하지 않습니다. 단지 데이터일 뿐이며, 본질적으로는 실제 카메라 파라미터를 제어하는 카메라 동작의 설정 파일입니다. 따라서 화면을 렌더링하려면 반드시 Camera 객체와 함께 사용해야 하므로, 여러 개의 실제 카메라를 생성하는 것보다 성능 소모가 훨씬 적습니다.
본 카메라 시스템은 Cinemachine의 Virtual Camera를 기반으로 잠금, 회전, 축소/확대, 이동, 마우스 표시/숨김, 카메라 위치 초기화, 카메라 각도 제한, 목표물 동적 추적, 시점 전환, 가림 투시 등의 기능을 구현했으며, 벽을 뚫는 것을 방지하는 카메라 충돌 기능이 내장되어 있습니다.
카메라 잠금은 수평 또는 수직 방향만 개별적으로 잠글 수 있습니다.
카메라 회전은 마우스 왼쪽 버튼을 누른 상태로 이동하여 제어할 수도 있고, 마우스를 직접 움직여서도 제어할 수 있습니다.
카메라 축소/확대는 마우스 휠로 제어할 수 있지만, 휠 제어가 상대적으로 매끄럽지 않아 마우스 Y축(상하 이동)으로도 설정하여 상하로 마우스를 움직여 축소/확대할 수 있도록 했습니다.
카메라 이동은 마우스 가운데 버튼 또는 오른쪽 버튼을 누른 상태로 마우스를 움직여 제어할 수 있습니다.
플레이어는 상대적으로 유연하고 다양한 제어 방식을 통해 게임 환경을 더 자유롭게 탐험할 수 있습니다. 특히 2차 창작 스토리 녹화(운경)를 좋아하는 플레이어에게는 자신만의 '대작'을 제작하는 데 더욱 편리합니다.
본 시스템은 다섯 가지 시점 전환을 제공합니다: 1인칭, 자유 시점은 마우스로 카메라 방향을 제어하고 이를 통해 캐릭터 이동 방향까지 제어합니다. 3인칭 오버숄더 시점은 A, D 키를 이용해 회전을 제어하며, 마우스는 상하로만 시점을 움직일 수 있습니다. 사선45도 시점 및 탑뷰(俯視角)는 고정된 시점으로 이동할 수 없으며, 사선45도 시점은 별도의 마우스 제어 없이 자동으로 각도에 적응합니다. 탑뷰는 캐릭터가 가려질 때 가리는 물체의 재질을 투명한 재질로 대체합니다.
본 예제 카메라 시스템은 렌더링 파이프라인 요구 사항이 없으며, URP 또는 HDRP 렌더링 파이프라인으로 업그레이드할 수 있습니다.
본 예제 카메라 시스템은 PC용 및 구형 입력 시스템(Old Input System)을 기반으로 개발되어 마우스와 키보드를 통해 제어됩니다. 다른 플랫폼으로 이식하려면 관련 입력을 해당 플랫폼의 입력으로 수정해야 합니다. 다중 플랫폼 배포가 필요한 경우, 통일된 관리가 용이한 신규 입력 시스템(New Input System)으로 교체하는 것을 권장합니다. 예제에 포함된 공식 최신 캐릭터 컨트롤러 리소스는 신규 입력 시스템을 기반으로 개발되었으므로, 소스 코드를 연구하며 관련 학습을 할 수 있습니다. 본 문서에서는 상세히 설명하지 않습니다.
관련 키(Key):
참고: 키는 취향에 따라 교체할 수 있습니다.
카메라 관련 키:
1인칭/자유 시점 전환: V
3인칭 오버숄더/자유 시점 전환: B
사선45도/자유 시점 전환: N
탑뷰/자유 시점 전환: M
마우스 표시 여부: 0
카메라 Y축 잠금: 9
카메라 X축 잠금: 8
카메라 회전 제어: 마우스 왼쪽 버튼을 누른 채 마우스를 이동하거나, 또는 직접 마우스를 이동합니다.
왼쪽/오른쪽 버튼으로 카메라 회전 제어 여부: 우측 Ctrl
카메라 시야 축소/확대: 마우스 휠 또는 마우스 Y축
마우스 휠/마우스 Y축을 이용한 전환: 우측 Alt
카메라 이동: 마우스 가운데 버튼/오른쪽 버튼을 누른 채 마우스를 이동합니다.
자유 시점 카메라 위치 초기화: P
CharacterController 캐릭터 컨트롤러 관련 키:
캐릭터 전력 질주(Run): 왼쪽 Shift + WASD 또는 왼쪽 Shift + 방향키
캐릭터 걷기(Walk): WASD 또는 방향키
캐릭터 점프(Jump): 스페이스바
캐릭터 회전 (3인칭 오버숄더 시점일 경우만): A, D 또는 방향키 좌우
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub GameDev의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기