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

FMP – Writing the Story Script/Concept Ideas, Unity Gravity Change and Mirror Moving Objects

Initial Script Writing

I have spent the past week working on a first draft script of the experience based on the narrative that i had previously thought of. I wanted the dialogue from the ear piece to fully guide and tell the player what to do as they progress through the experience including where to go, what to do next and how to interact with the other player in the alternate dimension depending on the task that they need to complete

Changing the Gravity for Player 2 in Unity

One aspect of my experience will involve an area where the players are mirrored below one another so this means that while one player will be walking normally, the other player will technically need to be upside down. This means that this particular XR rig for player two needs to have its gravity changed which with the help of my teacher i was able to do with this line of code so that the player can essentially stick to the under side of the floor while technically being upside down.

Mirroring Objects in Unity

Another element that i want to do for some of the puzzles also involves some objects interacting and moving together in both ‘dimensions’ and so again with the help of my teacher we developed some code which meant that if one object was picked up, it would reflect the X-Axis of that objects to move in the other environment as well and so the different axis can be selected depending on where the reflection is in the experience.

One problem that we found however was how that one object needed to be the main one and grabbing the sub object wouldnt work unless one script was turned off and then the other was turned on. On the other hand this could be used in the narrative so that perhaps the second object is faded in the other environment to show that it has slipped between dimensions and the alternate person cant interact with that object? could be interesting for the users.

Storyboarding The Puzzles

I decided that it would be helpful to do some sketches or drawings of the puzzles and interactions that the players will be completing in the experience so i decided to do some storyboard like sketches to show this process as you can see from the images below.

FMP – Initial Story Ideas, Interactivity, Puzzle Ideas for the experience and further Unity Experiments

Story Development

Over the past week i have started to develop a story script of the narrative that i could tell in this experience. To keep the experience fairly simple i did not want to include any NPC characters and i rather wanted to have voice characters that will guide the player through the experience because the NPC will essentially be the other player.

I thought it would be interesting if the narrative involved an arean that has been locked off or changed so that an agent or operative will need to be sent through to find the cause of this area being torn between the multiverse or dimensions. While in this area the other player will be in the reflections also trying to find the cause of the multiverse but in the opposite dimensions which would mean that these two worlds are parallel and following a similar narrative but of course will have visual or aehsthetic differences. One element i thought could be interesting is the idea of having a male voice in player ones ear and then a female voice in player twos ear but they are reading the same dialogue which will make it interesting for replayability.

I still want to stick to the hotel idea with different areas that the players can navigate through such as the hotel lobby, elevators, rooms, hallways, outside alleys, car parks and a multitude of different options the players could explore which also allow for different options of interactivity or puzzles to complete.

Interactivity in the Environment

Further Unity Tests (Showing the Concept)

To further show my concept, ideas and thinking to my teachers i created some examples of how the players will see eachother using a character model in unity and creating the mirrored hallways, stairs, mirrors and all other assets etc. to show how the unity build will work together as you can see from the images below.

Developments to The Environment Map

After creating my initial sketches or ideas for the map layout i bagan to rethink it a bit further and develop where the players could be at any given time and how the story can be narrowed down a bit further. As you can see from the image below i have now created quite a large starting area which will act as a tutorial of sorts for the players to get used the environments and gameplay mechanics of the experience.

The blue tiles are where i plan to make reflections in the environment such as those on the left and right and also above and below. This layout i have also began to think specifically about the different break points and areas in which the players will see eachother and of course for my concept to work i will also need to teleport player two around the player one map which also needs to be taken into consideration as well.

FMP – Environment, Map designs and Initial Unity Test Concepts

After realising some initial ideas for my final major project and thesis I started to further think and develop my idea and how i could progress further with my project.

Initial unity Test Concepts

One idea that i was playing around with is how the player can see the other player through reflections in the environment and how this can be achieved through Unity.

I decided to create a demo hallway of how this practice could be achieved and one inspiration that I got for this concept was through a previous project shown to my by my teacher Herman. His game involved a never ending corridor that changed as you moved around it but his method of doing this involved having multiple rigs set up around duplicates of the same environment which would move the player seamlessly between them as they crossed certain paths or areas.

So i started to think about how this could be done in for my multiverse reflection idea to have the player two move around player one without them noticing. So i made one corridor and then made multiple duplicate corridors around this area with multiple XR rigs that could be turned on and off as the player walks through colliders which will hopefully seamlessly move them around these corridors creating the illusion of the reflections in the world.

I did look into how you could use camera in the game to simulate the reflection but the results weren’t promising resulting in warping or the perspective just not working very well rather than just actually seeing the player around you.


Ideas for the narrative and Story

I began to think of a general narrative for my experience which ended up involving the multiverse and the player being able to communicate, see and interact with their otherworld counterpart which will be player one and player two. The narrative will involve the multiverse falling apart in one single area and this area the player will see one another through reflections within the world.

The area in which the world is falling apart is a hotel and so this allows me to create one sort of area or corridor that the player can progress through and some puzzles or tasks can be created around this area allowing the players to move through the hotel environment. I started to think about what kind of tasks the player could complete and also how the hotel could be used in these tasks:

  • Puzzle 01 (Mirror Room): Visual puzzle through reflections where users have to interact and see objects at the same time through visuals only
  • Puzzle 02 (Raining Alley): visual puzzle through up and down reflection to find objects underneath reflected objects in the sapce
  • Puzzle 03 (The Elevator): This set piece could involve one reflection being able to see the buttons while the other needs to interact with them or move certain things out of the way (Elevator Button)
  • Puzzle 04 (The Hallway): Sound based puzzle where players talk and communicate

Each of these tasks or puzzles can involve ways in which the players can utilise maybe hearing one another, seeing one another or one only being able to do a certain thing that the other cant. These ideas will continue to be developed further.

Drawing out the map designs and world layout

After deciding some of the initial story ideas of setting the game in a hotel environment, I started to draw or sketch out some ideas of how this world layout could look and how the mirror reflections could be utilised in this environment.

As you can see from my initial sketches below I have essentially drawn out a long corridor that both of the players can progress through together to complete some tasks to eventually reach the end of the experience and complete the game together. The Red markers on the map are doors that the player will not be able to go through and the blue markers are doors or entrances that the player will be able to open and progress through further.

The purple markers are the more tricky elements which show how the players will see one another in the environment such as seeing each other on the reflections in the walls on their left and right. However i have also thought about how this can be enhanced further and the players could see each other above and below themselves as well as you can see from the larger purple elements in the map.