펌) StereoLayer 를 이용해서 흔들리지 않는 VR HUD 띄우기(자막에 응용)
Oculus 에 UMG를 띄우면 크기가 컸을 때는 양 쪽이 다 안보일 때도 있고, 고개를 흔들 때 심하게 흔들립니다.
대용량 이미지입니다.
확인하시려면 클릭하세요.
크기 : 1.41 MB
보시듯 UMG가 전체 화면과 같이 흔들립니다. 그래서 UMG가 매우 불안정하게 떨리는 것처럼 보입니다.
그러나 StereoLayer 컴포넌트를 사용하면 흔들리지 않고 이미지가 떠 있습니다.
폰에 컴포넌트를 추가해 주고 게임모드에서 폰을 선택해 줍니다. 그리고 기본 이미지를 지정해 주면 보이게 됩니다.
보시는 것과 같이 화면이 떨려도 이미지는 고정되어 있습니다.
StereoLayer는 이미지만을 받기 때문에, UMG를 이미지로 뜬 다음에 보내주게 되면 흔들림 없는 HUD를 얻을 수 있습니다.
이미지라서 클릭 등의 인터랙션은 현재 안됩니다. 약간의 c++ 작업을 해야 합니다. FWidgetRenderer 를 이용합니다.
일단 새로운 c++ 클래스를 만들어 줍니다. 빈 클래스를 선택하고 적당한 이름을 지어 줍니다.
vs2015에서 프로젝트명.build.cs 파일을 열고, PublicDependencyModuleNames.AddRange( 의 끝에 아래 내용을 추가합니다.
,"Slate","SlateCore","UMG"
하단에 복사 붙여넣기 한 다음에 조금 고쳐 줍니다.
UCLASS()
class 프로젝트명_API U새로만든클래스명 : public UBlueprintFunctionLibrary
{
그리고
UTextureRenderTarget2D * U새로만든클래스명::RenderWidgetToTexture(
등으로 수정하고 저장, 빌드한 뒤 아래와 같이 블루프린트를 짜 줍니다.
StereoLayer 의 옵션 중에는 LivePicture 가 있는데, 움직이는 UMG의 경우에는 반드시 이를 체크해줘야
애니메이션이 업데이트 됩니다. 또한 UMG가 움직이거나 변경되는 부분이 생기면 반드시
RenderWidgetToTarget 을 실행해 줘야 변경된 모습이 업데이트 됩니다.
VR개발하시는분들 사이트는 별로 없는듯..........ㅠ
www.vrinside.com