
My initial idea was to create a serious VR game about tennis, with the aim for the amateurs to learn the basics, while for professionals to keep training even during the lockdown period. I though that it could be structured into two parts: the first half there would have been a teaching session with a VR character that would explain each movement and train, while in the second part there would have been a match with the teacher, in order to understand if the player learnt effectively during the training session.
But during the days I started rethinking about the main idea, because there are way too much tennis VR games online, it is a toping discussed too much, therefore I started thinking about a new idea.
Conversation training for people on the Spectrum:
After watching on Netflix: “Love on the Spectrum”,
a documentary series following young adults with autism as they explore the unpredictable world of love, dating and relationships. The partecipants were helped by a relationship counselor, which gave them tips and ideas on how to try to keep a conversation interesting and lasting.
I though it could be helpful to create a VR experience that could help people on the spectrum to manage a conversation with a stranger while immersed in an environment, with other characters and elements that could disctract or put the player underpressure.
Watching the documentary can be seen that most of the partecipants are sensitive about loud noises and crowds, therefore I decided to add to my VR game cartain sound that play in random moments to see how the player reacts, and to set the experience in a public space such as a park.
what’s the goal of the game?
- The game would be a VR scoring game, where the aim is to try to keep up the conversation as long as you can, to do so the player would be given 3 different possible answers to the character’s question and is the player gets the wrong answer more than three times in a row the game ends
How’s the game structured:
- initially will appear a UI text on black 360° backgound, explaining what’s the game about and how to play.

- Create a black Panoreamic skybox and set it to Worldspace
- Add a UI Canvas
- Add a text as a canvas child and modify scale and font size
- Write script to change scene with UI button

- Secondly the player will be in a character selection menu, where he/she will have to choose with which character is more keen to have a conversation with:
- Set up the scene with a Worldspace Skybox and 3d elements ( I created all FBX models with Maya Autodesk)
- Add a UI canvas and inside of it add four UI buttons, which will be: Previous, Next, Start and a description button.
- Import in the project 4 characters ( I did it from https://www.mixamo.com/#/) and add them in the scene inside an empthy game object called “Character” in my case.
- Write two scripts: CharacterSelection and LoadCharacter, to be able to select which VR character we would like to go on a “date” with. (scripts tutorial on youtube: https://www.youtube.com/watch?v=3qlRgICRoeA&list=PL9q4vIWYrdpPox6puNiKBIveXM0PMln6J&index=4)


- Add CharacterSelection script inside characters object, set size according to how many characters you have and add characters.

- Add LoadCharacter script in the Main scene inside an empthy game object called GameManager and add characters in the same order as in the CharacterSelection script. Create another Empthy game object called SpawnPoint which would be where the selected character wil appear in the main scene.

- After choosing the character the player wil be in the main scene, where the conversation will be conducted. He/she will be in a public park surrounded by narure and people.
- Create environment (iI used Maya and I only imported the threes from Unity Asset Store), set up lights and Skybox
- Create a Crowd System using a dynamic NavMesh, to make characters move avoiding obstacles (I followed a youtube tutorial: https://www.youtube.com/watch?v=Oe9BZVnoedE&list=PL9q4vIWYrdpPox6puNiKBIveXM0PMln6J&index=5 and https://www.youtube.com/watch?v=vK6DlWkG4po&list=PL9q4vIWYrdpPox6puNiKBIveXM0PMln6J&index=11)
How to create Crowd Behaviours on a Dynamic Navmesh
- Add the characters to the Hierarchy (which will be the Agents)
- The characters need a goal location to travel to, therefore create simple cubes (agentHome)
- Select the floor and obstacles of your scene and make them all Navigation static

- Then open the AI Navigation window and bake the scene, this will let us know where the agent can/can’t move.

- Add Nav Mesh Agent component to the characters and adjust speed
- Write script: AgentControl and add it to the characters

- to make the characters walk-> go in the animation controller and add a walk animation (I imported it from Mixamo)
MULTIPLE ANSWERS QUIZ & SCORE SYSTEM
To create a sort of dialogue I though about having a quiz on the scene, where the player could read hipotetical questions that could be useful during a conversation, and 3 different answers and only one answer is correct.
WHAT MAKES AN ANSWER CORRECT?
the criteria is that an answer is considered correct when is responding clearly to the question but is also giving further infomation about us/ point of view and gives more tips on how to continue the discussion.
- To create the Quiz system I followed a youtube tutorial: https://www.youtube.com/watch?v=G9QDFB2RQGA&list=PL9q4vIWYrdpPox6puNiKBIveXM0PMln6J&index=6&t=899s
- https://www.youtube.com/watch?v=POUemIGCyr0&list=PL9q4vIWYrdpPox6puNiKBIveXM0PMln6J&index=15
Quiz Panel Retry Panel (initially disabled from Hierarchy)
after setting up the panels I started writing the code: to do so you need 3 scripts:
QuizManager:
QuestionAndAnswers:

AnswerScript:

and drag QuizManager inside an empthy game object and write down the question and answers:

Ambisonics Sound
Last component added in the game is the Audio. I used the Native Spatializer Plugin (ONSP) which allows to have a 3D sound in the game (Ambisonics).
I have a crowd noise in the Quiz scene and a Nature sounnd in the Character selection one to give more immertion.
