OpenVCE and I-Room in Unity with VR

The Open Virtual Collaboration Environment (OpenVCE) initially created in Second Life and OpenSim along with its I-Room (virtual space for intelligent interaction) have been available for some time as OpenSim Archive (OAR) files and assets available in Second Life and OpenSim for anyone to copy and use under the Lesser GPL flexible use licence.

Tipodean OpenSim OAR to Unity Conversion – OpenVCE

2015-09-09-Tipodean-OpenVCEA Unity conversion of the 3D visual elements of the whole OpenVCE region including a sample I-Room and larger I-Zone building was created by Tipodean using their OAR to Collada DAE converter. See two blog posts on this [1] [2] and the Tipodean OAR converter examples, including OpenVCE.

Previous work on an I-Room in Unity using the SmartFox Pro Multi-user Server

Unity-4-5-5-I-RoomMMO-PlayA Unity I-Room demonstration was originally built as a self-paced tutorial for me following the book “Unity Game Development Essentials” by Will Goldstone (ed. 2009) and making use of the SmartFox Server multi-user support libraries and a good on online tutorial. More details are in these blog posts [1] [2].

OpenVCE – OpenSim to Unity Project via the TUIS OAR Converter

2015-09-05-OpenSim-OAR-in-Unity-VR-2-modAn OpenSim OAR converter to create textures, meshes and terrain in Collada (DAE) file format suitable to import into a Unity scene has been created by Fumikazu Iseki at the Network Systems Laboratory of TUIS (@Fumi.Hax – @fumi_hax) in Japan. It has been used to convert the OpenVCE region saved as an OpenSim Arcive (OAR) as it currently exists on the Openvue grid.
More details are in this blog post.

ThirdPersonController, Avatars and Oculus Experiments

Some experimentation with Unity standard avatars (Ethan), some free to use or open source rigged mesh avatars (Unity Chan Kei and Blender Sintel) cameras and third person viewpoint controllers, as well as initial trials of virtual reality enabled unity apps are described in this blog post.


Project Steps

So with the background experimentation and assets described above, September 2015 looked like it was the right time to put some of this together and create a multi-user I-Room in Unity with suitable collaborative systems support and communications technologies, with multiple avatar choice and output to VR head mounted displays. This blog post documents some of the steps nand experiments, as well as the tools or techniques used.

Using Windows 10, Unity 5.2.0f3, SmartFoxServer Pro 1.6.18, Oculus 0.7, OpenSim 0.8.2.0 and OAR Converter 1.3.4.

Base new project main camera (removed later) and directional light

Add water, ground plane (removed later) and skybox

Avatar and thirdpersoncontroller
  ethan and simple controller standard assets
  unity chan controller and camera
  sintel and mix
  change player model
  http://answers.unity3d.com/questions/299425/how-do-you-change-a-players-3d-model-via-a-script.html

Content from OpenSim via OARConv

Active scripting, avatar seating, teleport movement, media screens, shared, presentation screens, links to external intelligent systems.

MMO, chat tool, voice options

2D interface elements in 3D space

Handle SFS Login scene ion Unity UI Canvas.

MMO Support – Experiment with Smart Fox Server SFS2X 2.10

We previously used SmartFox Server Pro (version 1.6.9) for I-Room MMO demonstrations using Unity. Smart Fox Server SFS2X (version 2.10) was installed to set up for the MMO elements of the OpenVCE and I-Room Unity build.

SFS2X-Server-Admin

Smart Fox Pro and 2X Firewall Requirements

9339  SFS MMO (TCP/UDP)
9933  SFS2X MMO (TCP/UDP)
8842  WebSockets Port
8843  Secure WebSockets Port
8080  HTTP Port
8443  HTTPS Port

If there are messages from a Unity/SFS2X application about security policy failing, see http://www.smartfoxserver.com/forums/viewtopic.php?f=20&t=14065

2015-09-13-SFSX2-MMORoomDemo-1

Basic Unity 5 examples provided by gotoAndPlay(), the company behind Smart Fox Pro Server, were used to guide how to build a simple MMO and chat application, similar to that already running with an I-Room and MMO with Smart Fox Server Pro 1.6.9. These applications with several users logged in and a number of NPCs generated by a server side Python extension did occasionally work. But extension calling with the Python examples was difficult to debug and unexplained errors difficult to track down. The system worked at some times and then stopping working with script loading errors that could not be tracked down. gotoAndPlay() staff were helpful on the forums, but did note that some people had difficultly with the Python extensions and examples and they favoured a Java extension approach.

MMO Support – Smart Fox Server Pro 1.6.18

I had originally wanted to switch to Smart Fox Server 2X and its Unity5 examples to get a head start with an MMO basis that already used the new in world GUI elements for Unity 5. Instead, I have returned to using the working Smart Fox Server pro setup, now update to version 1.6.18, and have begun to modify the GUI elements and login screens to the new Unity 5 Canvas in world screen approach needed for effective Unity VR applications.

MMO Support – Photon Cloud

Photon Cloud is another popular MMO server that works with Unity. A blog post describing the steps to use Unity, the Oculus Rift and Photon Cloud to make an MMO game or environment is available at http://www.convrge.co/multiplayer-oculus-rift-games-in-unity-tutorial and via a YouTube Video.

Initial I-Room MMO with VR Application

Progress with temporarily cutting out the initial old style flat screen Login scene has been rapid, and the next image is a view of the modified I-Room MMO demonstration using the Oculus Rift DK2 running with Smart Fox Server Pro 1.6.18 with scripts modified to avoid the old style flat screen login GUI. This will need to be replaced with a “Canvas” in world 3D view to work well with the new Unity GUI approach and VR. The Oculus Utilities for Unity package is added to the application, and the two cameras (Main Camera for the first person controller and the I-Room screen camera) have “OVR Camera Rig” and “OVR Manager” script components added.

2015-09-17-Unity-I-Room-VR-0

Update as at 30th September 2015

2015-09-30-Unity-I-Room-MMO-in-VR-with-New-UI

The new “in world” UI is mostly in place for both the login scene (based on Smart Fox login scene) and using an in-world viewable canvas within the I-Room itself for the main I-Room scene. Some redirection of in world MMO chat to the screens has also been achieved. Joystick in world control of the movement of the avatar works using an XBox controller and the standard OVR Camera Rig joystick support. But more needs to be done to allow use of the mouse and keys when using the Oculus Rift. A NPC has been placed in the I-Room (based on the Sintel character) with a navigation mesh that allows it to move within the floor plan of the I-room. Its walk target point can be set using an object which can be moved using the Oculus Rift gaze point, using a tutorial from a book “Unity Virtual Reality Projects” by Jonathan Linowes (Packt Publishing, September 2015).

This entry was posted in Oculus, OpenSim, OpenVCE, Virtual World, VR and tagged , , , , , . Bookmark the permalink.