[언리얼엔진 5 필기] 7. Rotator, 슬라임 경주 만들기, Event Dispatcher
X, Y, Z 축으로 회전할 때 세개의 값으로만 관리하면 축이 겹쳐서 어느 순간 관리가 불가능한 상황이 됌(Gimbal Lock)
따라서 Rotator 객체를 사용한다.
Rotator
x,y,z,w 네 개의 값을 가짐 . 왜 네 개의 값을 가지는가? w는 무엇인가? 에 대한 설명은
https://luv-n-interest.tistory.com/805
쿼터니언(사원수), Quaternions
//21.12.17 업데이트 회전에 관해서 오일러와 쿼터니언이 있다. 우리가 상식으로 알고 있는 것은 오일러이고 오일러를 보완하기 나온 것이 쿼터니언이다. 알아보자 이해하기 위해선 복소수를 알고
luv-n-interest.tistory.com
이 분의 글을 참조했다. 유치원생의 관점에서 요약하자면 사원수를 이용해 벡터를 4차원 공간으로 보낸 뒤 다시 역으로 계산하여 3차원으로 복원시키고 그 식을 정리하면 오일러 로드리게스의 회전 공식과 같아진다. 따라서 축이 겹치더라도 사원수를 이용해 4차원 공간을 잠시 경유(?) 하여 회전을 구할 수 있다.
위 블루프린트를 실행하면 플레이어 객체가 다른 방향을 보고 있다가 몸을 틀어 몬스터 객체를 똑바로 쳐다본다. 이때 일반적으로는 몬스터 객체가 공중에 떠 있거나 매우 크다 하여도 플레이어가 고개를 들어 쳐다보는 경우는 없으므로 Z축만 변형해 몸만 틀게 만들어 준다.
6일차 필기와 동일하다. 이벤트 틱을 이용하여 속도와 곱해 준 뒤 이동시키는것이 좋다.
무식하게 이벤트 틱마다 4개의 귀여운 슬라임들이 결승선을 통과했는지 확인하는 것보다 결승선에 통과를 했을 때 이벤트를 발생시켜 처리하고 binding을 끊어 주는 것이 당연하게도 더 효율적이다.
완성
인코딩 실수로 저화질로 나왔다. 하지만 의도한 대로 슬라임들이 각자 랜덤한 속도를 가지고 임의의 라인까지 도달하는것을 알 수 있다. 덤으로 순위와 슬라임 이름(A, B, C, D) 도 출력한다.
7일차 후기
이로써 언리얼엔진5 블루프린트 기본 강의를 모두 수강했다. 다음 시간부터는 언리얼엔진을 이용한 2D게임 만들기 프로젝트 강의를 수강할 예정이다.