플레이어 캐릭터에 제대로 된 텍스쳐 입히기

  • 기존 Player 프리팹의 자식으로 텍스쳐 프리팹을 둠
  • 그리고 Player 프리팹에 있던 캡슐 메쉬와 캡슐 콜리더 삭제
  • NavMeshAgent 기준점도 0으로 변경
  • 캐릭터 메쉬 크기에 맞게 NavMeshAgent 두께 조절하기
  • 네스티드 프리팹 : 프리팹 안에 프리팹이 저장되어 있는 것

플레이어 캐릭터 움직이기

  • Animator 컴포넌트 : 게임 오브젝트에 애니메이션을 할당함

  • Animator Controller : 애니메이션과 트랜지션(상태 변화)의 배열

  • Animation : 구체적인 움직임

  • Blend Tree : 여러 개의 애니메이션을 갖고 자연스럽게 연결함

  • Animator Controller 설정

    1. Entry : 게임이 시작되었을 때의 상태. 애니메이터가 생성된 상황
    2. 빈 공간 우클릭 > New Blend Tree : 새 블렌드 트리를 생성함
    3. 블렌드 트리 더블클릭 : 블렌드 트리 수정 가능
    4. Add Motion Field : 블렌드 트리에서 섞을 모션을 추가함
    5. Blend 변수 조작 : Blend 변수에 따라 모션을 다르게 섞을 수 있음!
  • Animator 컴포넌트 설정 :

    1. 생성한 Animator Contorller를 드래그 앤 드롭
    2. Avatar의 경우 제대로 설정하지 않으면 애니메이션과 메쉬/리깅 정보가 안맞아서 오류날 수 있음
    3. Apply Root Motion을 적용하면 애니메이션 시스템 자체가 캐릭터가 가는 방향으로 움직임
    • 저걸 적용하면 캐릭터의 움직임이 우선순위가 아니라, 애니메이션을 우선적으로 판단하기 때문에 애니메이션이 한 번 움직이는 만큼 무조건 움직여야 함.
  • 컨텍스트 정리 :

    • 속도 : 시간에 따른 속도 변화 (!= 속력)
    • NavMeshAgent는 속도를 가고자 하는 방향과 해당 위치까지의 속력을 묶음으로 봄
    • 우리의 캐릭터 이동 애니메이션은 Z축 이동 속도에 관심이 있음
  • 목표 :

    1. NavMeshAgent에서 전역 속도를 가져옴 (좌회전/우회전 개념 X)
    2. 이 속도를 캐릭터에 연결된 로컬 변수로 변환함
    3. 애니메이터의 Blend 변수를 캐릭터의 전진 속력으로 설정함
  • 애니메이션 구조를 보면 기준 트랜스폼이 나와있음. Blend의 모션 임계값을 자동 설정하지 않으면 기준 트랜스폼을 따라감

16.움직임에 애니메이션 적용 일부 완료