본문 바로가기

Unreal Engine 5

언리얼 Widget에서 Billboard 를 사용하는법

예를 들어 Enemy 에 Widget을 달아주었을때, Widget이 계속 회전하는 경우가 있을것이다.

 

Widget의 세로부분을 볼수 도 있어서 미관적으로 상당히 좋지 않아, 필자는 지금까지 Billboard 함수를 직접 짜서 계속 체력바가 Player를 응시하게끔 만들었는데

 

생각보다 더 간단한 해결방법이 있었다.

 

Space 의 기존 설정(Enemy에 있는 HelathBar widget의 Component에 있는 옵션)이 World 에서

 

Screen 으로 바꿔주면, 항상 Player에서는 screen 상태로 이를 볼 수 있는 것이다.

 

너무 감격해서 원리 또한 찾아보았다. Billboard 가 아니라 어떻게 구현하였을까?

 

 

  • UWidgetComponent 내부적으로 Slate를 사용하여 화면 좌표에서 UI를 렌더링.
  • WidgetRenderer를 통해 2D HUD UI를 처리.
  • SlateApplication::DrawWindow()를 사용하여 UI를 카메라의 영향을 받지 않는 화면 공간으로 이를 구현

다른 카메라의 영향을 받지 않고 2D UI를 처리하는 공간을 따로 렌더를 시켜서 이를 처리한 것이었다.