- 개요

오일러 각은 3차원 공간에서 물체가 놓인 방향을 3개의 각을 사용하여 표시하는 방법이다
직관적으로 이해하기 쉬어 3차원 공간을 사용하는 프로그램에서 자주 사용된다

게임엔진에서 오일러 각을 사용하여 물체의 방향을 표시할 때는 표준기저벡터를 사용한다
따라서 오일러 각은 표준기저벡터를 중심으로 회전하는 각의 크기로 지정된다
최종적으로 세 표준기저벡터를 중심으로 회전하는 각을 모으면 위와 같이 3차원 벡터로 표현할 수 있다
이때 각각의 각의 값은 실수이다
- 오일러 각의 표현 - Yaw / Roll / Pitch

3개의 실수로 정의된 오일러 각의 정보를 모든 프로그램에서 범용적으로 사용하는 것은 문제가 존재한다
소프트웨어마다 X / Y / Z축의 용도가 다르기 때문인데, 언리얼 엔진과 유니티엔진처럼 차이가 존재한다
따라서 문제를 해결하기 위해 X / Y / Z축 대신에 회전의 움직임으로 회전 동작을 구분하고 각을 지정한다

표준기저벡터를 축으로 하는 회전의 움직임은 방향에 따라 Yaw / Roll / Pitch로 표현한다
Yaw / Roll / Pitch의 움직임으로 오일러 각을 지정하면 서로 다른 좌표계를 사용하더라도 쉽게 변환할 수 있다
- 프로젝트에서의 Yaw / Roll / Pitch 구현

프로젝트에서는 Vector3 대신 Rotator 구조체를 사용하여 오일러 각을 사용한다
구성은 위와 같다
- Clamp 함수 : 오일러 각의 회전 값을 사용 사용하기 편리하게 재구성
- GetAxisClampedValue 함수 : 각도의 값을 0°~360°의 범위로 변경
- Yaw / Roll / Pitch 멤버변수 : 오일러 각을 구성하는 Yaw / Roll / Pitch로 모두 각도법을 사용하여 관리
- 오일러 각의 수학적 표현

오일러 각은 표준기저벡터를 중심으로 진행되는 세 번의 연속적인 회전을 의미한다
예를 들어 X축 회전은 YZ 평면의 회전을 의미하는데, 이 경우 X값은 변하지 않고 오직 Y축과 Z축의 값만 변경된다
위의 원리를 이용하여 X / Y / Z축에 대한 회전행렬 Rx / Ry / Rz는 위와 같이 설계할 수 있다
이때 3차원 공간에서는 X -> Y -> Z -> X -> Y의 순서로 세 축이 순환하여
Y축에 직교하는 평면이 ZX 평면이라는 점에 주의해야 한다
'수학 > 이득우의 게임 수학' 카테고리의 다른 글
| 3차원 모델행렬 (0) | 2026.02.25 |
|---|---|
| 3차원 회전행렬의 유도 (0) | 2026.02.25 |
| 3차원 공간의 트랜스폼 (0) | 2026.02.11 |
| 3차원 공간의 설계 (0) | 2026.02.04 |
| 카메라 시스템 (0) | 2026.01.28 |