📌 정의
3D 공간에서 오일러 각(Euler Angles) 기반 회전을 사용할 때 발생하는 문제
즉, 특정한 회전이 겹쳐서 하나의 축이 없어지고, 더 이상 원하는 방향으로 회전할 수 없게 되는 문제
❓오일러각
3개의 축에 대해 각각 회전을 나누어 적용(종속 관계)
📌 발생 이유
1. 오일러 각 기반 회전 사용
FRotator -> 오일러 각 기반
2. Yaw, Pitch, Roll 순서의 문제
오일러 각의 회전 순서는 정해져 있으며,
특정 순서에서 두 축이 동일한 평면상에 놓이면서 회전이 제한됨.
3. 연속적인 회전 적용 시 비직관적인 결과 발생
오일러 각 회전을 연속적으로 적용하면 축이 의도한 방향과 다르게 이동할 수 있음
📌 해결 방법
1. 쿼터니언 사용
//FQuat은 4차원 회전 표현 방식으로 오일러 각과 달리 회전 축이 사라지는 문제가 없음
FQuat Rotation = FQuat(FVector(0, 1, 0), FMath::DegreesToRadians(90.0f));
Actor->SetActorRotation(Rotation);
2. 오일러 각 대신 회전 행렬 사용
FMatrix RotationMatrix = FRotationMatrix::Make(FRotator(90, 0, 0));
FVector NewDirection = RotationMatrix.TransformVector(FVector::ForwardVector);
'Unreal' 카테고리의 다른 글
Unreal5 사소하지만 유용한 꿀팁 (0) | 2025.02.09 |
---|---|
Unreal5 갓 레이 표현 (0) | 2025.02.09 |
Unreal5 블루프린트 깜빡이는 조명 만들기(by sin 함수) (0) | 2025.02.08 |
Unreal5 델리게이트 (0) | 2025.02.08 |
Unreal5 애니메이션 없는 드론의 프로펠러 돌리기(언리얼 에디터로 스태틱 메시 분리) (0) | 2025.02.06 |