[UE5] Quat(쿼터니언) / Rotator (로테이터)

2024. 6. 12. 18:54·언리얼엔진5/각종 지식

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
'언리얼엔진5/각종 지식' 카테고리의 다른 글
  • [UE5 C++] 언리얼엔진 Timeline C++ 에서 구현하기
  • [UE5] ProjectileMovementComponent
  • [UE5] 타이머 사용하기
  • [UE5] 월드에 액터를 스폰하는 방법 (SpawnActor)
Rocketbabydolls
Rocketbabydolls
Rocketbabydolls
  • Rocketbabydolls
    With The Lights Out
    Rocketbabydolls
  • 전체
    오늘
    어제
    • 전체글 (185) N
      • 프로그래밍 공부 (117)
        • C (16)
        • Jumping into C++ (9)
        • MFC (C++) (1)
        • 자료구조 (1)
        • 알고리즘 (1)
        • 백준 (C++) (74)
        • 핸즈온 머신러닝 2판 (6)
        • Unseen 3기 준비 (4)
        • 원티드 포텐업 게임 개발자 양성과정 2기 (4)
      • 언리얼엔진5 (1) N
        • [Part1] 이득우의 언리얼 프로그래밍 (12)
        • [Part2] 이득우의 언리얼 프로그래밍 (2)
        • [Part2 복습] 이득우의 언리얼 프로그래밍 (3)
        • [Part3] 이득우의 언리얼 프로그래밍 (14)
        • [Part4] 이득우의 언리얼 프로그래밍 (0)
        • FPS 게임 1인 프로젝트 (6)
        • 각종 지식 (11)
        • 블루프린트 Paper2D 로 게임 만들기 (14)
        • 팀 프로젝트 (1)
      • 일상 (1)
      • ETC (1)
        • 맥북 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      언리얼엔진
      오블완
      핸즈온 머신러닝
      실전 C프로그래밍
      실전C프로그래밍 실습문제
      C언어 실습문제
      실전 C프로그래밍 실습문제
      c++ 17298
      실전 C프로그래밍 나중채
      c언어
      실전 C 프로그래밍
      실전C프로그래밍
      언리얼엔진5 fps 프로젝트
      핸즈온 머신러닝 2판
      언리얼엔진 LoadClass
      실전C프로그래밍 나중채
      티스토리챌린지
      언리얼엔진5
      언리얼엔진 ConstructorHelpers
      UE5 LoadClass
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    Rocketbabydolls
    [UE5] Quat(쿼터니언) / Rotator (로테이터)
    상단으로

    티스토리툴바