로컬 좌표와 월드 좌표

Jaemyeong Lee·2024년 12월 18일
0

입문자를 위한 UE5

목록 보기
40/60

1. 좌표계 개념

1.1 월드 좌표(World Coordinate)

  • 정의: 맵(게임 세계) 전체를 기준으로 하는 절대적인 좌표계입니다.
  • 특징:
    • 월드의 0,0,0 지점을 기준으로 x, y, z 축이 고정되어 있습니다.
    • 게임 세상 모든 오브젝트가 공유하는 공통 좌표입니다.
  • 활용:
    • 오브젝트의 절대적인 위치나 방향을 구할 때 사용합니다.

1.2 로컬 좌표(Local Coordinate)

  • 정의: 해당 오브젝트가 바라보는 방향을 기준으로 하는 상대적인 좌표계입니다.
  • 특징:
    • 오브젝트 자체가 기준점이 됩니다.
    • 각 오브젝트마다 자신만의 좌표계를 가지고 있습니다.
    • 로컬 좌표의 x, y, z 방향은 오브젝트의 방향에 따라 달라집니다.
  • 활용:
    • 오브젝트를 상대적인 방향으로 이동시키거나 회전시킬 때 사용합니다.
    • 예: 플레이어 기준으로 "앞으로 이동" 시, 플레이어의 바라보는 방향이 기준이 됩니다.

2. 로컬 좌표와 월드 좌표 변환하기

2.1 변환 방법

  • 아이콘:
    • 화면 우측 상단에 있는 지구본 아이콘삼각형 아이콘을 클릭하여 변환합니다.
    • 지구본월드 좌표
    • 삼각형로컬 좌표

2.2 단축키

  • Ctrl + ` 를 누르면 로컬 좌표 ↔ 월드 좌표 변환이 가능합니다.

3. 실습: 로컬 좌표와 월드 좌표 활용

3.1 실습 개요

플레이어가 몬스터의 방향으로 이동하도록 설정합니다.


3.2 단계별 실습

  1. 벡터 타입 변수 생성
    • 벡터(Vector): 방향과 크기를 나타냅니다.
    • 단위 벡터(Unit Vector): 크기를 1로 정규화한 벡터입니다.

  1. 각 객체의 위치 가져오기
    • Get Actor Location 노드:
      • 각 객체(플레이어, 몬스터)의 위치를 벡터값으로 가져옵니다.

  1. 두 객체 간의 벡터 구하기
    • 공식:
      [방향벡터=몬스터 위치플레이어 위치방향 벡터 = \text{몬스터 위치} - \text{플레이어 위치}]
    • Normalize 노드:
      • 위에서 구한 방향 벡터를 정규화(Normalization) 하여 단위 벡터를 생성합니다.
    • 단위 벡터를 NormalizedDirection 변수에 저장합니다.

  1. 플레이어 이동 구현
    • Event Tick 노드:
      • 매 프레임마다 이벤트를 발생시킵니다.
    • Set Actor Location 노드:
      • 플레이어의 위치를 이동시키는 노드입니다.
    • 이동 로직:
      • 공식:
        [새로운위치=현재위치+(단위벡터×속도×DeltaTime)새로운 위치 = 현재 위치 + (단위 벡터 \times 속도 \times DeltaTime)]
      • Delta Seconds: 매 프레임의 시간 변화량입니다.
      • 속도를 곱하여 프레임마다 일정한 속도로 이동하도록 설정합니다.

  1. 이동 문제 해결
    • 문제: 실행 시 에러가 발생하고 플레이어가 움직이지 않습니다.
    • 원인: 객체의 이동 속성이 Static(정적)으로 설정되어 있습니다.
    • 해결 방법:
      • Mobility 속성을 Movable(이동 가능)로 변경합니다.

  1. 속도 유동적으로 설정하기
    • 단위 벡터에 속도DeltaTime을 곱하여 이동합니다.
    • 결과:
      • 컴퓨터 성능에 상관없이 일정한 속도로 객체가 이동합니다.

  1. 플레이어의 이동 중단 조건
    • Vector Length 노드:
      • 두 객체(플레이어와 몬스터) 간의 거리를 구합니다.
    • 조건:
      • 만약 두 객체 간의 거리가 일정 사거리 이내라면 이동을 멈춥니다.
    • Set Actor Location 노드의 실행을 조건에 따라 멈추게 합니다.

4. 월드 좌표와 로컬 좌표의 차이점 요약

구분월드 좌표로컬 좌표
기준게임 맵(세상)의 0,0,0을 기준오브젝트의 방향과 위치를 기준
좌표 값절대적인 값상대적인 값
축 방향x, y, z 축이 고정오브젝트의 방향에 따라 x, y, z 축이 변화
활용 사례오브젝트의 절대 위치나 방향 계산오브젝트의 상대 이동이나 회전
설정 방법지구본 아이콘삼각형 아이콘

5. 실습 정리

  1. 벡터 계산: 두 객체의 위치를 사용해 방향 벡터를 구합니다.
  2. 정규화: 방향 벡터를 단위 벡터로 변환합니다.
  3. 이동 구현: Event Tick과 DeltaTime을 활용해 속도에 따라 이동하도록 설정합니다.
  4. 문제 해결: Mobility를 Movable로 설정하여 이동 가능하게 합니다.
  5. 조건 추가: 특정 거리 내에 도달하면 이동을 멈추도록 설정합니다.

profile
李家네_공부방

0개의 댓글