르탄이의 애니메이션을 경우에 따라 다르게 적용하기 위해 state machine이라는 것을 하나 만들었다.
캐스트인 경우 변환이 가능한 경우 이것을 BP_Character로 전달해준다.
여기서 르탄이가 떨어지는 애니메이션을 재생할 때의 조건이 필요한데, 이것은 이벤트 그래프에서 코드로 구현한다.
BlueprintUpdateAnimation은 계속 반복적으로 재생되며, pawn owner을 bp_character로 캐스팅 한것이 떨어지면 is falling을 true로 세팅해준다.
이렇게 하면 진짜 떨어질 때 떨어지는 애니메이션이 나오게 된다
idle 르탄이에서-> walk 르탄이 -> run 르탄이는 속도에 따라 변화한다는 것을 알 수 있다.
여기서 필요한 것이 애니메이션 블랜드이다. 이것은 애니메이션을 합쳐져 중간 정도의 상태를 표시할 수있다. 아래와 같이 idle, walk, run을 넣어주고 가로축 값을 speed로 놓고 속도에 따라 애니메이션이 변화하도록 만들었다
근데 여기서 속도를 지정해줘야 하는 곳이 등장했다.
이벤트 그래프로 돌아가서 CharacterMovement에서 get velocity를 가져와 속도를 가져온다. 이 값에서 z축은 제거해줘야 하는데 그 이유는 떨어지는 속도는 상관이없기 때문이다. 그럼 velocity를 가져와 z축이 제거된 2d 길이를가져오면 이게 속도이기 때문에 변수에 저장해준다
처음보는 alias는 여기서 선택한 상태를 다른 상태로 바꿀 수 있다는 의미이다.
처음에는 bs_idle로 가는데 여기서는 속도에 따라 3가지로 나뉘고 섞어준다. alias에서 idle 상태이거나 착지일때 만약 떨어지는 상태가 되면 fall을 실행시키고 시간이 지나면 loop fall을 실행시킨다. 그리고 alias_1에서 떨어지는 상태가 아니게 되면 land를 실행시키고 시간이 지나면 idle이 된다.
블랜드 세팅은 애니메이션 전환 시 뚝뚞 끊기는 것을 방지하기 위한 기능이다.