게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
여기 VR 개발자도 있나요? 개발 팁 가져옴
게시물ID : programmer_20044짧은주소 복사하기
작성자 : 동그라미땡
추천 : 3
조회수 : 770회
댓글수 : 0개
등록시간 : 2017/03/23 12:29:11
옵션
  • 창작글

펌) StereoLayer 를 이용해서 흔들리지 않는 VR HUD 띄우기(자막에 응용)



Oculus 에 UMG를 띄우면 크기가 컸을 때는 양 쪽이 다 안보일 때도 있고, 고개를 흔들 때 심하게 흔들립니다. 

 

대용량 이미지입니다.
확인하시려면 클릭하세요.
크기 : 1.41 MB

 

 

보시듯 UMG가 전체 화면과 같이 흔들립니다. 그래서 UMG가 매우 불안정하게 떨리는 것처럼 보입니다.

그러나 StereoLayer 컴포넌트를 사용하면 흔들리지 않고 이미지가 떠 있습니다.

53743f8ebce8478478c5e9a17e30eea8_1490174309_6586.png

폰에 컴포넌트를 추가해 주고 게임모드에서 폰을 선택해 줍니다. 그리고 기본 이미지를 지정해 주면 보이게 됩니다.

53743f8ebce8478478c5e9a17e30eea8_1490174337_867.gif

보시는 것과 같이 화면이 떨려도 이미지는 고정되어 있습니다.

StereoLayer는 이미지만을 받기 때문에, UMG를 이미지로 뜬 다음에 보내주게 되면 흔들림 없는 HUD를 얻을 수 있습니다.

이미지라서 클릭 등의 인터랙션은 현재 안됩니다. 약간의 c++ 작업을 해야 합니다. FWidgetRenderer 를 이용합니다.

일단 새로운 c++ 클래스를 만들어 줍니다. 빈 클래스를 선택하고 적당한 이름을 지어 줍니다.

vs2015에서 프로젝트명.build.cs 파일을 열고, PublicDependencyModuleNames.AddRange( 의 끝에 아래 내용을 추가합니다.

,"Slate","SlateCore","UMG"

https://gist.github.com/dunenkoff/6c4adaa0e38166cc9dc14aeaca02531d 여기의 코드를 가져옵니다. 코드를 새로 만든 클래스의

하단에 복사 붙여넣기 한 다음에 조금 고쳐 줍니다.

UCLASS()
class 프로젝트명_API U새로만든클래스명 : public UBlueprintFunctionLibrary
{

그리고

UTextureRenderTarget2D * U새로만든클래스명::RenderWidgetToTexture(

등으로 수정하고 저장, 빌드한 뒤 아래와 같이 블루프린트를 짜 줍니다.


53743f8ebce8478478c5e9a17e30eea8_1490174372_98.png

 

StereoLayer 의 옵션 중에는 LivePicture 가 있는데, 움직이는 UMG의 경우에는 반드시 이를 체크해줘야 

애니메이션이 업데이트 됩니다. 또한 UMG가 움직이거나 변경되는 부분이 생기면 반드시 

RenderWidgetToTarget 을 실행해 줘야 변경된 모습이 업데이트 됩니다.

VR개발하시는분들 사이트는 별로 없는듯..........ㅠ
그나마 VR인사이드 라는 사이트뿐....ㅍ

www.vrinside.com


전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호