1. Rotator란?

1.1 정의

  • Rotator액터의 회전 정보를 나타내는 구조체입니다.
  • Roll, Pitch, Yaw라는 3개의 축 값을 가지고 있습니다.
    • Roll: X축을 기준으로 회전 (기울기)
    • Pitch: Y축을 기준으로 회전 (앞뒤로 움직임)
    • Yaw: Z축을 기준으로 회전 (좌우로 회전)

1.2 추가 값 (w)

  • 내부적으로 w라는 값이 존재합니다.
  • 이유: Gimbal Lock 현상 방지.
    • Gimbal Lock: 세 개의 축이 겹쳐 회전을 제대로 계산할 수 없게 되는 현상입니다.
    • 이를 해결하기 위해 회전 정보를 쿼터니언(Quaternion) 방식으로 관리합니다.
    • 쿼터니언은 x, y, z에 w 값을 더해 4차원 공간에서 회전 계산을 수행합니다.

2. 주요 Rotator 관련 기능

2.1 Find Look At Rotation

  • 기능: 대상을 바라보는 회전 값을 반환합니다.
  • 사용 예시:
    • 플레이어가 특정 오브젝트를 향해 몸을 돌려 바라보게 만들 때 사용됩니다.
  • 활용:
    • StartTarget 액터의 위치를 입력하면 회전 값을 계산합니다.

2.2 Set Actor Rotation

  • 기능: 액터의 회전 값을 설정합니다.
  • 사용 예시:
    • 특정 회전 값(예: Yaw)을 이용해 액터를 회전시킬 때 사용됩니다.

2.3 RInterp To

  • 기능: 회전 값을 부드럽게 보간해주는 노드입니다.
  • 설명:
    • 두 회전 값 사이를 시간에 따라 부드럽게 변화시킵니다.
    • 애니메이션과 비슷한 기능입니다.
  • 사용 예시:
    • 액터가 빠르게 회전하지 않고 자연스럽게 회전하도록 만들 때 사용됩니다.
  • 매개변수:
    • Current: 현재 회전 값.
    • Target: 목표 회전 값.
    • Delta Time: 프레임 간 시간 변화량.
    • Interp Speed: 보간 속도.

2.4 기타 기능

  • Make Rotator:
    • Roll, Pitch, Yaw 값을 입력해 새로운 Rotator를 생성합니다.
  • Break Rotator:
    • Rotator의 Roll, Pitch, Yaw 값을 분리하여 각각의 축 값을 가져옵니다.

3. Gimbal Lock (짐벌락) 현상

3.1 Gimbal Lock이란?

  • 정의: x, y, z 축 중 두 개의 축이 겹쳐 회전이 제대로 되지 않는 현상입니다.
  • 발생 원인:
    • 오일러 회전(Euler Rotation) 방식은 3개의 축(Roll, Pitch, Yaw)만 사용해 회전을 표현합니다.
    • 회전 중 특정 각도에서 축이 겹쳐 더 이상 회전이 불가능하게 됩니다.

3.2 해결 방법: 쿼터니언 (Quaternion)

  • 쿼터니언4개의 값(x, y, z, w)을 사용해 회전을 계산합니다.
  • 작동 원리:
    • 4차원 공간을 이용해 회전을 표현하고, 계산 후 3차원으로 복원합니다.
  • 장점:
    • Gimbal Lock 현상을 방지할 수 있습니다.
    • 회전을 더 부드럽게 처리합니다.

4. 실습 예제: 몬스터를 바라보는 플레이어

4.1 목표

플레이어가 다른 방향을 바라보고 있다가 Find Look At Rotation을 이용해 몬스터를 바라보도록 회전시킵니다.
단, Z축만 변형시켜 몸만 틀어 몬스터를 바라보게 합니다.

4.2 블루프린트 구현

  1. Find Look At Rotation 노드

    • Start: 플레이어의 위치 (Get Actor Location).
    • Target: 몬스터의 위치 (Get Actor Location).
  2. Break Rotator

    • Find Look At Rotation에서 반환된 값을 Break Rotator로 분리합니다.
    • Yaw 값만 가져옵니다 (Z축 회전).
  3. Make Rotator

    • Yaw 값만 사용해 새로운 Rotator를 만듭니다.
  4. Set Actor Rotation

    • 만든 Rotator 값을 플레이어에 적용합니다.

5. Transform 구조체

5.1 Transform이란?

  • Transform은 객체의 위치(Location), 회전(Rotation), 크기(Scale) 정보를 담는 구조체입니다.
  • 구성 요소:
    • Location: x, y, z 좌표를 나타냄 (벡터).
    • Rotation: Roll, Pitch, Yaw 회전값 (Rotator).
    • Scale: 객체의 크기 (벡터).

6. Rotator 정리

개념설명
RollX축 기준 회전 (기울기).
PitchY축 기준 회전 (앞뒤).
YawZ축 기준 회전 (좌우).
Find Look At Rotation특정 대상 방향을 바라보는 회전 값 반환.
Set Actor Rotation액터의 회전 값을 설정.
RInterp To회전을 시간에 따라 부드럽게 보간.
Gimbal Lock두 축이 겹쳐 회전이 불가능해지는 현상.
QuaternionGimbal Lock을 방지하는 회전 계산 방식 (4차원).
Transform위치, 회전, 크기를 모두 포함하는 구조체.

profile
李家네_공부방

0개의 댓글