[UE5] 언리얼5 Blueprint - BlendSpace_Move

AnJH·2024년 6월 13일
0

BlendSpace_Move

Player의 Move Animation을 만들 때, BlendSpace2D를 통해 Player의 Speed와 Direction값을 받아와서 그에 따른 Animation을 재생시킨다.

  • Player의 Speed와 Direction을 구하는 일반적인 방법

이렇게 플레이어의 움직임을 제어할 경우, Speed값은 0에서 500으로 고정되고, 좌우 Direction값은 -180도에서 180도 사이를 움직이기에 한 번씩 Animation이 튀는 현상이 발생한다.

이를 해결하기 위해 위 방식을 통해 구한 속도와 방향값을 토대로 Player의 움직임을 좀 더 세분화하고자 한다.

  • Sin, Cos 그래프

위 방식을 통해 구한 Direction값은 Player의 움직임에 따라 아래와 같은 값을 반환한다.

Forward : 0 / Back : 180
Right : 90 / Left : -90

Forward Right : 45 / ForwardLeft : -45
Back Right : 135 / BackLeft : -135

이렇게 나오는 값이 각 방향에 따라 완전히 반전되는 값을 반환하기에 해당 값에 Sin, Cos 값을 곱해서 Player의 앞뒤, 좌우에 대한 방향값을 구하는 것이다.

  • Walk Forward / Walk Right

Forward값은 Cos을 통해, Right값은 Sin을 통해 구한다. 이는 각각 Forward, Right일 경우 1을 반환하고, Back, Left일 경우, -1을 반환한다.

속도값은 Player가 앞으로 움직일 경우, 무조건 MaxWalkSpeed의 값과 같아지기에 이 둘을 곱함으로써 Player의 움직임을 좀 더 세분화할 수 있다.

0개의 댓글