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
- 기능: 대상을 바라보는 회전 값을 반환합니다.
- 사용 예시:
- 플레이어가 특정 오브젝트를 향해 몸을 돌려 바라보게 만들 때 사용됩니다.
- 활용:
- Start와 Target 액터의 위치를 입력하면 회전 값을 계산합니다.
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 블루프린트 구현
-
Find Look At Rotation 노드
- Start: 플레이어의 위치 (
Get Actor Location).
- Target: 몬스터의 위치 (
Get Actor Location).
-
Break Rotator
- Find Look At Rotation에서 반환된 값을 Break Rotator로 분리합니다.
- Yaw 값만 가져옵니다 (Z축 회전).
-
Make Rotator
- Yaw 값만 사용해 새로운 Rotator를 만듭니다.
-
Set Actor Rotation
- 만든 Rotator 값을 플레이어에 적용합니다.
- Transform은 객체의 위치(Location), 회전(Rotation), 크기(Scale) 정보를 담는 구조체입니다.
- 구성 요소:
- Location: x, y, z 좌표를 나타냄 (벡터).
- Rotation: Roll, Pitch, Yaw 회전값 (Rotator).
- Scale: 객체의 크기 (벡터).
6. Rotator 정리
| 개념 | 설명 |
|---|
| Roll | X축 기준 회전 (기울기). |
| Pitch | Y축 기준 회전 (앞뒤). |
| Yaw | Z축 기준 회전 (좌우). |
| Find Look At Rotation | 특정 대상 방향을 바라보는 회전 값 반환. |
| Set Actor Rotation | 액터의 회전 값을 설정. |
| RInterp To | 회전을 시간에 따라 부드럽게 보간. |
| Gimbal Lock | 두 축이 겹쳐 회전이 불가능해지는 현상. |
| Quaternion | Gimbal Lock을 방지하는 회전 계산 방식 (4차원). |
| Transform | 위치, 회전, 크기를 모두 포함하는 구조체. |