FQuat
쿼터니언은 3차원 공간에서 회전을 표현할 때 사용하는 수학적 도구이다.
쿼터니언의 장점
1. Gimbal Lock 방지 : 오일러 각도를 사용하여 각을 표현할 때 생기는 짐벌락을 방지할 수 있음
짐벌락 이란?
https://kangworld.tistory.com/185
[Unity] 짐벌락과 오일러 각 그리고 쿼터니언
✍️ 짐벌락 짐벌이란 단일 축을 중심으로 물체가 회전할 수 있도록 만들어진 구조물이다. 각각의 고리는 고유한 축을 기준으로 회전하는데 이는 가장 바깥쪽 고리만 해당할 뿐 안쪽 고리들은
kangworld.tistory.com
2. 효율적인 회전 보간 : 회전을 부드럽게 보간할 수 있어 자연스러운 움직임을 만들 수 있다.
3. 컴팩트한 표현 : 하나의 스칼라와 세 개의 벡터로 구성되어 매트릭스보다 메모리 효율적이다.
Decal->SetActorRotation(UKismetMathLibrary::MakeRotFromX(ImpactPoint).Quaternion());
언리얼엔진에서는 FRotator에서 쿼터니언으로 변환하는 함수가 간편하게 제공된다.
FRotator
흔히 사용하는 오일러 각을 사용한 각 표현 도구이다. Pitch, Yaw, Roll 을 사용한다.
Pitch는 y축을 기준으로 회전, Roll은 x축을 기준으로 회전, yaw는 z축을 기준으로 회전 하는 것을 뜻한다.\
블루프린트와 C++을 혼용하여 사용할 때 조심할 점은 블루프린트와 C++ 의 각 순서가 다르다.
블루프린트 : Roll Pitch Yaw
C++ : Pitch Yaw Roll
왜 이렇게 되어있는지는 모르겠지만, 꽤나 불편하다.
결론적으로 정확한 각 회전이 필요할 때는 FQuat을 사용하고, 일반적인 선형 보간 등에는 FRotator를 사용한다.
'언리얼엔진5 > 각종 지식' 카테고리의 다른 글
[UE5 C++] 언리얼엔진 Timeline C++ 에서 구현하기 (0) | 2024.06.19 |
---|---|
[UE5] ProjectileMovementComponent (0) | 2024.06.12 |
[UE5] 타이머 사용하기 (0) | 2024.06.12 |
[UE5] 월드에 액터를 스폰하는 방법 (SpawnActor) (0) | 2024.06.12 |
[UE5] FPS 에임 오프셋 만들기 (캐릭터 상체 상하 움직임) (0) | 2024.06.01 |