Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- inxos
- Bootstrap4
- Express
- flask
- 알고풀자
- nixos한글키보드
- 미니프로젝트
- 파이썬서버
- Jinja2
- EnhancedInput
- pandas
- 마인크래프트뮤지컬
- 언리얼뮤지컬
- 판다스
- 지우개신공 #pc자기진단 #ram미인식 #컴퓨터고장해결 #램인식불량 #pc자가수리 #컴퓨터고장해결 #조립pc
- 블랙스크린복구
- Enhanced Input System
- ossca
- 프메
- nixos한글설정\
- 으
- 디자드
- 정글사관학교
- JWT
- 메모리인식불량
- R
- VUE
- 스트림릿
- streamlit
- 오픈소스
Archives
- Today
- Total
Today, I will
[Unreal] 언리얼 좌표계 Pitch, Roll, Yaw 이해와 짐벌락 이슈 해결 본문
반응형
언리얼은 좌표계에 Pitch, Roll, Yaw라는 이름을 붙인다.
Pitch(Y) : 헤더가 위로 아래로 흔들리는 회전
Roll(X) : 뒤집히면서 비행기체 전체가 도는 회전
Yaw(Z) : 헤더 시야각 좌우회전
마우스 좌표의 위치 방향으로 플레이어가 고개를 돌리고 총알을 쏘는 상황에서,
FHitResult _hitResult;
UGameplayStatics::GetPlayerController(GetWorld(), 0)->GetHitResultUnderCursor(ECC_Visibility, true, _hitResult);
SetActorRotation(_dirRot);
마우스를 중심부의 플레이어에 올리면, 플레이어가 뒤집어지는 의도치 않은 짐벌락 버그가 발생하게 된다.
문제 해결 과정
아래 두가지 해결 방법이 유효하다.
(1)
도착지와 시작점의 X, Y값만 유효한 벡터를 생성하여 FindLookAtRotation함수의 input으로 넣는다.
FHitResult _hitResult;
UGameplayStatics::GetPlayerController(GetWorld(), 0)->GetHitResultUnderCursor(ECC_Visibility, true, _hitResult);
FVector Dest = FVector(_hitResult.Location.X, _hitResult.Location.Y, 0.0f);
FVector Start = FVector(this->GetActorLocation().X, this->GetActorLocation().Y, 0.0f);
FRotator _dirRot = UKismetMathLibrary::FindLookAtRotation(Start,
Dest);
SetActorRotation(_dirRot);
(2)
FindLookAtRotation의 아웃풋 벡터에서 yaw만 유효한 파이널벡터를 만든다.
FHitResult _hitResult;
UGameplayStatics::GetPlayerController(GetWorld(), 0)->GetHitResultUnderCursor(ECC_Visibility, true, _hitResult);
FRotator _dirRot = UKismetMathLibrary::FindLookAtRotation(this->GetActorLocation(),_hitResult.Location);
FRotator _finalRot = FRotator(0, _dirRot.Yaw, 0);
SetActorRotation(_dirRot);
반응형
'Unreal' 카테고리의 다른 글
[Unreal] UI Change Control (0) | 2023.10.27 |
---|---|
[Unreal] 델리게이트를 활용하여 Bullet으로 enemy 제거 (1) | 2023.10.24 |
[Unreal] Meta Human 제작 후 언리얼 3D 캐릭터에 입히기 (0) | 2023.10.20 |
[언리얼] Unreal C++로 Player를 쫓아오는 Enemy 구현 (0) | 2023.10.19 |
「Unreal」 vr painting 프로젝트 사전조사 (1) | 2023.10.18 |