FMP – Creating Vortex Skybox and Multiplayer Photon 2 Tests

Multiplayer Photon 2 tests

After creating more of the initial elements of the experience i am continuing to test out and learn how to use photon 2. The next step was to create a user interface that will trigger the connection to the server and join the network on command as you can see from the simple execution of the buttons below.

Creating Joinable Rooms

After getting the general connection UI working i began to further experiment with how i could create different rooms and lobbies so following a tutorial i further looked into how this was achieved and it was quite simple overall creating different iterations of the same levels just for different users over the network.

Creating the Vortex Skybox Shader

This is something that i had been wanting to try for a while to create the mysterious “Glass” vortex that is trapping the hotel between the multiverse. After having some classes and feedback on creating shaders, using a simple seamless material i found online which was a white marble like texture this was used as a basis to create a flowing and warping effect that could be used as a skybox.

FMP – Considering Player 2 and Creating his Path through the environments

Due to the style of the story and the environment, the second player is going to need to be able to be shown all around the other player in order to give the feeling of reflections in the environment no matter where they are looking

Creating a Player 2 swap script

In order to achieve this I have laid out multiple XR rigs for player two around the environment in order for the player to move around seamlessly around player one. This is achieves in theory by having the player walk over a collider that will turn off their current rig and turn on the second rig achieving the same effect.

The script below shows how this was achieved by linking all of the different XR rigs as game objects which are then set active true or set active false depending on when and where the player crosses them and the order which they are crossed like in the initial concepts for this.

FMP – Creating Elevator Interactions and hotel Rooms / Changes to Map Layout

Creating the Elevator Puzzle triggers

The elevator puzzle became the most difficult out of all of the events i found because it was quite complex and relying on two players in order to properly test it. I created all of the assets so that the doors animate open, there is an old fuse, a new fuse and a tool to open one of the doors. The code at the moment is set up for just one person at the moment since i do not have a build or a second headset to full test if it is all working correctly for two people. This will need to be tested when I am back on campus after the summer.

Elevator lighting and Changes

To simulate the elevator moving up for the player I created some spot lights that will move up on the left and right side to show in a way that it is all moving up through the floors of the hotel. This was created using a simple looping animation.

I also created a flickering light and red service like to show that the elevator has broken down at the certain point in the narrative of my experience.

Initial Elevator Moving Animations

My initial idea of how to move the player in the elevator from the bottom floor to the upper floor was to create an animation of the whole environment moving up and essentially carrying the player with it. however i had one major issues that when it did move with the animation, the player would fall through the floor and so this was not a very good solution and another way of doing this would need to be done.

Updating the Map layout

So to combat this i ended up moving down the whole hotel room environment to be next to the elevator so that it would be set active false at the start and when the player enters the elevator it would swap and appear for the player to simulate that they have changed floors when the doors open again after that sequence of the story.

Creating Slamming Doors Interaction

I have now added more decorations and assets to the hotel rooms including beds, furniture and bathroom etc. I thought it would be interesting to add some doors slamming open as the player passes near them. I achieved this by placing some colliders with a script to play the door open animation and also triggering a slamming sound effect.

XXXXX

Leaving the Elevator Sequence

When the player starts to leave the elevator the final sequence of dialogue, music and certain events will be triggered which i created using the code below:

FMP – Creating the Hallway Interaction and Alley way interactions

Creating Interactive Lever

For the Hall of Mirrors section of the experience, I want both of the players to pull down a lever together at the same time to open their doors to progress through to the alleyway. So once again using some online tutorials that I followed.

I created some basic objects to resemble a lever and added some hinge points, colliders and grabbable areas to create a pull able lever that also reacts to gravity and can spring back into place after it is released.

Picking up and moving boxes

The alleyway interaction requires the players to move boxes for the other and so i decided to create 6 boxes on each side, three will be normal which the player can pick up and the others will be faded and not interactive. The key will be under one of the non interactive ones for their side so that the other player will need to move their box for them to reveal the key.

Creating the locked door and key

The key interaction is very simple, i created a lock area with a collider so that when the player picks up the key and places it in the lock, it will react to play an animation of the door opening and letting the player through to progress to the other side while also triggering some other events.

Leaving and Entering the Alleyway

when the player leaves the alleyway they will be able to walk over the collider which will trigger the other sides door allowing them to progress to the elevator section. I made it this way so that the other player couldn’t progress without first helping the other cross the gate to the other side (forcing the cooperation).

FMP – Developing some visual animations and more updates to the hotel lobby

Creating hotel Lobby Updates

After creating the initial general layout for the hotel rooms section of the experience I knew that I would need to add a lot more elements including doors to enter the room and also the ‘reflections’ for both of the players to even see one another.

