일단 이렇게 그렸다!
플레이어가 맵을 돌아다녀야되니깐 이제 카메라 설정을 해보자!
예전엔 카메라를 구현할 때 하나하나 코드로 짜 넣어야됐다... 이게 은근 복잡하고 어렵다 보니 여기가 첫 관문인적도 많았다.
이번 카메라 구현은 유니티에서 제공하는 Cinemachine을 사용할것이다.
일단 Cinemachine을 유니티에서 받아오자.
상단 탭에 Window -> PackageManager를 켜주자.
좌측 위에 + q버튼 옆에 Packages를 UnityRegistry로 맞춰주고, 우측 상단에 Cinemachine을 검색해주자.
우측 하단의 Import버튼을 눌러 추가시켜주자.
나는 이미 다운로드를 해서 Remove라고 뜨고 있지만, Import버튼을 눌러주면 된다.
이러면 이제 준비는 끝났다.
하이라키창을 오른쪽클릭해서 Cinemachine -> virtualCamera를 생성해주자.
생성을 한다면 MainCamera 우측에 빨간색 카메라가 생성된다.
이게 Cinemachine에서 제공하는 CinemachineBrain이라는 컴포넌트가 붙어서 그렇다. (편하게 브레인이라고 하겠다.)
브레인은 모든 virtualCam을 제어한다. 그리고, virtualCam을 껐다, 켰다 하면서 카메라의 전환을 할 수 있다.
virtualcam 말고도 다른 기능이 많지만 일단 우리는 virtualCam만 써보자.
추가적인 기능은 다음 링크에서 확인하면 된다.
시네머신
Unity의 시네머신으로 복잡한 카메라의 움직임을 만드는 방법을 알아보세요. 타겟 트래킹, 구성, 블렌딩 및 자르기까지 쉽고 직관적으로 작업할 수 있습니다.
unity.com
자, 이제 생성을 했으니 기본 설정을 맞춰보자.
일단 필요한건 따라다닐 타겟이다.
Follow에 우리가 이전에 만들어 둔, 플레이어를 넣어주자.
그리고 LensOrtho Size는 10으로 맞춰줬다.
LensOrtho Size는 카메라의 거리라고 생각하면 된다. 늘려주면 더 멀리서 찍게된다.
지금 5로 맞춰놓으니 뭔가 너무 가깝고, 좀 멀게 찍으면 좋을 것 같아서 일단 10으로 맞춰뒀다.
위의 설정을 완료 한 후, 실행해보면 카메라가 플레이어를 잘 따라다니는것을 볼 수 있다.
하지만, 맵 바깥으로 카메라가 나가게 된다. 이를 방지해야되니깐 우리는 위 사진 젤 하단에 보면 Add Extension을 눌러, Cinemachine Confiner를 추가해주자.
이렇게 추가되었다면 성공이다. (사진에 Look At에 플레이어가 넣어져있지만, Look At에는 넣지말자. None으로 둬야한다.)
Confiner 컴포넌트를 살펴보면 Bounding Shape 2D라고 되어있는 부분이 있다.
이 부분이 이제 콜라이더를 넣어 카메라가 바깥으로 못나가게 만드는 부분이다.
이제 콜라이더를 생성해야한다.
빈 오브젝트를 하이라키에 생성해주고 이름을 Bound로 바꾸자.
그리고 빈 오브젝트에 Polygon Collider 2D를 추가해주자.
시네머신의 콜라이더는 Polygon Collider를 사용해줘야한다.
생성 했다면 이렇게 콜라이더의 크기를 맞춰주자.
콜라이더의 꼭짓점이 처음에 5개일텐데,
Points -> paths -> Element0에 들어가보면 Size가 5로 되어있을것이다. 이를 4로 바꿔주면 사각형으로 바뀐다.
이후, 사이즈를 잘 설정해서
이렇게 초록 박스가 맵을 다 덮을 수 있게 설정하자.
이후, 콜라이더를 PlayerCam에 넣어주자.
그리고 Damping도 0으로 맞춰주자.
Damping은 카메라가 어떻게 플레이어를 따라갈지 설정하는부분이다.
처음에 0.5로 되어있다면 카메라가 플레이어를 따라가다가, 플레이어에게 가까이 왔을 때, 스무스하게 천천히 멈추는것을 의미한다.
0으로 두면 카메라가 플레이어를 바로바로 쫒아오게 된다.
카메라에 효과를 주고 싶으면 상관 없지만, 나는 0으로 고정하려 한다.
이렇게 세팅이 끝나고, 게임을 플레이해보면 다음과 같아진다.
하지만 플레이어가 맵 밖으로 나갈 수 있게 되었으니 다음은 플레이어를 카메라 안으로 가둬보자.
'Develop > 마음대로 만드는 게임' 카테고리의 다른 글
[NProject] 마음대로 만드는 게임 - 5. 인벤토리 구현(디자인 만들기) (0) | 2024.05.10 |
---|---|
[NProject] 마음대로 만드는 게임 - 4. 플레이어 이동 제한 (0) | 2024.05.10 |
[NProject] 마음대로 만드는 게임 - 2. 타일맵 만들기 (0) | 2024.05.09 |
[NProject] 마음대로 만드는 게임 - 1. UI 기본 세팅 (0) | 2024.05.09 |
[NProject] 마음대로 만드는 게임 - 0. 플레이어 움직임 (0) | 2024.05.09 |