[Unity]01.서바이벌 슈터 따라하기 #1 - 캐릭터와 맵 만들기

안녕하세요 유랑입니다.



오늘부터 Unity3d 응용편을 진행하겠습니다.

기존에 만들어져있던 게임이나 간단한 새로운 게임을 만들어 보겠습니다.




1. 서바이벌 슈터



서바이벌 슈터는 유니티에서 제공하는 3d 캐주얼 fps게임입니다.

튜토리얼이 제공되어 있어서 공부겸 글을 올려보겠습니다^^







1-1) 프로젝트 생성 및 셋팅



프로젝트 이름과 위치를 지정하고 생성해 주세요.







단축키 Ctrl + 9를 이용해서 에셋스토어에 접속하시고 Survival Shooter Tutorial을 입력해 주세요.

유니티에서 제공되는 에셋으로 무료이며, 완성되었기에 공부하시는데 지장은 없을거에요.





에셋을 다운받으셨으면 Complete-Game씬을 실행시켜 게임을 해보겠습니다.

우선 만들기 전에 어떤게임인지 감을 잡으시기를 바랍니다ㅎㅎ





생각보다 어두운 환경에서 좀비? 들을 잡는 디펜스 게임이네요.






1-2) 맵 만들기 - ㉠배경



이제 맵을 구성해 볼거에요.

어렵지 않아요. 프리팹이라고 미리 만들어져있는 맵을 사용하겠습니다.

Environment를 찾아서 드래그앤 드랍을 이용해 하이라키뷰에 옮겨주세요.

우측 하단에 보면 Baking을 하고 있을텐데 이것은 맵에 따른 광원효과를 셋팅하고 있는 과정입니다.







1-3) 맵 만들기 - ㉡조명



배경에는 조명도 빠질 수 없습니다.

Lights 프리팹도 마찬가지로 옮겨 주세요.

배경과 조명을 통해서 어느정도 맵구성이 완성되었습니다^^









1-4) 맵 만들기 - ㉢바닥



바닥을 만들어보겠습니다.

바닥을 만드는 이유는 충돌처리를 위해서입니다.

배경을 이용해서도 가능하지만 비효율적인 요소이기 때문에 

Quad를 생성한 후 트랜스폼을 다음과 같이 변경해 주세요.






Quad오브젝트의 이름을 Floor로 변경한 뒤 Mesh Renderer를 삭제해 주세요.

렌더러는 Quad의 모야을 표현해주지만 여기서는 필요없습니다.

Collider부분을 이용해 충돌처리를 해주기 때문이죠.






1-5) 맵 만들기 - ㉣배경음악



빈 오브젝트를 생성한 후 BackGroundMusic이라는 이름으로 변경한 뒤

Audio Source 컴포넌트를 추가해 주겠습니다.

이 오브젝트는 앞으로 배경음악을 실행시켜줄거에요.

셋팅은 다음과 같이 진행해 주세요.


- AudioCllip => 재생되는 사운드 클립

- Player On Awake => 해당 오브젝트가 활성화되면 음악이 실행됨

- Loop => 음악을 반복 실행

- Volume => 소리 크기







1-6) 캐릭터 만들기 - ㉠캐릭터


캐릭터를 생성해 주겠습니다.

Player를 드래그앤 드랍을 이용해서 하이라키 뷰에 옮겨주세요.

앞으로 우리가 사용할 플레이어이고, 3인칭 뷰를 사용하겠습니다.







1-7) 캐릭터 만들기 - ㉡애니메이터


플레이어가 가만히 있거나, 움직이거나, 맞았을 때 애니메이션 처리가 필요합니다.

그걸 구성해 보겠습니다.

프로젝트뷰에서 마우스 우측 버튼을 이용해 Animator Controller를 생성해 줄게요.






애니메이터는 애니메이션 상태를 정리하는데 사용합니다.

이제 세 가지의 애니메이션 상태를 이용해 셋팅해 줄텐데요.

Death, Idle, Move를 애니메이터에 옮겨주겠습니다.

애니메이터뷰는 애니메이터를 더블 클릭하면 실행시킬 수 있습니다.





파라미터는 애니메이터 상태가 변경되는 조건이기도 합니다.

플러스 버튼을 이용해 Trigger인 Die와 Bool인 IsWalking을 만들어 주세요.





Idle을 마우스 우측버튼을 이용해 default로 만들어 줍니다.(처음 실행되는 애니메이션 상태)

Idle과 Move를 마우스 우측 버튼을 이용해 서로 Transition 시켜준 뒤 다음과 같이 설정해 주겠습니다.

Has Exit Time은 애니메이션 상태가 변경될 때 그 전 애니메이션을 끝까지 실행시키고 변경됩니다.


- Idle -> Move => Has Exit Time : 언체크, Is Walking : true

- Move -> Idle => Has Exit Time : 언체크, Is Walking : false







Any State는 이름 그대로 어떤 애니메이션 상태일때든 반드시 실행시켜줍니다.

그렇기에 사용하실 때는 조심하셔야됩니다.


- AnyState -> Death => Has Exit Time : 언체크, Die






1-8) 캐릭터 만들기 - ㉢충돌처리 조건



충돌처리를 하려면 양 쪽에 콜라이더가 존재해야 하며, 둘 중 하나는 Rigidbody가 있어야 합니다.

보통 움직이는 물체에 Rigidbody가 필요한데요.

저는 Player에 Rigidbody와 Capsule Collider를 추가해 주겠습니다

여기서 Drag는 저항을 뜻하는데 무한대로 설정해 주면 물체가 즉시 멈춥니다.


- Drag : 이동 마찰계수

- Angular Drag : 회전 마찰 계수

- Freeze Position : 해당 축으로 이동할 수 없음

- Freeze Rotation : 해당 축으로 회전할 수 없음






보통 캐릭터들에게는 Capsule Collider를 사용합니다.

Sphere 다음으로 성능이 좋은편이고 모양이 맞기에 적절하기에 사용하겠습니다.


- Center : 콜라이더의 위치

- Radius : 반지름

- Height : 높이






1-9) 캐릭터 만들기 - ㉣효과음


캐릭터가 피격당했을 때의 효과음을 넣어보겠습니다.

Audio Source컴포넌트 추가후 해당 오디오클립을 넣어주세요.

자세한 설정은 추후 진행하도록 하겠습니다.









2. 마무리



오늘 강의는 여기까지입니다.

서바이벌 슈터 따라하면서 캐릭터와 맵을 만들어 보았습니다.

다음 시간에는 카메라에 대해서 다뤄보겠습니다.

감사합니다.




수업자료: https://github.com/YouRang12/-Tistory-Unity---Extra-3D-




댓글

Designed by JB FACTORY