본문으로 건너뛰기
게임 수학 · 게임 AI 기초집LESSON 08

회전과 방향 전환

난이도초급
예상 시간40분
선수지식7강의 회전 방향

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 · 추가

GameMathLibrary.h · 추가
UFUNCTION(BlueprintPure, Category = "Game Math")
static FRotator LookAtYaw(FVector From, FVector To);

C++ · 파일 경로: Source/TopDownSurvival/AI/GameMathLibrary.cpp

GameMathLibrary.cpp · Look At
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 사용

MathAIEnemyCharacter.cpp · 즉시 방향 확인
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. 핵심 요약

MINI QUIZ

회전과 방향 전환 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“회전과 방향 전환”에서 비슷한 개념을 구분하는 설명으로 가장 알맞은 것은 무엇인가요?
  2. 문제 2‘Zero 방향의 Rotation을 의미 있는 값으로 사용’ 상태에 관한 “회전과 방향 전환” 본문의 설명으로 가장 알맞은 것은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

8강. 회전과 방향 전환 미완료 상태