먼저 3D URP로 프로젝트를 생성해준다.
여기서 3D URP란 Universal Render Pipeline이라고도 하며 유니티 엔진에 사용되는 렌더 파이프 라인이라고 한다.
렌더 파이프라인은 Scene의 콘텐츠를 가져와서 화면에 표시하는 일련의 작업을 수행하는 것을 말하며 이는 3D모델이 배치되어 있는 것들을 마치 2D 이미지 처럼 보이게 하는 전반적인 과정을 뜻한다고 한다.
그래서 URP를 사용하면 높은 성능을 요구하거나 고퀄리티 이미지를 사용할 경우에 용이하다고 볼 수 있다.
이번 프로젝트에서는 세 가지를 설치할 건데 바로 플레이어를 움직일 Input System, 탑 뷰에서 플레이어를 따라가게 해줄 Cinemachine, 그리고 Unity에서 지원해 주는 ProBuilder를 설치할 것이다. 그리고 이전에는 Rigidbody를 이용해서 캐릭터의 움직임을 줬다면, 이번에는 캐릭터 컨트롤러(Character Controller) 를 통해 움직임 충돌 등을 줄 예정이다.
ProBuilder 란?
프로빌더(proBuilder)는 Unity의 유용한 에셋 중 하나로, 게임 개발자들이 빠르고 쉽게 3D 모델을 만들고 편집하는 도구이다. 기본적으로 Unity에서 제공하는 기능으로, 유료 라이선스가 필요 없이 무료로 사용할 수 있다.
ProBuilder의 주요 기능
1. 3D 모델링: 프로빌더는 내장된 도구를 사용하여 기본적인 기하 도형(정육면체, 원기둥 등) 및 다른 모델링 도구를 사용하여 좀 더 복잡한 3D모델을 만들 수 잇다.
2. 편집과 수정: 프로빌더는 객체를 선택하고 이동, 회전, 스케일 등을 수행하는 편집도구를 포함하고 있다. 또한 정점, 엣지, 면 수준에서 세부적인 편집이 가능하다.
3. UV 맵핑: 3D 모델의 텍스처 UV매핑을 프로빌더에서 직접 할 수 있어서 이를 통해 텍스처를 정확하게 표현할 수 있다.
4. 콜리전 설정: 프로빌더는 간단한 콜리전 메쉬를 만들 수 있으며, 이를 통해 게임 캐릭터나 객체와 상호작용하는데 사용될 수 있다.
5. 성능 최적화: 프로빌더는 다른 모델링 도구와 함께 사용되며, 메시의 폴리곤 개수를 최적화하고 게임 성능을 향상시킬 수 있다.
Character Controller 란?
캐릭터 컨트롤러는 유니티에서 캐릭터나 플레이어의 움직임과 충돌을 관리하기 위해 사용되는 컴포넌트이다. 이 컴포넌트는 물리 엔진이 아닌 캐릭터의 움직임을 프레임 기반으로 처리하기 때문에 주로 3D 캐릭터를 제어하는데 사용된다고 한다.
Character Controller의 주요 기능
1. 캐릭터의 이동: 단순한 이동을 쉽게 구현할 수 있도록 메서드를 제공한다. 주로 이동 방향과 속력을 설정하여 캐릭터를 움직인다.
2. 중력 적용: 중력을 적용하여 점프나 떨어짐을 자연스럽게 처리할 수 있다.
3. 바닥 검출: 캐릭터가 바닥 위에 놓이도록 바닥검출을 처리한다. 바닥과의 거리, 표면 노멀등을 고려하여 캐릭터의 높이를 조절하거나 점프가 가능하다.
4. 움직임 제한: 캐릭터 컨트롤러는 움직임을 제한하는 기능도 제공한다.
설치
Inputsystem, Probuilder, Cinemachine 세 가지를 사용하기 위해서는 먼저 설치를 해줘야 한다.
Window -> PackageManager에서 위 세 가지를 다운받아 주도록 하자.
Probuilder 사용하기
설치가 완료 되었다면 tool 창에서 probuilder의 probuilder window를 선택해 창을 꺼내준다. 여기서 위에서 말한것과 같이 우리가 필요한 지형이나 도형을 쉽게 만들 수 있다.
ProBuilder의 좌측 상단에 NewShape를 누르면 원하는 모양의 도형을 만들 수 있다.
점프 테스트나 카메라 테스트를 위해 간단하게 지형을 만들어주도록 하자.
바닥 및 도형만들기
테스트 용 도형이기 때문에 자신이 원하는 대로 만들면 된다.
먼저 바닥에 Plane을 깔아주고 큐브로 올라갈 수 있는 언덕을 만들어 준다.
이렇게 Plane을 깔아주면 저 도형을 제외하고 바닥이 깔리게 된다.
Plane의 크기나 기타 속성들은 Hierarchy창의 Plane을 누르고 Inspector창을 보면 ProBuilder스크립터가 포함되어 있을 것이다. 거기서 size나 모양을 직접 변경시켜 줄 수 있다.
마찬가지로 큐브도 찾아서 한번 만들어 주도록 하자.
그러면 직육면체 혹은 정육면체의 사각기둥 모양이 나오는데 위 그림처럼 언덕을 만들고 싶을때는 엣지부분을 내려주거나 면을 추가해줄 수 있다.
붉은색으로 표시된 부분에서 모양을 바꿔줄 수 있는데 두번째 그림부터 꼭짓점, 모서리, 면의 모양을 바꿔줄 수 있다. 클릭하고 모양의 변화를 주고싶은 부분을 선택하여 x, y, z축을 잡아당겨주면 모양이 변하게 된다.
그러면 앞 모서리의 y축을 끌어다 내리면 미끄럼틀 같은 모양이 나오는데, 뒤에 면을 그대로 잡아당기면 모양이 이상하게 변한다.
그러므로 면뒤에 Exclude Faces를 선택하여 면뒤에 면을 하나 더 만들어주도록 하자.
그러면 위와 같은 모양이 나오고, 다시 전체를 선택하는 첫번째를 선택하여 Center Pivot을 통해 위치와 높이를 조정해주면 된다.
플레이어 생성
에셋에서 가져온 플레이어를 생성해준다. 그런데 아래 사진처럼 분홍색으로 나오는 경우가 있다. 이는 URP관련된 Material처리가 제대로 안됐을 경우에 일어나는 현상이다. 그래서 아래와 같이 convert 해주면 된다.
Input Action 만들기
플레이어 Input Action은 아래와 같이 만들면 된다.
이번에는 Input Action 의 C# Class를 통해 플레이어의 동작을 구현해 보도록 하자.
여기까지했으면 일단 설치 및 세팅은 되었다.
'Unity' 카테고리의 다른 글
로딩 구현하기 (0) | 2023.12.28 |
---|---|
[FSM] 플레이어 상태머신 (2) (0) | 2023.12.27 |
[Unity] FSM (유한 상태 기계) (2) | 2023.12.22 |
깃허브 cherry-pick (3) | 2023.12.20 |
시네머신 카메라 - 버츄얼 카메라 (0) | 2023.12.18 |