오랜 시간을 들여 2D 게임을 위한 카메라 시스템을 구축하면서 2D 콘텐츠를 위한 시네머신이 있었으면 좋겠다고 생각하셨나요? 아직 많은 분들이 모르고 계시겠지만, 2D 콘텐츠 제작에도 시네머신을 사용할 수 있습니다! 이번 게시물에서는 2D 게임 개발에 시네머신을 최대한 활용하여 작업 능률을 개선하고 개발 기간을 단축하는 방법을 소개합니다. 시네머신 가상 카메라(Virtual Camera)와 제한자(Confiner) 등 2D 게임 개발을 위한 툴에 대해 자세히 알아보세요.
Unity 2018.1.0b7 이상 버전을 사용하는 경우 Unity 내 패키지 관리자에서 시네머신을 임포트할 수 있습니다.
창(Window) > 패키지 관리자(Package Manager) > 모두(All)로 이동한 다음 시네머신(Cinemachine)을 선택합니다.
시네머신을 사용하면 2D 환경을 위한 카메라 시스템을 비교적 쉽게 구축할 수 있습니다. 먼저 2D용 가상 카메라를 만드는 방법을 살펴보겠습니다.
2D 가상 카메라가 3D 가상 카메라와 가장 구별되는 점은 프레이밍 트랜스포저(Framing Transposer)가 사용된다는 것입니다. 이 트랜스포저는 카메라의 X-Y 평면에서 타겟을 추적하며, 카메라가 회전하지 않도록 합니다. 프레이밍 트랜스포저가 올바르게 작동하려면 가상 카메라의 ‘목표 고정(Look At)’ 타겟이 비어 있어야 합니다. 또한 2D 게임에서는 직교 뷰가 사용됩니다. 처음에 가상 카메라를 만들 때에는 씬의 시네머신 브레인(Cinemachine Brain) 카메라에서 투영을 ‘직교(Orthographic)’로 변경해야 합니다.
시네머신을 이용하는 경우 카메라를 하나만 사용하지 말고 여러 대의 ‘가상 카메라’를 씬에 배치한 다음 시네머신 브레인을 통해 각 카메라의 뷰를 적절하게 섞어서 활용합니다. 플레이어의 생명이 얼마 남지 않았거나, 플레이어가 특정 영역에 진입했을 때, 또는 카메라 프레이밍이나 포스트 프로세싱을 변경해야 하는 경우 이러한 방식을 활용할 수 있습니다. 원하는 시각 표현에 따라 시네머신 브레인의 혼합 설정을 조정할 수도 있습니다.
아래의 비디오에서 재생 모드 중 가상 카메라를 조정하는 방법을 알아보세요.
시네머신의 또 다른 멋진 기능은 경계 상자를 사용하여 가상 카메라의 움직임을 원하는 영역 내로 제한하는 것으로, 가상 카메라의 확장 기능(Extension) 섹션에서 설정할 수 있습니다. 아래는 이 효과를 적용하는 방법입니다.
‘박스 콜라이더 2D(Box Collider 2D)’를 조정하여 레벨에 맞춥니다.
2. 가상 카메라에 제한자(Confiner) 확장 기능을 추가합니다.
3. 이전에 만든 경계 상자를 바운딩 셰이프 2D(Bounding Shape 2D) 상자로 드래그합니다.
4. 카메라를 화면 가장자리로 제한할 것인지 여부를 결정합니다. ‘스크린 에지 제한(Confine Screen Edges)’ 체크박스로 설정/설정 해제할 수 있습니다.
5. 마지막으로 제한자에 댐핑(damping)을 추가할지 여부를 선택할 수 있습니다. 댐핑을 추가하면 카메라가 제한에 사용되는 콜라이더의 끝부분에 매끄럽게 오버랩됩니다. 이 효과를 적용하지 않으려면 댐핑 시간(Damping Time)을 0으로 설정합니다.
아래에서 결과가 어떻게 보이는지 확인하세요.
예시 비디오:
2D에서 사용할 수 있는 시네머신의 또 다른 유용한 기능은 그룹 카메라(Group Camera)입니다. 이 카메라를 사용하면 카메라가 따라갈 타겟 그룹을 생성할 수 있습니다. 그룹 카메라는 중요한 요소를 보여주는 컷씬을 제작하거나, 각 프레임에 두 개 이상의 오브젝트를 포함하려고 할 때, 또는 2D 로컬 멀티플레이어 게임을 제작하려는 경우에 유용합니다.
시네머신에서 이 기능을 사용하는 방법은 다음과 같습니다.
‘Target Group’은 동일한 가상 카메라로 여러 타겟을 볼 수 있는 시네머신 컴포넌트로, 가중치에 따라 카메라 크기를 조정하여 타겟이 화면에 들어오도록 합니다. 예를 들어 모든 타겟의 가중치가 1이라면 타겟 그룹 내 모든 타겟이 화면에 들어옵니다.
다음은 플레이어와 나무 상자에 초점을 맞추는 그룹 카메라의 예입니다.
시네머신 2.2버전에는 새로운 임펄스(Impulse) 확장 기능이 추가되었습니다. 이 확장 기능을 사용하면 코드를 작성하지 않고도 카메라 흔들기 효과를 적용할 수 있습니다. 임펄스 확장 기능은 가상 카메라의 확장 기능으로 추가할 수 있습니다. 이 확장 기능을 씬에 추가하는 방법은 다음과 같습니다.
필요에 따라 소멸 모드(Dissipation Mode)를 조정하여 감쇠 유형을 변경할 수 있습니다. 그밖에 다른 설정도 조정할 수 있습니다. 예시에서는 필요한 모든 항목을 조정했습니다.
그 결과물은 아래와 같습니다.
지금까지의 내용을 요약하자면 다음과 같습니다.
유익한 팁을 얻으셨기를 바랍니다. 다음 2D 프로젝트에서는 꼭 시네머신을 사용해 보세요! Unity 포럼의 토론에 참여해서 시네머신에 대한 최신 소식을 확인하실 수 있습니다.