본문 바로가기

유니티 게임 개발하기

유니티 게임 개발하기 (4) - 캐릭터를 따라다니는 카메라를 만들자.

안녕하세요, 초보개발자 윈디입니다. 수업 리뷰를 못 올린지도 거의 2주가 넘어가 버렷네요.

사실 계속 수업은 했는데, 제가 이해력이 달리는 고로 최대한 곱씹으면서, 공부를 해야지 간신히 어느 정도 리뷰가 가능한 거 같군요 ㅜㅠ 우선 쉽고 간단하게 이해할 수 있는 부분부터

넓게, 유니티의 사용방법 위주로 공부와 리뷰를 진행하면서 점점 더 중요한 내용으로 나가는 것이 좋을것 같다는 생각이 듭니다.


그래서 오늘은 조금은 가벼운 내용입니다. 카메라에요.


지난 시간에 움직이는 캐릭터를 만들었으니, 오늘은 캐릭터를 따라다니는 카메라와, 

화면 구석에서 작게 보이는 미니맵을 한번 만들어 보면서, 카메라의 여러가지 효과와 사용법에 대해서 한번 알아 보면 좋을 것 같습니다.






우선 저희는 메인 카메라가 캐릭터를 따라오도록 간단하게 적용하는 방법을 살펴 보겠습니다.

사실, 카메라가 타겟을 따라다니게 만드는 스크립트는 굳이 만드실 필요가 없습니다.

이미 만들어져 있거든요. 마우스 오른쪽 버튼으로 , Import Package 를 선택해 주세요.







유니티 안에서 기본적으로 들어있는 여러 가지의 코드 세트들과 만나시게 될 겁니다.

유니티에서는 에셋스토어에서 추가해서 사용할수 있는 각종 커스텀 스크립트들 뿐만 아니라, 기본적으로 제공하고 있는 스크립트나 기능들도 굉장히 편안한 기능들이 많습니다.

저도 공부하다가 보고 몇개 써먹어 봣는데 저같은 초보자가 만드는 코드들보다는

훨씬 간결하고 잘 만들어져 있더라고요. 하나하나 리뷰해 보면서 제 것으로 만들어볼 생각도 가지고 있습니다. 하지만 우선은 사용해서 기능을 알아야 나중에 리뷰를 해 봐도 조금 더 이해가 잘 되겠죠~ 하는 마음으로 오늘은 한번 사용해 보렵니다.


그런 강력한 기능들 중! 저희가 오늘 사용해 볼 메뉴는 카메라입니다. cameras, 선택해 주시면 꽤 여러 가지의 프리팹들과 스크립트이 확인이 되실 거에요.






하나하나 사용해보실 생각이라면 전부 추가해서 메인 카메라에 적용해 보거나, 프리팹을 추가해 보거나 하면 좋으실 거 같습니다.

일단 저희의 목표는 캐릭터를 따라가는 메인 카메라를 만드는 것이기 때문에, 일단은 스크립트 중에서 smooth follow 라는 스크립트만 따로 꺼내 옵시다.








그리고 하이라키 탭을 어느정도 정리를 해 줘야 나중에 오브젝트가 많아졌을 때 보기 편하겠죠, 메인 카메라를 드래그&드롭하여 플레이어 캐릭터의 차일드(하위) 클래스로 만들어 줍시다. 차일드가 되었다니 바로 눈치챈 분들도 계시겠지만, 아직 스크립트를 추가하지 않았음에도,  이제 메인 카메라는 플레이어 캐릭터를 기본적으로 따라다니게 될 겁니다.






왜냐구요? 하위 클래스니까요~ 하지만 단순히 그렇게 두기만 한다면 안 되겠죠?

재미도 없을 뿐더러 아무리 그래도 메인 카메라인데, 나중에 컷신이나, 캐릭터를 바꿔야 하는 상황이 온다면 곤란해 질 테니까요. 실제로 이런 카메라를 만들 때는, 좀전에 import 해 왔던  smooth follow 스크립트를 메인 카메라에 한번 더 추가해 주시는게 더 좋습니다.


[메인카메라에 스무스팔로 추가하고 옵션 설명하는 사진]

smooth follow 스크립트를 컴포넌트로 추가하면 다음과 같은 옵션들이 있습니다.

우선 Target 에는 따라가길 원하는 좌표를 넣어 주세요.

만약 Player의 transform이라는 좌표를 그대로 가져다 주면, 카메라는 캐릭터의 발밑 끝 지점을 기준으로 생각하고 따라다닐 거에요. 약간 어색한, 위에서 내려다보는 카메라가 될 수 있으니 이점 주의해 주세요.

 이런 경우에는 Player의 차일드에 추가적으로 빈 오브젝트를 만들어서 원하는 위치에 띄워 두고, 메인 카메라가 이걸 따라가도록 하는게 가장 좋은 방법입니다.

저는CamPivot이라 이름을 짓도록 할게요.



이제 조금 낫네요, 그럼 이제 미니맵용 카메라를 한번 만들어 봐야죠.

우선 화면에 표시되는 카메라의 개념에 대해서 한번 설명해 드려야겠네요.





카메라는 기본적으로 Depth 옵션의 숫자가 클 수록 다른 카메라들보다 상위에 표시됩니다.

레이어처럼 생각하시면 편해요. depth 0의 메인 카메라는, depth 1인 새로 만들어진 카메라에 가려집니다. 카메라를 만들때 마다 depth가 늘어나니까, 참고해 주세요.


그럼이제, viewport rect 의 옵션에 대해 한번 살펴보죠,  순서대로 게임 출력 화면에서의 화면에서의 x,y축 위치, 게임 출력에 표현될 화면의 크기에 대한 정보가 있습니다

모두 비율상 표현으로 1이 가장 큰 화면인 겁니다.

예를들어 현재 스크린샷처럼 설정하면

이렇게 보인다는 것이죠








그리고 이제 카메라가 찍는 범위를 잘 조정해주시고, 캐릭터를 따라오도록(이때는 스무스팔로가 큰 소용이 없습니다. 위에서 찍기만 하는게 목적이니까요.) 하실 때는, 해당 카메라를 아까의 캠 피봇을 따라가게 차일드화 시켜 두는 거죠.


이렇게 미니맵까지 같이 만들어봤습니다. 여러분들은 잘 되셨나요?

스무스팔로의 스크립트 내용은 그다지 어렵지 않으니까요, 한번더확인해서 분석해 보는 것 잊지 말아주세요! 복습은 공부에서 정말 중요하다고 해요!

저는 이제 다음 시간에 좀더 알찬 내용으로 찾아뵙도록 하겠습니다.