캐릭터의 이동 및 회전 :: Character Controller
이전 포스트의 Character Controller 컴포넌트를 활용하여 캐릭터를 이동 스크립트를 간편하게 작성해봅니다.
유니티3D 에디터에서
스크립트 생성
프로젝트 창에서 PlayerController.cs
스크립트를 생성합니다.
PlayerController.cs
스크립트를 열어 다음과 같이 작성합니다.
Beatchoi's Blog
List of Postings
이전 포스트의 Character Controller 컴포넌트를 활용하여 캐릭터를 이동 스크립트를 간편하게 작성해봅니다.
프로젝트 창에서 PlayerController.cs
스크립트를 생성합니다.
PlayerController.cs
스크립트를 열어 다음과 같이 작성합니다.
저번 포스팅에 이어 애니메이션을 추가해보고 추가한 애니메이션들을 제어해봅니다.
Mixamo.com
페이지에서 애니메이션들을 추가해서 받아봅니다.
먼저 캐릭터가 가만히 있을때 재생되는 Idle
애니메이션을 다운로드 받습니다.
<01. Idle 애니메이션 다운로드>
그리고 뒤로 걸어가는 애니메이션을 다운로드 받습니다.
검색은 back walk
로 합니다.
<02. Walk back 애니메이션 다운로드>
유니티 프로젝트의 Project
창에서 폴더를 하나 새로 만듭니다.
애니메이션 모델링 파일을 정리할 Modelings
파일을 만듭니다.
<03. Modelings 폴더 생성>
해당 폴더 안에 다운로드 받은 애니메이션 모델링 파일들과 이전에 받은 걷기 애니메이션 모델링 파일을 넣습니다.
<04. 파일 정리>
저번 포스팅에서 다루었던 Animator Controller
파일인 Character Controller
파일을 더블클릭하여 열어줍니다.
해당 컨트롤러에 방금 임포트한 뒤로걷기 및 Idle 애니메이션을 드래그하여 애니메이션 클립을 드래그 앤 드롭하여 불러와줍니다.
<05. 애니메이션 클립 불러오기>
이제 기본 상태를 변경해주어야 합니다. 현재 보이시는 오렌지색 클립이 기본 상태 클립입니다.
기본 상태 클립은 애니메이션 컨트롤러가 시작하였을때 또는 아무런 입력이 없을 때 기본으로 실행되는 상태입니다.
우리는 Idle
애니메이션을 기본상태로 지정할 것입니다.
Idle
애니메이션 클립에서 마우스 오른쪽 클릭을 하고 Set as Layer Default State
항목을 선택합니다.
그러면 다음과 같이 회색의 상태가 오렌지색으로 바뀌며 Entry
에서의 화살표가 변경되는 것을 확인할 수 있습니다.
<06. 애니메이션 상태 변경>
이제는 애니메이션 상태 클립끼리의 방향을 지정해 주어야 합니다.
방향이란 어떠한 애니매이션 상태에서 다른 애니메이션 상태로 변경이 될 수 있도록 길을 만들어 주는 과정이라고 생각하시면 됩니다.
먼저 오렌지색 기본 Idle
상태에서 마우스 오른쪽 크릭을 하여 Make Transition
항목을 클릭합니다.
그러면 마우스에 화살표가 이어지는데 이 상태에서 다른 애니메이션 상태 클립을 클릭하면 화살표가 이어지게 됩니다.
이 화살표는 Idle
상태에서 이어진 상태로 변경이 가능하다 라는 의미를 가집니다. 반대도 지정해 주도록 합니다.
이렇게 각각 Walk
와 Back Walk
애니메이션과 Idle
애니메이션을 연결해 주면 됩니다.
<07. 애니메이션 상태끼리 연결>
현재 상태는 아무런 조건이 없기 때문에 Idle
, Walk
, Back Walk
상태 끼리 제약없이 애니메이션 변경이 가능합니다.
우리는 앞으로 가는 키를 눌렀을 때 Walk
,
뒤로가는 키를 눌렀을 때 Back walk
,
가만히 있을 때 Idle
애니메이션을 실행시킬 것이기 때문에 다음과 같이 조건을 지정해 줄 것입니다.
저번 포스팅에서 불러온 모델링 파일을 활용하여 애니메이션을 구현해봅니다.
애니메이션 컨트롤러를 활용하여 애니메이션을 조정합니다.
이전 유니티 프로젝트의 Project
에서 애니메이션 모델링 파일을 선택합니다.
우측 Inspector
창에서 상단 Animation
탭을 선택하고 하단 Loop Time
항목을 체크합니다.
그리고 우측 하단에 Apply
버튼을 눌러 적용시킵니다.
걸어다니는 애니메이션의 경우 걷는모션이 연속되기때문에 애니메이션에 루프를 걸어주는 역할을 합니다.
해당 항목이 체크되어있지 않으면 애니메이션이 한번 걷고 멈추게 됩니다.
<01. Loop Time 체크>
그리고 Inspector
창 하단에서 플레이 버튼을 누르면 다음과 같이 애니메이션을 확인할 수 있습니다.
<02. 애니메이션 체크>
Project
창에 임포트한 모델링을 계층구조창
으로 끌어다 놓습니다.
생성한 모델링을 선택하여 우측 Inspector
창에서 Animator
라는 컴포넌트를 추가합니다.
<03. `Animator`컴포넌트 추가>
Project
창에서 Animator Controller
파일을 생성합니다.
해당 파일이 캐릭터의 애니메이션을 관장하게 됩니다.
해당 파일의 이름을 CharacterController
로 수정합니다.
<04. Animator Controller 생성>
생성한 CharacterController
파일을 더블클릭하면 Animator
창이 열립니다.
Animator
창은 다음과 같이 생겼습니다.
<05. Animator 창>
Project
창에서 임포트한 캐릭터 애니메이션 모델링 파일을 Animator
창으로 그대로 드래그 앤 드롭 합니다.
이렇게 생성된 오렌지색 박스가 우리가 임포트한 걸어다니는 애니메이션 클립
입니다.
<06. 애니메이션 클립 등록>
계층구조창에서 만들어 놓은 캐릭터를 선택하여 우측 Inspector
창의 Animator
컴포넌트의 Controller
항목에
Project
창에 생성해놓은 CharacterController
파일을 연결시킵니다.
이렇게 되면 우리가 만든 Animator Controller
와 캐릭터가 연동됩니다.
<07. 애니메이터 컨트롤러 연걸>
유니티 에디터 상단에 플레이 버튼을 눌러 캐릭터가 걷기 애니메이션을 재생하는지 확인합니다.
<08. 걷기 애니메이션>
어도비 믹사모 캐릭터와 애니메이션을 활용하여 유니티에서 캐릭터의 움직임을 적용해 봅시다.
물론 상업적으로 이용할 시 비용이 발생하는 점 유의 해야하며 관련 저작권도 조심해야 합니다.
Mixamo.com
에 접속합니다.
회원가입 및 로그인을 진행합니다.
<01. 믹사모 사이트 접속>
로그인 시 다음과 같은 화면으로 진입할 것입니다.
다음 창에서 좌측 상단 Characters
탭을 선택합니다.
<02. 믹사모 로그인>
<03. Character 탭 선택>
Character
탭에서 보이는 여러 캐릭터중 마음에 드는 캐릭터 하나를 선택합니다.
저는 Racer 캐릭터를 선택하겠습니다.
<04. 캐릭터 선택>
해당 캐릭터를 선택하고 로딩이 완료되면 다음과 같은 T포즈를 하고있는 캐릭터를 좌측 창에서 확인할 수 있습니다.
<05. 캐릭터 확인>
이번엔 애니메이션 선택을 위해 좌측 상단 Animation
탭을 선택합니다.
<06. Animation 탭 이동>
Animation
탭에는 다양한 종류의 애니메이션이 존재합니다.
여러 애니메이션 중 걸어가는 애니메이션을 선택해보겠습니다.
검색창에 Walk
를 검색하고 마음에 드는 걷기 애니메이션을 선택합니다.
<07. 걷기 애니메이션 선택>
걷기를 선택하게되면 보통 우측에 다음과 같이 걷는 애니메이션 샘플이 보여집니다.
<08. 걷기 애니메이션>
현재 보여지는 애니메이션은 애니메이션 자체에 앞으로 이동하는 모션이 들어가 있어서 활용하기 힘듭니다.
우측 탭에서 In Place
항목을 체크하여 제자리에서 걷는 애니메이션으로 변경합니다.
<09. 제자리 걷기 애니메이션>
우측 Download
버튼을 누르면 다음과 같은 창이 생성되고 동일한 옵션으로 선택한 뒤 우측하단 Download 버튼을 누릅니다.
<10. 애니메이션 다운로드>
##유니티에서
다운로드가 완료되면 유니티 프로젝트를 생성하고 Project
창에 다운로드받은 애니메이션 파일을 임포트합니다.
<11. 애니메이션 파일 임포트>
임포트한 모델링 파일을 확인해보면 다음과 같이 캐릭터의 텍스쳐가 비어있는 경우가 있습니다.
원래는 붉은색 옷을 입고있어야 하는데 텍스쳐가 비어 흰색으로 나타난 경우입니다.
<12. 텍스쳐 확인>
이럴땐 당황하지 말고 Project
창에서 임포트한 모델링 파일을 선택한 뒤 Inspector
창을 확인합니다.
선택한 김에 해당 파일에 애니메이션이 존재하는지도 확인합니다.
<13 모델링 파일 선택>
Inspector
창에서 상단 우측 Materials
탭을 선택하고 세번째 항목의 Textures
버튼을 클릭합니다.
<12. Materials & Textures>
텍스쳐를 뽑아줄 것입니다.
Textures
버튼을 선택하는 창에서 Materials
폴더를 하나 생성하여 해당 폴더를 선택합니다.
<13. 텍스쳐 추출>
NormalMap Settings
라는 창이 뜨게되면 Fix now
버튼을 눌러줍니다.
<14. NormalMap Settings>
다음과 같이 텍스쳐가 캐릭터에 입혀진 것을 확인할 수 있습니다.
<15. 캐릭터 텍스쳐>
유니티에서 MirrorNetwork
를 활용하여 플레이어의 캐릭터
를 구현하고 주의해야할 점을 알아봅니다.
패키지 매니저에서 Mirror
에셋을 다운로드 받고 임포트까지 완료합니다.
<01. Mirror 에셋 임포트>
Latest Posts
Lightship의 geofencing 기능을 구현할 수 있는 Maps SDK 활용법을 알아봅니다.
본 포스팅은 ARDK 3.9 버전, Maps SDK 0.4 버전을 기준으로 작성합니다. 이전 포스팅을 참조하여 SDK를 임포트 합니다.
UI 객체들의 위치, 크기, 기준점 등등을 담당하는 Rect Transform에 대하여 알아봅니다.
Unity UI는 게임 및 애플리케이션용 사용자 인터페이스를 개발하는 데 쓰이는 간단한 UI 툴킷입니다. Unity UI는 게임 오브젝트 기반 UI 시스템으로, 컴포넌트와 게임 뷰를 사용하여 사용자 인터페이스를 배열하고 위치와 스타일을 지정합니다. Unity UI는 Unity 에디터 내 사용자 인터페이스에 대해 사용할 수 없습니다.https://docs.unity3d.com/kr/2019.1/Manual/UIToolkits.html