cancel
Showing results for 
Search instead for 
Did you mean: 

Spectator Camera for Casting

Justvdl
Explorer

Hey All,

 

I've been trying to get the Oculus Spectator mode (https://developer.oculus.com/documentation/unity/unity-spectator-camera/) working, but I can't even get the example scene to work. The switch between first-person view and spectator view does nothing for the 'cast view'. 
I've tried with multiple unity versions, oculus SDK versions, cast devices, and HMD's (Quest 1 and 2).

Development build is off and experimental features are on, am I forgetting something? 

 

Has anyone ever made this work? And if so; how?

Thanks in advance!

9 REPLIES 9

Angel_RPG
Explorer

Did you manage to solve this issue?

Nope, feature seems abandoned and left broken in the SDK

saikiran_n
Protege

Has anyone figured out the solution to make it work ?

I've only ever seen it in Noda, no other app I know of. It's demoed briefly here: https://youtu.be/91g3FipCIeQ

HarrysXR
Explorer

I've implemented the Spectator Camera in my game (https://colorball.quest/) and it worked pretty good:

https://www.youtube.com/watch?v=AryFnr9-kQk

But it seems that it stopped working on newer Quest versions 😭 

I'm not able to reactivate it... really seems abandoned 😠

It was such a great feature... 😥

SoundGuy
Explorer

Any news on this?

 

Barzorke
Explorer

I have the exact same problem here.

SoundGuy
Explorer

 

latest SDK release notes mention some progress on spectator mode but i still can't get it to work. any ideas why?

I'm also trying to get it to work. I made a fresh build from the example scene and what I found is that most of the code works except for the actual casting. It adds an external camera, it updates the head sphere transform, it responds to the controller inputs to position the selfie screen.

It also supposedly succeeds in setting the camera to initialized when pressing the trigger, as OVRPlugin.Media.SetPlatformCameraMode(OVRPlugin.Media.PlatformCameraMode.Initialized) returns true. But looking at OVRPlugin.Media.GetPlatformCameraMode() it either doesn't actually succeed or is reset immediately to OVRPlugin.Media.PlatformCameraMode.Disabled.

OVRPlugin.Media.IsMrcEnabled() tells me MRC is enabled, but not activated, as OVRPlugin.Media.IsMrcActivated() is false. I'm also reading OVRPlugin.Media.IsCastingToRemoteClient() but it doesn't change to true when starting a stream to the smartphone app. According to OVRPlugin.Media.GetMrcActivationMode(), which is set to Automatic, it should activate once the stream starts but apparently OVRPlugin.Media is not properly integrated with the stream.

According to the documentation (https://developer.oculus.com/documentation/unity/unity-spectator-camera/), devs are supposed to check for Oculus.Platform.Core.IsInitialized() but the Oculus namespace is deprecated, and doesn't include Oculus.Platform anymore. It also says to "Ensure that you setup the platform with an app ID as it is required for the platform initialization."

My fresh build didn't have an app ID set in the platform settings and I didn't want to make a new project in the Oculus backend so I tried building the same example scene from my existing app with its ID but there I get an "OVRMrcLib not loaded" error and the code breaks entirely, not updating the head position or responding to controller inputs. Then I tried using my app ID in the fresh spectator mode scene build but there it neither breaks anything nor does it enable the last step of activating MRC.

So that's at least two things that are broken. OVRPlugin.Media is maybe shut out of accessing streaming because of security reasons? Or it is waiting for communication from another mixed reality capture app like OBS (since spectator mode is branched off of MRC)? The "OVRMrcLib not loaded" error in my active project is a further headache, no idea what is causing this.