본캠프_TIL_35일차(블랜더트리로 인한 좀비 움직임 트러블 슈팅)
오늘 한 일 (회고)
오전
- 팀 프로젝트 진행
- 수준별 꾸준실습
오후
- 팀프로젝트 진행
새로 배운 것
오늘은 새로운 블랜더트리란걸 배웠습니다
걷는 애니메이션과 뛰는 애니메이션을 자연스럽게 합칠 수 있게 합니다.
Threshold는 임계값으로
parameter값이 이 1에 가까울 수록 Walking에 가까운 애니메이션이
4에 가까울수록 ZombieRunning에 가까운 애니메이션이 나옵니다.
트러블슈팅
뛰는 애니메이션을 트리블랜더에 추가하면서
좀비가 애니메이션 동작중 멈추는 문제가 발생했었습니다
알고보니 새로 받은 애니메이션이라 loop설정을 만져주지 않아서였습니다.
이 문제를 해결하고 다시 다른 문제에 직면합니다.
idle에서 move로 바뀌는데에 너무 호출을 자주하게 되는 문제가 발생했었습니다.
Speed에 값을 집어넣는 코드를 추가하면서 문제가 생겼었습니다.
animator.speed = agent.speed / data.walkSpeed;
walkSpeed가 1이고 agent.speed가 4일때(runSpeed) animation.speed는 4배속도로 실행됩니다.
walkSpeed가 1이고 agent.speed가 1이면(walkSpeed) 애니메이션은 원래대로 실행됩니다.
이 코드는 agent.speed를 기준 속도로 나누어 애니메이터의 재생속도를 결정합니다.
뛰게 된다면 원래 모션의 4배속을 하게됩니다.
animator.SetFloat("Speed", agent.speed);
다음 추가한 코드를 보면
agent.speed가 4일때(runSpeed) Speed값을 넣어줍니다.
트리 블랜더를 이용했기에 4에 가까울수록 들어가면 달리기 애니메이션이 나옵니다.
하지만 이미 달리기 애니메이션은 동작이 빠릅니다.
여기에 4배속을 해주니 4배 빨라진 달리기 동작이 나오게 되었던 것입니다.
필요없어진 코드는 지워주면서 문제를 해결했습니다.
//animator.speed = agent.speed / data.walkSpeed;
animator.SetFloat("Speed", agent.speed);