We want to build a small VR conferencing app using Unity. I see that there were a lot of posts about connecting Ricoh Theta V with Unity via USB cable (like a webcam) to live stream 4K, but I couldn’t find any post about connecting the newer Z1 camera to Unity. Did someone successfully managed to connect it to Unity via USB? I like the larger sensor on Z1 and the image quality it produces, that is why I would like to go with it.
Search for THETA Z1 and find the key (have not tried yet)
The key will be different for Z1.
From roughly Mar 2018, the hack was no longer needed with THETA V as RICOH incorporated a similar hack into the driver 1.0.1.
What I want to do is to first test this myself with the Z1 and then send a report to some guys I know at RICOH.
If you hack the registry on your Windows machine, you will need to hack the register for every Windows computer you use with the Z1. Thus, it’s not a good solution for commercial deployment if you sell your app. However, it may be useful for prototyping and demos. Also, I don’t know if it works with Z1 as I have not tested it yet.
Btw, the hack I did was meant as a figure of speech hack…not a real “registry hack”. I just streamed the ricoh camera from MPC-HC to OBS, through NDI, to Unity. It was just for testing purposes. Quality and delay was pretty bad.
So I created a new Key under “Instance” using a CLSID I found for the Z1 searching the registry (It seems the key name is the same as the CLSID for all other cameras, so I did that), then added all the necessary String inside (ie. FriendlyName, DevicePath, CLID,etc. - except FilterData cause I couldn’t find it or understand). Results: same issue, unfortunately.
Here are my findings, though:
The new key I created makes it so MPC-HC now sees 2 x Ricoh Z1, but the new one doesn’t work.
I found the registry entry that MPC-HC uses to find the camera, by doing a search in the registry and changing the “FriendlyName” until I saw it changed it in MPC-HC as well. I added a “DevicePath” entry for the fun of it, but that didn’t do anything. Here’s the path in case anyone else wants to experiment:
In Unity, if the Z1 is in live mode, I am getting a black texture on the sphere/object I am applying the texture to, and it is saying my current camera is the Z1 in the debug window, but it still has that “Could not connect pins - RenderStream()” error right after.
If I unplug the camera, the sphere displays a texture that just shows the Ricoh Theta logo with “Theta V FullHD Status: 0x800705AA” error message. So it just finds the next available camera to use as a texture, which I don’t actually have.
That’s great news! It’s nice to see a forum being so active and people interested in resolving issues for a relatively “niche” product. Or maybe I hadn’t realized how big the Ricoh 360 camera customer base had grown in the past few years.
Anyway, all my tests have been with Unity 2019.1.0f2. I will try a blank project with the newest version of unity on Monday, though. Was delaying upgrading since we already have a working project using our Nokia OZO, and it’s always a risk upgrading with a product that is no longer technically supported.
Alright, so I tried with the newest version of Unity today and it still has the same issue.
One thing I noticed is when I stream the camera live in MPC-HC, a big “LIVE” word starts blinking on the camera’s small screen. When I play the scene in Unity, the camera quickly flashes the “LIVE” words then it disappears, as if it connected to it for a second, then just disconnects due to the “connect pins” issue.
Thanks for this report on your tests. We saw a similar thing with the THETA V. MPC-HC could detect the hardware device driver (THETA V or THETA Z1) on Windows. However, other software such as Unity and OBS (Open Broadcaster Software) required the use of the software device driver. In addition, Unity also needed non-blank fields as described above.
Just so you know, for the THETA V,
Web Cam Device
Mac OS and Windows only with MPC_HC
no driver software needed
THETA V FullHD and THETA V 4K
Other Windows software like OBS
driver software needed on Windows
THETA V FullHD and THETA V 4K with update for Unity
Works on most Windows software, including Unity
Basically incorporated the community hack for “software driver info” into the official driver
The Windows software for the THETA V I’m referring to is here:
Once installed, it created a new “Camera” entry in the registry called “RICOH THETA Z1 FullHD” (Probably does other magic too, not sure). But now, you can specify that name instead of the regular “RICOH THETA Z1” in your code in Unity, it works. In OBS, “RICOH THETA Z1 FullHD” now appears as a camera choice.
Nice! This is fantastic. I have it working with OBS and am upgrading Unity and Visual Studio in order to change my application from THETA V 4K to THETA Z1 4K. Just an FYI, the 4K driver is higher resolution, but you may experience lag if you’re transmitting the stream over the Internet.