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

좌표계와 위치

난이도입문
예상 시간35분
선수지식1강의 AI 구조

2강. 좌표계와 위치

1. 이번 강의에서 해결할 문제

적이 회전하면 “앞쪽 100” 위치가 달라지는데 월드 X축에 숫자를 더해 공격 지점을 계산하고 있습니다. 월드 기준 위치와 Actor 기준 로컬 위치를 구분합니다.

2. 학습 목표

3. 핵심 개념

좌표는 기준이 있어야 의미가 있습니다. 월드 좌표는 레벨 전체의 공통 기준이고 로컬 좌표는 Actor 또는 Component의 위치·회전·크기를 기준으로 합니다.

Unreal의 기본 축은 X가 Forward, Y가 Right, Z가 Up입니다. 다른 엔진은 축 정의와 회전 표현이 다를 수 있지만 “기준 좌표계 사이를 변환한다”는 원리는 같습니다.

4. 단계별 실습

C++ · 파일 경로: Source/TopDownSurvival/AI/CoordinateProbe.h

CoordinateProbe.h
#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "CoordinateProbe.generated.h"

UCLASS()
class TOPDOWNSURVIVAL_API ACoordinateProbe : public AActor
{
GENERATED_BODY()

public:
UFUNCTION(BlueprintCallable, Category = "Math")
FVector LocalPointToWorld(FVector LocalPoint) const;

UFUNCTION(BlueprintCallable, Category = "Math")
FVector WorldPointToLocal(FVector WorldPoint) const;
};

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

CoordinateProbe.cpp
#include "AI/CoordinateProbe.h"

FVector ACoordinateProbe::LocalPointToWorld(FVector LocalPoint) const
{
return GetActorTransform().TransformPosition(LocalPoint);
}

FVector ACoordinateProbe::WorldPointToLocal(FVector WorldPoint) const
{
return GetActorTransform().InverseTransformPosition(WorldPoint);
}

Blueprint 작업

BP_CoordinateProbe를 만들고 Actor를 Yaw 90도로 회전합니다. LocalPointToWorld에 (100, 0, 0)을 전달해 Debug Sphere를 그리면 Actor의 회전된 앞쪽에 표시됩니다.

Unreal Editor 작업

Details의 World Transform과 Component의 Relative Transform을 번갈아 확인합니다. 부모 Component를 회전해 자식의 World 위치가 달라지는지 관찰합니다.

5. 코드와 수학·AI가 동작하는 이유

TransformPosition은 로컬 점에 Scale과 Rotation을 적용한 뒤 Translation을 더합니다. InverseTransformPosition은 반대 순서의 역변환으로 월드 점을 Actor 기준으로 되돌립니다. 로컬 X가 양수면 적 앞쪽, Y 부호는 좌우를 나타내므로 AI 판단을 회전과 무관하게 작성할 수 있습니다.

6. 자주 하는 실수와 해결법

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

좌표계와 위치 미니 퀴즈

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

0 / 2
  1. 문제 1“좌표계와 위치” 내용을 실제 작업에 적용한 설명으로 가장 알맞은 것은 무엇인가요?
  2. 문제 2‘축 정의를 다른 엔진과 같다고 가정’ 상태에 관한 “좌표계와 위치” 본문의 설명으로 가장 알맞은 것은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

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

2강. 좌표계와 위치 미완료 상태