Improving immersion through motion control

One of the most important aspects of the system we want to focus on is that of immersion, one of the ways we are increasing immersion in the system is by using the Oculus Rift to make users feel as if they are inside a real forge. However it is quite probable that by having a user interact with the system through a gamepad (xbox controller etc.) may dramatically decrease their immersion. To prevent this we have opted to use the Kinect, developed by Microsoft for the Xbox 360 the Kinect has become a popular camera to use in many “people tracking” systems.

As previously mentioned, the unity asset store provides a number of solutions for utilising a Kinect with a system. The solution we have chosen to use is Zigfu, this allows us to utilise data from the Kinect to control some provided models. This allows the system to move the user in relation to the systems environment. This means when a user moves in the real world they will move in the environment allowing for interaction with the “world”.

Deformable Mesh

One of the most important aspects of this project, and what I have spent a majority of the past month creating, is a deformable mesh. In layman’s terms a deformable mesh is an object, in this case a cuboid, that can be altered by a user at runtime. For this project this will be what a user would interact with and manipulate in order to create their memento.

A deformable mesh works by applying tessellation to an object, this tessellation add more “points” to the object that can then be altered when they are interacted with. This allows for deformation about the “selected” points.

The included video shows the interaction of a deformable mesh in unity, as you can see when the balls hit the plane, the plane is deformed. This is similar to the interaction we want to occur within our system. As such we have opted to obtain the plugin developed by the individuals who created the video. Although it would have been beneficial to develop my own deformable physics object it isn’t practical with the current time restrictions. If there is time at a later stage it may be possible to develop an improved deformable mesh.

Unity Version 1

As I mentioned in my previous post I have switched development platforms from UE4 (Unreal Engine 4) to Unity in a bid to utilised the increased “flexibility” provided by a more widely used piece of software. Using the model I developed previously from the forge’s floor plan I have produced a version of the forge that is more to scale.

Forge1 Forge2 Forge3 Forge4

As you can see from the images provided this iteration of the system is significantly smaller, but has additional features such as a tool bench and usable tools. Although very basic this iteration of the system is certainly more practical due to the limitations of the tools we will be using, namely Oculus rift which can cause motion sickness in some users if they more too much.

Hello Unity goodbye Unreal

The previous version of the system that I had developed was far too large creating a grandiose scale that wasn’t an accurate representation of the real life forge. Furthermore the system was developed only with the idea of being used with a Oculus rift. This however is not the only external peripheral that the system needs to be used with.

As such it has been necessary for me to “redevelop” my system inside a new game engine. The game engine I used in the previous iteration of the system was the Unreal Engine 4 (UE4 henceforth), at time of writing UE4 is a relatively new commercial product that has very little user generated content, be this online tutorials or custom assets. The only advantage it had over other available products is the included Oculus rift integration. Fortunately the game engine Unity now includes Oculus Rift integration as part of its “free” version, something that was only available in the paid version until now. This means that the system can now be developed in Unity allowing me to utilise the features that unity includes over UE4 (tutorials and custom assets).

Over the coming weeks I hope to produce a version of the forge in Unity using the model I created in 3Ds max

Note: UE4 does include custom asset support but the number available is limited in comparison to those available for Unity.

Redesigning the System

With my previously outlined visit to the forge providing me with physical context to the appearance of the forge, something that is quite difficult to gauge from a floor plan, I made the decision to redesign the virtual forge to be match the scale of the real forge.

3Ds1 3Ds2 3Ds3

Using the floor plan provided to me by Geoff I opted to create a 1:1 scale model of the forge (or as close as I could possibly get). To this end I opted to utilise the popular 3d modelling software 3Ds Max. 3Ds allows users to create custom 3D models that can be created in a 1:1 scale, this means that I can replicate the layout of the forge exactly. It also allows for custom rendering options such as back-face culling, this means that only one side of an object is rendered by the computer, reducing processor load.3Ds4

3Ds is an incredibly useful tool that allows user to create detailed and often complex models. However my skill with using this piece of software isn’t as advanced as that displayed by other individuals i.e. architects. However the model I have created closely represents the working area of the forge. The real forge is larger than what I have produced however I opted to only model the area that users would find themselves interacting with