플레이어 캐릭터에 제대로 된 텍스쳐 입히기
- 기존 Player 프리팹의 자식으로 텍스쳐 프리팹을 둠
- 그리고 Player 프리팹에 있던 캡슐 메쉬와 캡슐 콜리더 삭제
- NavMeshAgent 기준점도 0으로 변경
- 캐릭터 메쉬 크기에 맞게 NavMeshAgent 두께 조절하기
- 네스티드 프리팹 : 프리팹 안에 프리팹이 저장되어 있는 것
플레이어 캐릭터 움직이기
-
Animator 컴포넌트 : 게임 오브젝트에 애니메이션을 할당함
-
Animator Controller : 애니메이션과 트랜지션(상태 변화)의 배열
-
Animation : 구체적인 움직임
-
Blend Tree : 여러 개의 애니메이션을 갖고 자연스럽게 연결함
-
Animator Controller 설정
- Entry : 게임이 시작되었을 때의 상태. 애니메이터가 생성된 상황
- 빈 공간 우클릭 > New Blend Tree : 새 블렌드 트리를 생성함
- 블렌드 트리 더블클릭 : 블렌드 트리 수정 가능
- Add Motion Field : 블렌드 트리에서 섞을 모션을 추가함
- Blend 변수 조작 : Blend 변수에 따라 모션을 다르게 섞을 수 있음!
-
Animator 컴포넌트 설정 :
- 생성한 Animator Contorller를 드래그 앤 드롭
- Avatar의 경우 제대로 설정하지 않으면 애니메이션과 메쉬/리깅 정보가 안맞아서 오류날 수 있음
- Apply Root Motion을 적용하면 애니메이션 시스템 자체가 캐릭터가 가는 방향으로 움직임
- 저걸 적용하면 캐릭터의 움직임이 우선순위가 아니라, 애니메이션을 우선적으로 판단하기 때문에 애니메이션이 한 번 움직이는 만큼 무조건 움직여야 함.
-
컨텍스트 정리 :
- 속도 : 시간에 따른 속도 변화 (!= 속력)
- NavMeshAgent는 속도를 가고자 하는 방향과 해당 위치까지의 속력을 묶음으로 봄
- 우리의 캐릭터 이동 애니메이션은 Z축 이동 속도에 관심이 있음
-
목표 :
- NavMeshAgent에서 전역 속도를 가져옴 (좌회전/우회전 개념 X)
- 이 속도를 캐릭터에 연결된 로컬 변수로 변환함
- 애니메이터의 Blend 변수를 캐릭터의 전진 속력으로 설정함
-
애니메이션 구조를 보면 기준 트랜스폼이 나와있음. Blend의 모션 임계값을 자동 설정하지 않으면 기준 트랜스폼을 따라감