회전과 방향 전환
8강. 회전과 방향 전환
1. 이번 강의에서 해결할 문제
적이 이동은 하지만 옆을 보거나 Pitch까지 기울어집니다. 목표 방향을 회전으로 바꾸고 탑다운 규칙에 맞게 Yaw만 사용합니다.
2. 학습 목표
3. 핵심 개념
Rotator는 Unreal에서 Degree 단위 Euler 회전을 표현합니다. 탑다운 평면에서 주로 사용하는 값은 Z축 회전인 Yaw입니다. Actor Forward Vector는 현재 회전에서 계산된 로컬 X축의 월드 방향입니다.
Look At은 Target - Start 방향을 회전으로 바꾸는 작업입니다. 다른 엔진에서는 Quaternion 또는 LookRotation API를 사용할 수 있지만 “목표 방향 벡터를 회전 표현으로 변환한다”는 원리는 같습니다.
4. 단계별 실습
C++ · 파일 경로: Source/TopDownSurvival/AI/GameMathLibrary.h · 추가
UFUNCTION(BlueprintPure, Category = "Game Math")
static FRotator LookAtYaw(FVector From, FVector To);
C++ · 파일 경로: Source/TopDownSurvival/AI/GameMathLibrary.cpp
FRotator UGameMathLibrary::LookAtYaw(FVector From, FVector To)
{
FVector Direction = To - From;
Direction.Z = 0.0f;
if (Direction.IsNearlyZero())
{
return FRotator::ZeroRotator;
}
const FRotator LookAt = Direction.Rotation();
return FRotator(0.0f, LookAt.Yaw, 0.0f);
}
Enemy Character 사용
void AMathAIEnemyCharacter::FaceTargetImmediately(const FVector& TargetLocation)
{
const FRotator Desired = UGameMathLibrary::LookAtYaw(
GetActorLocation(), TargetLocation);
SetActorRotation(Desired);
}
Unreal Editor 작업
CharacterMovement의 Orient Rotation to Movement와 Controller Desired Rotation 옵션이 직접 SetActorRotation과 경쟁하지 않는지 확인합니다. 한 가지 회전 소유 방식을 정하고 다음 강의에서 부드럽게 보간합니다.
5. 코드와 수학·AI가 동작하는 이유
목표 변위의 Rotation은 로컬 X축이 그 방향을 향하게 하는 Rotator를 만듭니다. Z를 0으로 만들고 Pitch와 Roll을 0으로 고정해 높이 차이 때문에 적이 기울어지는 일을 막습니다. 목표와 위치가 같으면 방향이 정의되지 않아 현재 회전을 유지하는 정책이 더 좋으며 호출자가 검사할 수 있습니다.
6. 자주 하는 실수와 해결법
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
회전과 방향 전환 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.