I created a couple of wholes in the wall to show a large mirror in the main room area and also another whole for the bathroom mirror to allow some more ways to see one another at the end of the game and hopefully more ways to interact.

Interactive Door Handles

For this experience i wanted to try and add much more interactivity and one thing that i thought would be a small but impactful interaction would be the users being able to open doors themselves using their hands. So i went online and followed a tutorial using some unity asset store doors where creating some grabbable colliders you could grab and rotate the door to which ever position you wanted on its axis limits.

I did however have one small issue which was the door wouldn’t remain static and had some problems where once it was opened it could move on its own very fast and so this is something i need to look into further.

Hotel Lobby Animations

I began to be become a bit obsessed with trying to make the hotel lobby more interesting and really look more like it is part of a glitched and broken world. So to do this I wanted to add some animations which included moving and rotating objects that could float around the player above head and also have some lights that could change colour and flick on and off.

Finding music and Sound Effect files

XXXXX

FMP – Further Environment Developments, Adding Assets and Further Player 2 testing

Creating the Hotel hallway and rooms

This week i further continued to develop the environments and I have now created the general Hotel rooms layout for both player one and player 2 due to this being much easier to do for this particular section of the environment. I created the layout floating above the elevator so that the elevator environment can hopefully slot in easily for the player to continue to progress to this section.

Developing the Alley way with Assets

After i had created the initial layout or area for the alleyway I wanted to start populating it and making it look more appropriate and visually interesting to the player. I looked on the Unity Asset store and found an alleyway pack that i started to take sections and separate to manipulate for my own alleyway design as you can see from the photos below.

To also show that it is a realistic continuous alleyway i didn’t want dead ends made from walls or buildings and so I just decided to add a fencing which could be used to show the start and end of the playable section for the user.

The main element for this section is to also have a gateway that needs opening with the help of the other player and so i spent more time creating this particular element ensuring that it will be ready for interaction and animation from both players.

This section i also really want to showcase the floor reflection of the other player and i wanted to do this through puddles but for now i have simple cut out some holes in the flour and used a transparent material to allow the player to see the other side this way.

Developing the hotel Lobby with Assets

After decorating and making some changes to the alleyway i wanted to also decorate the hotel lobby since the player could spend a lot of time here and i wanted it to look interesting from the start of the experience. So i added some textures and also began to add some furniture and lighting overhead to make it more interesting to explore and i will continue to add additional interactions as i develop the project further down the line.

FMP – Initial Creation of Experience Environment for Player One

Starting to create the Environment Scene

During the week i started more to fully develop the environment in the Unity scene now that i had finalised the narrative more and also the map layout that i wanted to create for the game and so i started to make the ‘Primary scene’ for the experience.

Creating the Hotel Lobby

One area that i wanted to start with was the hotel lobby since this is the largest area and also the started tutorial area so felt this would be a good area to start. I couldnt find much online for some assets to use and i am not much of a modeller so i wanted to create the scene using Unity built in assets and you can see my process below for started to create the hotel lobby which including two floors, stairs, Pillars, concierge and door to the next area of the experience:

Creating the Hall of Mirrors

Behind the hotel lobby is the hall of mirrors sequence which again i decided to create using objects within the scene and i spent time creating each of the mirrors in different positions and sizes to create my idea of this hallway. Some of the mirrors i used a texture to make them dirty and some were clear to simply differentiate it a bit further to make some slightly interesting elements

Creating the Alley Way

One element that i was really excited about for my experience was the alley way which i could have removed because it isnt fully needed for the hotel but i wanted some visual differences and interests to the player. This was also the only way i could think to include a reflection in the floor that was large and could use rain effects. The alley way was then again created using assets from Unity and i created a simply low textured layout that would work for this area:

Creating the Elevator

The elevator was then created in the next section after this again using a simple mirror transparent area and also a simple box with sliding doors to simulate what the elevator could look like in the experience. I made the elevator fairly big to a standard one you would see in real like to allow the players more movement and meaning i could do more for the puzzles during the gameplay.

FMP – Creating Unity Research Test Environments and Recording voice performances for Experience

Finalising the Story Script

Recording the Dialogue

Now that i had all of the script and dialogue completed to an area that i am currently happy with, i decided to record the first set of dialogue for the first dimension or player One. Once again my friend Alex who has kindly appeared in all of my VR projects so far has agreed to appear as the voice player ones caller and we were able to record all of the dialogue in one sitting during this week which i was really gratefuly for.

IMAGE HERE

Recording the Alternate Dialogue

