케릭터 시점에 따른 애니메이션 조절을 위해
조준점 각도가 필요했다.
GetBaseAimRotation이라는 Pawn에서 함수를 사용한다.
오른쪽으로 회전시키면 180도까지 +를 유지하다, 180도를 넘어가는 순간 -로 바뀌면서 감소한다.
결국 내가 구하고 싶은 값은 (진행방향 - 조준방향)이다.
이를 코드로 표현하자면 애니메이션쪽 코드에
FRotator AimRotation = MyCharacter->GetBaseAimRotation();
FString RotationMessage = FString::Printf(TEXT("Base Aim Rotation: %f"), AimRotation.Yaw);
FRotator MovementRotation = UKismetMathLibrary::MakeRotFromX(MyCharacter->GetVelocity());
FString MovementRotationMessage = FString::Printf(TEXT("Movement Rotation: %f"), MovementRotation.Yaw);
if (GEngine)
{
GEngine->AddOnScreenDebugMessage(4, 0.f, FColor::White, MovementRotationMessage);
}
MovementOffsetYaw = UKismetMathLibrary::NormalizedDeltaRotator(
MovementRotation,
AimRotation).Yaw;
위와 같이 추가했다.
UKismetMathLibrary::MakeRotFromX는 X축의 회전 값을 가져오는 것으로 이해했다.
UKismetMathLibrary::NormalizedDeltaRotator를 사용해서 (진행방향 - 조준방향)의 Y축 각도 값을 가져왔다.