본문 바로가기

프로그래밍

🎮 [Unreal Engine 5] 액터의 상대 위치를 월드 위치로 변환하는 방법

728x90
728x90

 

언리얼 엔진 5(UE5)에서 액터의 상대 위치(Relative Location)월드 위치(World Location) 로 변환하는 방법에 대해 알아보겠습니다.

게임을 만들다 보면, 액터를 기준으로 특정 방향이나 거리만큼 떨어진 지점의 절대 좌표가 필요할 때가 많죠.

예를 들어, 플레이어 캐릭터 앞쪽 100cm 지점에 이펙트를 생성하고 싶을 때!

그럴 땐 이 방법을 쓰면 됩니다 🔧


📌 상대 위치 → 월드 위치 변환 함수 (C++)

아래는 C++로 작성한 함수입니다.

액터를 기준으로 상대 위치를 받아서, 그에 해당하는 월드 위치를 반환해줍니다.

FVector ConvertRelativeToWorldLocation(AActor* Actor, const FVector& RelativeLocation)
{
    if (!Actor)
    {
        return FVector::ZeroVector; // 액터가 유효하지 않으면 (nullptr) 기본값 반환
    }

    // 액터의 위치/회전/스케일 정보를 가져옵니다.
    const FTransform& ActorTransform = Actor->GetActorTransform();

    // 상대 위치를 월드 위치로 변환합니다.
    FVector WorldLocation = ActorTransform.TransformPosition(RelativeLocation);

    return WorldLocation;
}
 

✅ 사용 예시

AActor* MyActor = GetOwner(); // 혹은 타겟 액터를 직접 가져오기
FVector RelativeOffset(100.f, 0.f, 0.f); // 액터 앞쪽 100cm
FVector WorldPosition = ConvertRelativeToWorldLocation(MyActor, RelativeOffset);
 

이렇게 하면 액터 기준으로 앞쪽 100cm 위치에 해당하는 절대 좌표를 얻을 수 있어요.


🧠 핵심 개념 정리

용어
설명
Relative Location
액터를 기준으로 한 위치 (로컬 좌표계)
World Location
맵 전체 기준 위치 (월드 좌표계)
TransformPosition()
변환 정보를 기반으로 상대 좌표를 절대 좌표로 바꿔주는 함수

 


 

💡 응용 예시

  • 총알 생성 위치 계산
  • NPC 시야 체크 위치 설정
  • 카메라 추적 포인트 계산
  • 파티클/이펙트 생성 위치 지정 등등

✨ 마무리

TransformPosition() 함수만 기억해도

상대 위치 → 월드 위치 변환은 문제없이 처리할 수 있어요!

 

 

 

 

728x90
반응형