오늘은 개인 프로젝트를 진행하면서 카메라를 소스코드를 작성하지 않고 유니티에서 제공해주는 Cinemachine을 사용하여 캐릭터를 따라다니게 하는 간단한 기법을 남겨둘까 해서 적어본다.
우선적으로다가 필요한건 패키지 매니저에서 Cinemachine을 설치해주자.

그럼 사용준비는 끝! 어떤식으로 사용했는지 하나씩 맛을 보자.
특별하게 카메라 연출을 하는 것은 아니기 때문에 매우 쉽고 간단하게 구현했다.
우선은 Scene에 Virtual Camera라는 이름으로 게임 오브젝트를 하나 만들어준다. 거기에 CinemachineVirtualCamera 컴포넌트를 추가해준다.

추가 되었다면 우선 설정해줄 속성은
Lens Ortho Size 설정값을 왔다갔다 해보면 기존에 있던 Camera에 있는 Size 속성을 조절하는 것과 비슷하게 가까이서 보이거나 멀리서 보여주게 된다. Follow를 따라다닐 게임 오브젝트를 지정해준다.다음은 Main Camera를 선택하고 CinemachineBrain을 추가한다.

우선은 가이드를 보면 이런 저런 설명이 있긴 한데, 지금은 단순하게 쫓아오도록 할것이라 권장 설정과 기본 설정으로 우선 두고 진행 해본다.
(https://docs.unity3d.com/kr/Packages/com.unity.cinemachine@2.3/manual/CinemachineBrainProperties.html)
이렇게 하고 플레이어 캐릭터에 이동 구현을 해주면 코드 한줄 안쓰고 다음과 같이 카메라가 스무스하게 쫓아오게 된다.

좋다.. 직접 소스코드로 작성하는 것 보다 자연스럽다..
다음은 카메라의 움직임을 제한 해보자.
우선 제한할 영역을 표시하기 위해 Cam Border 라는 게임 오브젝트를 추가하고 거기에 Polycon Collider 2D 컴포넌트를 추가한다.

그런 다음 카메라가 특정 지역을 벗어나지 못하게 Edit Collider로 영역을 잡아준다.

여기서 주의할 점은 Polycon Collider 2D도 물리적으로 적용되기 때문에 물리 적용을 받지 않게 하기 위해 Is Trigger는 체크해주자. (안해주면 나중에 투사체나 다른 Rigidbody가 의도하지 않는 움직임으로 보여질것이다.)
그런 다음 기존에 만들어둔 Virtual Camera에 Cinemachine Confiner 2D컴포넌트를 추가해야하는데 Add Component에서는 찾을 수 없고, CinemachineVirtualCamera 컴포넌트에 제일 하단에 보면 Add Extension을 통해 추가해주면 된다.

그리고 이전에 추가했던 Cam Boarder를 Bounding Shape 2D에 넣어주고 Invalidate Cache를 한번 눌러준다. Polycon Collider 2D을 입맛대로 바꾸다보면 바로 적용되는게 아니고 Invalidate Cache 눌러서 갱신을 해줘야 한다.
다른 설정 중에는 음.. Damping 이라고 있는데 경계를 넘어설 경우 카메라를 바운딩 볼륨 또는 영역으로 점진적으로 되돌리는 방법입니다. 숫자가 높을수록 더욱 점진적입니다. 지정한 영역을 벗어나면 다시 영역으로 돌아올때 계수라고 보면 될 것 같다.
그러면 이제 마지막으로 지금까지 설정한 것의 결과를 보면

이런식으로 카메라가 영역 밖으로 나가지 않는다. 유니티.. 배워야 할것도 많은데 배울수록 빠져든다..
참고로 전체 내용은 Unity Korea에서 진행하신 골드메탈님 가이드를 보고 만든것 입니다.
(https://www.youtube.com/watch?v=bjgFsXweQw8)