Oculus의 영상을 모니터용으로 출력

4745 단어 OculusUnity
Oculus는 체험자에게만 영상이 보이기 때문에 이벤트 등의 경우에는 Oculus의 영상을 미러링으로 출력하는 것이 일반적이라고 생각합니다.

그러나 Oculus는 2안의 영상이 되어 있어 그대로 표시해도 그다지 보기 좋지 않습니다.
그래서 출력용 앱을 준비하여 깨끗한 일안 영상을 표시할 수 있도록 합니다.



두 앱의 카메라 동기화



Oculus용 및 출력용 앱, 각 카메라의 위치와 각도를 OSC, WebSocket 등으로 동기화합니다.
Unity 의 NetworkView 에서는 스크립트를 거의 쓰지 않고 끝나므로, 이번은 이 방법을 소개합니다.

(OculusUnityIntegration)[ htps : //로 ゔぇぺぺr. 오쿠스. 코 m/두w응아 ds/ ]을 가져온 프로젝트를 예로 들 수 있습니다.

기본적으로는 동기화하고 싶은 것에 NetworkView를 추가하게 됩니다.

Oculus 카메라 측 장면 만들기



먼저 Oculsu 카메라의 제어로 Tuscany/Scenes/VRDemo_Tuscany를 엽니다.
히에랄 키 OVRPlayerController 및 OVRPlayerController/OVRCameraRig/LeftEyeAnchor에 NetworkView 구성 요소를 추가합니다.



빨간색 테두리 GameObject 동기화

그런 다음 Oculus 카메라를 서버로 사용하는 스크립트를 만듭니다.
NetworkCameraServer.cs를 새로 만들고 OVRPlayerController에 추가합니다.

NetworkCameraServer.cs
using UnityEngine;
using System.Collections;

public class NetworkCameraServer : MonoBehaviour
{
    public int portNumber =  9999;

    void Start ()
    {
        Network.InitializeServer (4, portNumber, true); 
    }
}

Screen 카메라 측 장면 만들기



그런 다음 프로젝트 창의 Tuscany/Scenes/VRDemo_Tuscany를 복제하여 출력 장면을 만듭니다.
복제한 장면의 히에랄 키에 있는 OVR 카메라를 삭제하고 일반 카메라를 배치합니다.
빈 GameObject를 만들고 구조를 OVR 카메라와 비슷하게 유지합니다.
그런 다음 이전과 마찬가지로 NetworkView 구성 요소를 추가합니다.



클라이언트용 스크립트를 작성하고 추가합니다.
IP와 포트는 적절히 변경하십시오.

NetworkCameraClient.cs
using UnityEngine;
using System.Collections;

public class NetworkCameraClient : MonoBehaviour
{
    public string connectionIP =  "127.0.0.1";
    public int portNumber =  9999;

    void Start ()
    {
        Network.Connect (connectionIP, portNumber);
    }
}

이것으로 준비가 완료되었습니다.

신청하기



각 장면을 별도의 앱으로 내보냅니다.
같은 PC에서 사용한다면 백그라운드에서 실행할 수 있도록 해 둡니다.



서버인 Oculus 카메라에서 시작합니다.
연결이 성공하면 Oculus의 움직임에 따라 출력 카메라가 회전합니다.

좋은 웹페이지 즐겨찾기