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
반응형
'프로그래밍' 카테고리의 다른 글
C++ 개발 생산성 극대화! 기본값을 지원하는 Getter/Setter 자동 생성 매크로 (수정 및 개선) (0) | 2025.05.22 |
---|---|
🎮 [언리얼 엔진 5] FGameplayTag에서 특정 단어 포함 여부 확인하는 방법 (0) | 2025.05.20 |
🎮 언리얼 엔진5에서 특정 클래스의 액터 찾기 (C++ ) (1) | 2025.05.09 |
🎮 [언리얼 엔진 5] UWorldSubsystem에서 파라미터 복제(Replicate) 구현 방법! (0) | 2025.05.08 |
🎮 언리얼 엔진5(Ue5) – UActorComponent에서 TArray 변수 복제(Replicate)하기 (0) | 2025.04.25 |