During this same week as well, my friend Tali also kindly agreed to be the voice of player twos caller and using Alex’s recording she very kindly spent time copying his timings and speed to match the same dialogue as his so the timings wouldnt be off for either player which i think all works incredibly well overall.

IMAGE HERE

Editing the Voice (Phone Sound Effect)

Once i had all of the voice recording for the experience, i spent some time editing all of the voice clips in Premiere pro using the high pass effect which gives it the static or echo like noise effect that you are hearing a radio or phone call from the voice so that it gives the user the idea they are hearing the person through a headset or ear piece hopefully in the final experience.

IMAGE HERE

FMP – Initial Photon 2 Tests for Multiplayer and Rigging a character model to an XR Rig

Testing Photon 2 Package in Unity Scene

For my experience to work in Unity i needed to have a way to have online multiplayer or Co-op in my project and this can be achieved through a package called ‘Photon 2’. I installed the package and using an online tutorial was able to set up and initialise the software in my project and using the messages could see that i was able to achieve a full connection.

However one problem with my current setup is that i cant truly test if this is working properly until i have another computer and headset to test this experience fully and so i will need to wait for a while until i have the set up to achieve which will most likely be after the summer break when i have access to the campus computers and facilities again.

Finding a Character Model

In my previous VR projects i have not needed to have a character model for my player because there was no one else to see them and so i would only need hands for the experience. I started to look online and at first i thought should i just get a blank human character or dummy model at the moment to achieve for for the time being. However i ened up finding a robot model that could be fully rigged which i found would work really well and i started to think further about how this could maybe be used in the final experience and be tied to the narrative of the story.

Rigging the Character Model

Once i downloaded the robot character model (which my friend named grasshopper and mantis which i liked the idea of) I added him into my Unity scene and began at looking how to add this to the XR rig. Using some online tutorials i found that using some skeletons from Mixamo i could rig the model so that it would fully work and move using a humanoid structure which can hopefully be developed later into the XR rig as seen from the images below.

Testing the character Model in VR

I then followed the tutorials further and with some trial and error i was able to rig the model to the XR rig and had the arms and head constraints all linked which worked well overall. It did require a few tweaks to make sure the hands and head appeared in the right places as the players real life positions but in the end it was working successfully as you can see from the images below.

Adding Legs and adding a walking Animation

For the tutorial we originall removed the legs because we of course dont have a VR setup that can also track legs so at the moment the torso was kind of floating around like a Rayman character which would have been fine but i knew it would be better if the players could see a full body in the reflections.

So once again following the tutorial we added back in the legs and using a walking animation from mixamo, I was able to download that animtion and attach it to the legs which meant that as the player moved around the scene using the controller joystick, the legs would walk as well which looks great for the other player in the scene as you can see from the images below.

Allowing the Model to Crouch in VR

One last element of the tutorial which i really liked was how the body could morph and changed depending on the players movements which also included how it would look if they crouched. So also using some more code and elements from the tutorial i was able to rig the body to bend its legs and also move up and down when on stairs which created a more natural movement and appearance when moving around the environments in my experience as seen in the images below:

FMP – Performance Capture, mirrored movements and research into co-operative experiences

Testing Motion Performance and Mirroring in Real World

After speaking to my teacher she suggested looking more into motion performance and how users copy or reflect one another in the real world when performing a task, guiding one another or being told what to do.

For some tests i thought it would be interesting to ask a couple of my friends if they would be nice enough to help with this experiment. So i set up a camera in their home and had both of them stand in front facing one another and we tried a few different ways that they could reflect or copy one another.

  • We started by having one simply copy anything the other does which was quite straightforward overall and only including subtle delays in the other user copying and with this particular person, we only found that sometimes they would mix up the correct arm to mirror or copy the other
  • We then tried to have both of the users copy anything that i said which included some actions such as lift your left arm, put up your right leg, turn right etc. and overall this was also quite straightforward and the users followed the instructions quite well and didnt really matter what the other was doing at the same time.
  • We then tried both users having their eyes closed and i would again tell them what to do and we did find some differences of course where users facing eachother would put up the mirroed arm which would be ones left and the others right but when their eyes are shut both would lift their right arm etc. It was also interesting the lack of awareness where the other person was or where they were facing after the instructions.

The only aspect which is subtle that i found was i asked both users to ‘Mirror’ one another and this would technically involve if one user steps back the other should as well but in some cases if one user steps back the other will step forward and follow which can create some interesting scenarios for the mirror techiques i found.

Research into Co-operative Experiences

My thesis is also looking into co-operative narrative driven experience in video games and so some research into this area is also relevant into my final major project:

  • EXAMPLES HERE