플레이어 뷰포인트
이번 강의에서는 플레이어의 관점에서 사물을 보는 방법을 배우게 된다.
주 목적은 뷰포트의 위치와 회전이 우리가 기대하는 것과 일치하는 지 확인하여 만약 레이트레이싱을 할 때 제대로 사물을 가리키게 되는지 체크하는 것이다.
이를 위해 디버그 카메라를 그려보고 해당 디버그 카메라가 어떻게 그려지는 지 체크해보자.
DrawDebugCamera 함수를 통해 작성하며, 인자로는 UWorld(), 위치, 회전, 각도, 스케일, 색깔, 지속 여부를 넣어준다.
이를 컴파일하고 마우스 좌클릭을 통해 카메라가 어떻게 찍히는 지 체크해보자.
위 사진과 같이 마우스 좌클릭시 카메라의 방향이 우리가 바라보는 방향과 다른 것을 알 수 있다.
따라서 우리는 플레이어의 뷰포트 값으로 적용시켜줄 필요가 있다.
플레이어 뷰포인트를 얻는 법은 GetPlayerViewPoint 함수를 사용하며, 이는 Controller 클래스에 존재한다.
해당 클래스에 접근을 해야하기 위해 우리는 컨트롤러를 얻어야 한다.
해당 컨트롤러를 얻기 위해서는 총의 오너인 캐릭터를 우선 가져와야할 필요가 있다.
GetOwner() 함수를 통해 가져오는 것이 가능하지만 해당 캐릭터가 슈터인 것은 알 수 없으므로 Cast 함수를 통해 알려주어야 한다.
사실 캐릭터까지 갈 필요 없이 pawn 까지만 알아도 충분하므로 Cast는 pawn 타입으로 해주게 된다.
컨트롤러를 얻는 것은 GetController 함수를 통해 얻는데, 이는 APawn에 속한 함수이기도 하다.
이제 컨트롤러로 GetPlayerViewPoint 함수를 호출해주는데 해당 함수의 경우 인자로 위치와 회전을 받는다.
입력받은 위치와 회전에 대해서 뷰포인트에 대한 값으로 반환을 해주고, 이렇게 얻은 위치와 회전 값을 DrawDebugCamera의 위치와 회전 값으로 설정해주면 된다.
이제 컴파일을 해보면 플레이어의 뷰포트 시각으로 카메라가 그려지는 것을 볼 수 있다.
이제 이렇게 얻은 위치와 회전 값을 통해 레이트레이싱에 적용하게 된다.
'Unreal > Udemy 강의' 카테고리의 다른 글
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-19 (0) | 2024.05.04 |
---|---|
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-18 (0) | 2024.05.04 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-16 (0) | 2024.05.03 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-15 (0) | 2024.05.03 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-14 (0) | 2024.05.02 |