Skip to content

HW 4: VR Storytelling

The goal of this HW is to practice creating your own VR apps in Unity. Specifically, you will implement the 2-3 minute VR story you created for the previous homework!

You will also record a video of your story so that others can see it without wearing the headset. I will share these on the class website to showcase your work, so make sure to do your best!

I recommend you spend a week building and testing with the XR simulator, then the next week testing on the headset and creating the video!

Instructions

  1. Create a new project for XR (see the updated guide): Unity XR Setup
  2. Choose a locomotion method for your app: Free teleportation (recommended), node-based teleportation, smooth movement, comfort movement, or a combination.
    • The setup guide above will help you set these up.
    • Alternatively, if you wish, you can try setting up climb locomotion.
  3. Treat this app as still a "prototype" (although an actual one you can run). Thus, don't worry about polish. It's okay if some of the assets are duplicated or don't have a consistent theme.
  4. Start by building multiple scenes showing the different environments (or different states of an environment).
    • Remember to add all of these to the project's Build Settings!
    • You will need to add the XR Interaction Setup to every scene. If you've already configured it in one scene, I recommend making a Prefab, or just copy-paste the entire GameObject into each scene.
  5. Make sure you build an APK and test it on the headset (see next section)!
    • The headsets are available in King 140: see rules.
  6. When you are done, you will need to record a video showcasing your app (see requirements below).

Building

  • You will need to build your app to an apk file, which is the format used to deploy VR applications on the Quest.
    • You will submit the apk file to Canvas.
  • Follow the Build and Test instructions in the setup guide.

App Requirements

  • You must follow your prototype as closely as possible!
    • Try to have your props and other objects match your scene views and layout. Sometimes, you may discover you want to change things and that is fine!
    • Keep the story progression and every frame of the storyboard the same, including branching paths.
    • We haven't learned about complex interactions, so you don't need to include them (that will be the next topic we learn). Pointing at and clicking objects is sufficient.
  • You must have at least one locomotion method set up, as according to the instructions above.
    • Room-scale alone is NOT sufficient for this app! Even if your app takes place in a single room, include an artificial locomotion method.
  • You must have your app working and tested on the headset.
    • You will need this to record your video (see below).
  • Your story must be fully playable, despite being a "prototype".
    • You should not have significant bugs that make it difficult or impossible to play through.
  • Triggers: You will want to have things happen when the user interacts with something or moves to a location. For this assignment, you must include at least two triggers that make things happen (these can include both location and interaction triggers)!
    • Follow the lectures posted on Canvas to see how to create triggers, switch scenes, create/play animations, and play audio.
  • Restart Option At End: At the end of the story, you must give the user the option to restart the story, or quit. See the tutorial on triggers and scenes for how to do this.
  • Telling the Story: Ideally, a VR story is told through actions and the environment. However, for this homework, you are free to include in-game text or voiceover to help tell the story.
    • Use TextMesh Pro for 3D text!
    • Audio Clips can be used to play voiceovers. You can easily record audio voiceovers online or offline.
  • Interactions: Because we have not yet learned about complex interactions, you may use simple point-and-click interaction with objects using the ray interactor.
    • You can have text indicating to the user what they should do if it is not clear (e.g., "select the turtle to quit the game").
  • Length: Your story must be around 2-3 minutes in length to see everything (as based on your prototype)! This includes the time it takes to go through all branching paths by restarting the app.
    • I recommend including more environment for the user to explore, or voiceover to keep them occupied.
    • If it ends up being significantly shorter, and you followed your storyboard exactly, please contact me.

Video Requirements

  • You must also record a video to showcase your app. The video must be high quality (recommended 1080p, but at least 720p) with no watermark.
    • I recommend using an online tool to edit your videos, like Canva or Clipchamp, which are free. They are drag-and-drop and you can find many short tutorials online.
      • Avoid using premium assets, which will result in a watermark on your final video.
    • Alternatively, you can use any other tool, provided it can export videos in high quality and with no watermark. For instance, you can use DaVinci Resolve (free), Adobe Premiere, or even Powerpoint.
    • Export the video as .mp4, .mkv, or .mov format.
  • Title: Your video must start with a title screen, showing the title of your app, your name, and "CS 480: Virtual Reality Applications - Fall 2023" (or something similar to that effect).
  • Introduction: Include a screen after the title that clearly states the goal of your app.
    • For instance, "Goal: promote empathy for minorities in computer science by showing you their perspective and inner thoughts in the classroom"
  • VR Footage: You must record footage of your entire VR app from start to end, about 2-3 minutes in length. If it ends up being a little longer, that is fine. This footage must be high-quality and recorded on the headset. Watch this tutorial here to see how to record and download videos: https://www.youtube.com/watch?v=jGyl_R2bRvU
    • Important: In the advanced camera settings, make sure the following settings are selected:
      • Image stabilization: at least Low
      • Aspect ratio: Landscape
      • Frame rate: at least 24 fps
      • Bit rate: 10 mbps
    • Instructions: Play through the app like a typical user would, but make sure to include the entire experience! Showcase your environments (aka look around, don't just beeline it to the end) and interactions. If you have multiple paths, restart the app at the end and show off the alternate route(s).
  • Credits: After the VR footage ends, include a credit screen(s). Here, give attribution to any assets or resources in your project that required attribution. This includes any music you may have used in the video.
    • If you did not use any assets that require attribution, just put down "Created with Unity for the CS480 course" or something similar.
    • Feel free to include special thanks to anyone you'd like.
  • Music: Ideally, include some background music that fits your video. If your app has sound, make sure that we can hear it clearly over the music.
    • You can find free music online. Incompetech and the Free Music Archive are great sources.
    • Alternatively, you can omit the music, but a silent video doesn't engage the audience.

Submission

You will submit two things: the .apk file containing your finished app, and a short video of the entire experience.

Grading

Half of your grade will come from the video, the other half will come from the app. I will use the video to help expedite grading, so make sure you include the entire experience in the video!

Your submission will be graded based on the following criteria and the above requirements. Points may be deducted if one of the requirements is not fulfilled (Canvas will have full details):

App

  • App matches paper prototype
  • App playthrough is 2-3 minutes in length
  • App runs on the headset and is bug-free
  • The story is told well through actions, scenes, or text/voiceover
  • Includes at least one artificial locomotion method
  • Includes at least two in-game triggers (for events)
  • Includes restart/quit options at end

Video

  • Video quality good
  • Title card includes all information
  • Introduction states goal
  • VR footage recorded properly
  • VR footage includes entire experience
  • Credits shown at the end