다음으로 AnimBlueprint 계층에서 Direction을 계산하고 이를 통해 BlendSpace를 업데이트해줘야 한다.
Direction 계산은 블루프린트 노드가 있어서 간단하다.
문제는 이렇게만 해주면 약 55도 정도의 오차가 생긴다. 그 이유는 CharacterMovementComponent의 Orient rotation to movement 때문이다.
Orient rotation to movement는 기본값이 True다. 이게 True이기 때문에 MoveRight 등에서 AddMovementInput()으로 값만 넘겨줘도 알아서 이쁘게 회전해주는 것이다. 근데 문제는 Strafe 상태일때는 이 기능이 있으면 안된다. 옆으로 움직여도 계속 앞을 봐야하기 때문이다. 그래서 LockOn을 할때마다 이 기능을 꺼줘야 한다.