TIL (Today I Learned)
오늘 해야할 것
- 금고 1단계 마무리하기
키 라커 상태에 따라 움직일 수 있는 범위 조절- 금고에서 왼쪽에서 두번째, 세 번째 튀어나온 부분에서는 Rotate 안되게 막기
- Stage3 RightDoor 구현하기
오늘 한 것
- 키 라커 상태에 따라 움직일 수 있는 범위 조절하기
- 금고에서 왼쪽에서 두, 세번째 튀어나온 부분에서는 Rotate 안되게 막기 -> 실패
Rotate 금지 영역을 만들고 금지 영역에 다다르면 Rotate가 안되게 한다.
정확히 안되는 상황을 정의하면
키 라커 상태가 앞을 바라보고 있을 때 금지 영역에 다다르면 Rotate가 안된다
= 범위로 지정한 70-105도 사이에서 roll이 멈춰있는다.
1. 금지 영역은 어떻게 만들어주지?
이동 범위 제한한 것 처럼 좌표를 받아오면 되지 않을까?
로컬로 받을까 월드로 받을까?
- 왼쪽에서 두 번째 : _meshKeyLocker 중심 축 위치에서 13.f<= x <=14.f
- 왼쪽에서 세 번째: _meshKeyLocker 중심 축 위치에서 19.f<= x <=20.f
2. 금지 영역에 간건 어떻게 판별하지?
if (location.X == 13.f)
3. Rotate가 안되게 한다.
_meshKeyLocker->GetRelativeRotation().Roll 을
70 <= roll && roll <= 105
- Stage3 RightDoor 설계 / 필요한 부분 코드 분석
오른쪽 문 손잡이를 잡고 앞으로 당기면 오른쪽 문의 중심 축의 up vector를 기준으로 -방향으로 회전한다 (Yaw)
1. 문에 잡는 부분이 있어야하고 손 위치랑 같이 잘 잡히나 봐야함
- 초록 원은 뜨는데 손은 사라짐
2. 회전 구현
- 손잡이를 잡는다
- 손잡이를 잡고 앞으로 당긴다
- 손 위치가 바뀐다
- 손 위치가 바뀌니까 각이 생긴다
- 오른쪽 문이 - 방향으로 축을 중심으로 회전한다
- 축은 오른쪽문의 UpVector
- 각과 축을 이용해서 회전시켜준다.
1. 문에 잡는 부분이 있어야하고 손 위치랑 같이 잘 잡히나 봐야함
- 초록 원은 뜨는데 손은 사라짐
-> GrabComponent를 Mesh에 파묻히게 해놔서 안보였음. 좀 꺼내주니까 보임.
2. 회전 구현
- 손잡이를 잡는다
- 손 위치를 변수로 가져온다.
- FVector handPos = _handSocketRef->GetComponentLocation();
- 손잡이를 잡고 앞으로 당긴다
- 손 위치가 바뀐다
- v1= _lastHandSocketPos
- v2 =_handPos
- 손 위치가 바뀌니까 각이 생긴다
- 각을 구해주기전에 Projection 해줘야함
- 오른쪽 문의 RightVector로 해줌
- v1,v2 = UKismetMathLibrary::ProjectVectorOnToPlane(v1, right);
- 각 만들어준다 -> double angle;
- 오른쪽 문이 - 방향으로 축을 중심으로 회전한다
- 축은 오른쪽문의 UpVector
- 각과 축을 이용해서 회전시켜준다.
- 외적 : projection한 v1, v2로 나온 결과 v
- v랑 UpVector랑 Yaw 회전 시켜줌
- Stage2 : Key Cover Rotate Smootly
오늘 배운 것
- FRotator (
float InPitch,
float InYaw,
float InRoll
) - RightDoor 여는거 구현하는 도중 회전 줄 때 AddRelativeRotation으로 하니까 확 열리길래 SetRelativeRotation으로 하니까 괜찮게 열림
- KeyLocker 회전같이 잡을때마다 빠르게 움직이는 것들을 AddRelative 쓰고 레버처럼 당기는 만큼 구현하려면 SetRelative 쓴다고 느낌으로만 이해함
내일 진행할 것
- Stage 2 완성
앞으로 진행할 것
- 오큘러스 내 빌드 해결
- SCP 914 찾아보기
https://www.youtube.com/watch?v=-9rbYP0cDjU
https://www.youtube.com/watch?v=V2Ps5bM4TwE
'회사 TIL' 카테고리의 다른 글
[TIL] 22.12.21 / 금고 기능 추가, 충돌, 상태처리중 (0) | 2022.12.22 |
---|---|
[TIL] 22.12.20 / Key Cover Lerp 구현, LeftDoor 구현 (0) | 2022.12.20 |
[TIL] 22.12.16 / 금고 1단계 이동/회전 구현하기 + 제한 주기 (0) | 2022.12.18 |
[TIL] 22.12.15 /World, Local 좌표 이해하기😥, Strong Box 1단계 도전 (0) | 2022.12.16 |
[TIL] 22.12.14 / Lever, Drawer, Wheel 구현 (0) | 2022.12.14 |
댓글