05/12/20: Thesis Completion and Moving Forward

Thesis is complete! I turned in my paper and successfully defended on April 8, 2020, and have since graduated from OSU with my MFA.

Most of the last few months were spent writing and revising my thesis paper, but I didn’t really post any updates along the way. That’s what this post is for.

As of the end of January, all work on our Narrative Performance case study prototype has come to an end. Taking the final steps in production to have the experience ready for the Zora Neale Hurston Festival signaled my transition from production to data analysis and writing.

While the prototype is not at all in a polished state, it was stable enough for us to test some of the design decisions arrived at from our past two years of work.

Final prototype video, April 2020.

Zora Neale Hurston Festival and ACCAD Playtest Day

Tori and I ready to present at the Zora Neale Hurston Festival, Jan 30 2020.

Tori and I were set up next to the academic conference at the Zora festival. Our IRB submission was finally approved in December, so we came equipped with our verbal consent script, user surveys, and screen recording software. Over the two days of the conference, we gathered 13 user responses and screen recordings, primarily from users who had never experienced VR before or minimally in the past. We had some really wonderful conversations with conference attendees about the potential impact of this experience in a museum, as well as several revealing comments about the experience itself. A few users were unsure of their role in the experience, mistaking Lucille Bridges’ character for Ruby, and many pointed out the technical flaws in the mob’s animations and audio. Looking back at their comments, I wonder if working on this project constantly has desensitized me to the uncanny valley effect that some of these avatars may be creating by intersecting with the user on their walk down the sidewalk. Spotting the technical issues didn’t seem to overwhelm the user’s focus on the experience, but definitely stayed in their minds as they exited and discussed their thoughts with us. I tried to relieve this effect after the first test of the day by moving some of the avatars further back off the sidewalk and away from each other, but sometimes the collisions occurred with the federal marshals or Lucille Bridges.

Some of the users also mentioned not realizing that turning their head was impacting their speed. I did not inform them of this ahead of time, as I wanted to see what would happen if it was a mechanic users weren’t consciously aware of. I forgot to account for the VR acclimation period that occurs in first time users - I have noticed during our demos and for other VR projects that users who aren’t as familiar with VR tend to not move their heads or bodies much in the experience unless reminded to do so. In spacing out the avatars walking with the users, I assumed that there would be more variation in speed. However, when users look straight ahead the entire time, the speed remains at 1 for the duration of the experience, and there wasn’t enough distance being created between the users and the avatars walking in front of them. I had to make some adjustments to the walking distance allowed between the avatars to alleviate some of the users passing through the avatars.

The overall experience was rewarding, and the small number of users gave Tori and me a chance to work out the kinks in our presentation flow and delivery.

A few weeks later in February, we presented the same project at ACCAD as part of Playtest Day, an event for students to gather feedback on their in-progress projects. We were able to gather over 30 responses from a user base that tended to include more experience with VR, and added the survey responses to our collective data.

Thesis Writing and Defense with COVID-19

Following the ACCAD PlayTest day, most of March was spent finishing my thesis paper. I haven’t written much on my blog about my writing process or concept; to summarize, I was creating a framework for designers who are creating narrative VR content that takes into account the contributions of the user along with those of the designer. How do we as designers consider the user’s role in the design process? I used the concept of the magic circle as a starting point for much of this, outlining what would be the components of the VR magic circle and how one would be constructed by the designer. The design process for the Narrative Performance prototype and overall data was analyzed within this framework and the implications of the user responses from the prototype. I’ll post a link to the actual paper in the future as I’ll probably be referencing parts of this moving forward in personal projects.

The actual writing process was surprisingly satisfying, despite being interrupted by COVID-19. Tori and I were able to complete all our data gathering and project work prior to the university closing down. Spring Break was the second week of March and I never went back after that. It took some time to get into the groove of writing at home with my partner and dog present - it was hard to sit at the same desk for 12 hours a day, not moving between my GRA hours and schoolwork. It became a matter of “if you’re in the mood to write, do it” and adjusting the rest of my schedule around that to get it done.

I finished my paper on April 1, and defended on April 8 over Zoom, which was…. odd. There were roughly 18 people on the call with their videos off, so I was just talking to my powerpoint for the majority of it.

But it was successful, and I only had to make a few minor changes to my paper before final submission to the grad school. I was able to complete and submit my GIS in Cognitive Science not long after.

WHAT’S NEXT

I’m at a point now where I’m finishing up my GRA hours and transitioning into a new full-time job - more on that next time. But what I’m seeing now is a need to strengthen my portfolio beyond prototyping.

Quarantine Cards

So naturally, I started by branching out and making a Cards Against Humanity clone.

Social distancing and quarantine has really done a number on my love of game nights. I’ve been facetiming with my sister and brother-in-law every Saturday night for the last five weeks to do a networked Cards Against Humanity game. Except every site that we’ve used has come with its issues - a limited number of cards/expansions, unable to switch out problematic or terrible cards, difficult to see the text or move the cards around on different platforms. Well, I’ve never done networked play or text parsing in Unity - time to learn!

I started building the card logic first, entering card options in an excel spreadsheet and loading the into Unity. The spreadsheet is shuffled and then random entries are assigned to each card, which are removed from the list once the card is swapped or discarded.

Test video for card logic of Cards Against Humanity clone.

Making this has meant being able to include all our expansions, create custom cards, and throw out the ones that will never be played/are at little TOO problematic. So that’s been a fun learning experience and side project so far. I’m going to jump into Photon later this week to learn how to set up networked play and figure out the second half of the card logic - how to get cards submitted for the card czar.

GOALS:

  • Return to environment art on a small scale, using static vignettes of a wider story.

  • Consider how to insert users into a narrative by adjusting a specific narrative moment to suit VR affordances.

  • Polished portfolio pieces

  • Consider the VR circle in the creation of the environment, and analyze for persistent patterns. I want to continue my thesis discussions here.

  • Explore Unreal Engine and become familiar again. I’ve lost touch in the last two years and want to be proficient again. I may start this project in Unity and move to Unreal as I work out the timing and scope of the project.

  • And on a personal note: reconnect with reading my favorite novels, because graduation has opened up some time for hobbies!

01/18/20: Spring Semester Goals

The next few weeks are the final weeks of production for this case study - in two weeks, Tori and I are flying to Florida to demo at the Zora Neale Hurston Festival. We then have the month of February and first week of March to make any modifications. At this point, production is more about cleanup of the main case study experience, and tiny prototype experiments based on proximity to other avatars and how to fully construct the environment.

Reaching the end of last semester, I had a rough draft of what our final experience was going to look like and a head start on the writing portion of my thesis. I created a priority list addressing our deadline for the Zora festival in two weeks and for the end of March:

Priority List for final production of Ruby Bridges case study.

Project Process

Based on the priority list, I wanted to line up my goals for the Zora festival and for the end of the semester to work on them simultaneously. The first thing I’ve been working on has been creating a consistent proximity in the walk with the user, Lucille, and the two federal marshals. At the end of December, all three characters would reach the end with the user, but would often feel too far away during the walk itself. It didn’t seem natural to have Lucille so far away from the user in a hostile situation, or to have the marshals walking three meters up the sidewalk while the mob avatars are crowding in.

In my test navigation scene, I set up the three avatars and put in a base user animation with some speed variations.

Group Walk Test using test prototyping space.

One of the biggest problems was getting the speed and animation adjustments right regardless of what the user is doing. From the user’s perspective, if they’re slowing down then it means they’re not looking straight ahead down the sidewalk, which gives me a little bit of leeway in the adjustments I make. Slowing down the avatars to an unreasonable speed (often looking like they’re moving through water) doesn’t matter as much because they will speed back up when the user looks directly ahead.

Implementing this into the main project scene was going to require reorganizing how the main control script was running the scene. Initially, the script was controlling all of the dialogue, audio and motion triggers. This got a bit messy and difficult to debug. Using this primary control script as a template, I created Scene1_MainControl.cs to house the booleans used to indicate scene status and runs the timing for each phase of the experience. From that, I created separate scripts to control the motion for all of the avatars in the scene (including the user) and the audio/dialogue. With that separation I’m able to get a better handle on debugging down the road.

New control script setup.

The audio script also took some prototyping to get right. I was having problems last semester with mob members initially playing all at once versus a randomized wait time. Distributing the AudioSources in the scene and layering these sounds still needs a lot of work, which Tori and I have already reached out for. I focused strictly on timing the audio and ensuring that the mob chants selected are appropriately randomized from a set number of clips.

Next Steps

Those scripts are currently in the scene and functional, so in the next two days I will be turning my attention to the environmental setup of the scene. This is where my Zora goals and end-of-semester goals overlap - I’ll be using a separate prototyping scene on Unity to place prototyped blocks and houses in order to determine the best placement for these assets in the world, and explore different configurations for the mob. I thought about using Tilt Brush or Maquette for this, but I found it’s much more efficient to use Unity because I can mix and match the assets I already have. I have already finished assigning all the textures and materials in the scene itself, and will continue to add environment assets in between the setup of the houses and cars. I will also need to time the door animations for the user to exit the car, and time to cleanup the user’s exit from the car itself.

Next week I will have documented the prototyping scene and resulting changes in the environment, as well as a runthrough of the experience with the separated script setup. Tori and I will be taking an Oculus RIft with us to demo the project in Florida, and so we will be conducting these tests using both an Oculus Rift and a Vive to check for any other issues.

12/06/19: Five Week Summary

I’ve reached the end of my in-class window for this project, and it’s time to go back and review what’s happened in the last month.

I started this project fairly optimistic about what I would be able to achieve. My initial task list was ambitious but not out of the realm of expectation with the number of prototypes I had behind me. What I didn’t anticipate were the hangups on character animations and locomotion. Tori and I have been working on getting this motion capture data processed and ready for the project over the last four months, so I focused on some initial isolated problems while I was waiting on the data. As it started to come in during Week 2, we realized there were some issues with the characters having major offsets and occasionally walk cycles with broken knees. I was also having problems aligning them with the car model I brought into the scene. Tori took those models and adjusted the animations to fit the car and fixed them, mostly focusing on the introductory car sequence. Within the last week of the project, we had all of the animations turned over to me. As I was bringing them in, I realized that the scene was cluttered, and I was going to need a different method to bring the characters down the sidewalk. To refresh the project (and myself), I started over with a fresh scene and spent the last three days of work bringing in the final animations, working on implementing the new locomotion system, and cleaning up my personal workflow with scripting.

12/06/19: Progress update. Video is a little choppy due to all the functions not yet being fully implemented!

What I Learned

For as many issues as I had with this project, I did learn a lot.

NAV MESH USE

I only used NavMesh once or twice prior to this project, and had to learn how it worked fairly quickly in order to time my characters motion through the script. I had some issues aligning the animation with the motion, but really that was just a chance for me to get better with setting up Animation Controllers.

CHARACTER ANIMATIONS

As an Animator, I stay really true to my corner of environment art and development. I generally don’t enjoy working with characters beyond the occasional sculpt. Prior to this prototype I spent most of my time working on interactions or the user themselves, not so much with worrying about cleaning up animations or transitions. There was a rough learning curve this time around. I had to link up multiple animations and make sure the transitions worked with the NavMeshAgent’s motion. While I still don’t enjoy the process, I feel much more confident about troubleshooting these areas of the project in the future.

PROJECT/SCENE ORGANIZATION

Speaking specifically here about keeping character versions in line and how my scripts are organized. I’m the only one really working on this project in Unity so I will sometimes let my organization slip in lieu of efficiency… which later is a pain in the butt. Tori and I were constantly testing different versions of characters for the Federal Marshals and Lucille, to the point where I eventually lost track of which animation was associated with which FBX file. Cleaning out my project helped enormously, but I eventually figured out I needed to be more attentive to my archive folder and communicate file structures with Tori for when she sends me Unity Packages of characters.

Additionally, my scripting has been much more organized. I began implementing headers for the inspector to avoid the paragraph of variable inputs, and that keeps the script much more organized my end this time. I also stuck to using one primary control script to keep track of events in the scene and overall story elements, while keeping mob behavior and audio as their own separate (but linked) scripts. I’ve since been able to work much more efficiently knowing where specific functions are housed.

PROTOTYPING SCENE

I usually have a practice scene early on in the development process, but it tends to get abandoned once the project has increased in complexity. I kept this test scene close at hand this time around. I’ve found that the complexity often makes it harder for me to tell where problems are arising, so bringing a prefab into that scene and testing specific scripts and functions has made troubleshooting much faster. I used this for the Head Rotation scene, testing several animation transitions with the characters, ensuring the Mob Behavior script was handling audio properly, and an initial NavMesh learning space

What’s Next

As we know, this prototype doesn’t end here. At the end of the five weeks I managed to debug and troubleshoot plenty of these issues, but there is still much further to go. Tori and I will both be discussing this project in the next week, requiring it to be functionally sound. In January we will be showing our experience at the Zora Neale Hurston festival in Eatonville, FL, so I will be focusing on getting the visuals up to par and working with Tori to adjust any animations that still need attention. While I have begun many of these tasks, this is the current to-do list:

  • Grouping function for the primary characters.

    • Because the user can control the speed at which they move down the sidewalk, the Federal Marshals and Lucille’s avatars need to be able to slow down and resume normal speed based on how far away the user is.

  • Mob encounters

    • Part of the Mob Behavior script, certain characters will react based on user proximity. This needs to be tied in with the audio (already implemented) and an additional animation trigger.

  • Audio mixing

    • Mob audio needs to be set to sound “muffled” while the user is inside of the car and at full volume when out on the sidewalk. Additional audio effects can be tested here as well for an outdoor city scenario/background audio. I have begun this process with the Mob Behavior script looking at individual phrases and sayings for the characters, but the mob chant, background city audio, and the car sounds still need to be brought in.

  • Complete Car Exit

    • Characters now exit the car appropriately, but timing needs to be adjusted for the user’s exit.

  • Implement scaling script

    • Needs importing from prior prototypes.

  • Prologue and Main Menu scene

    • This project only focused on Scene 01. I will create a package of the Prologue sequence from the previous project to be imported and applied to this one. A main menu and additional “end sequence” still need to be created.

  • Looking at environment calibration

    • A reach, but could be utilized in the main menu to determine the user’s position in the playspace and adjust the environment to them? Not necessary, but would be easier for future demos.

  • Visual Polish

    • Set to the side for the moment, final textures, assets, and post-processing needs to be applied to the scene. This also includes additional terrain assets such as grass, trees, and plants.

With as many weird curves this prototype had, I’m pretty proud of what I was able to learn and accomplish, particularly in the past three days. I think that in the next week I will be able to address many of the above points on my task list and really be able to get some feedback on the state of the project. I will continue to make update posts next week of where I ended up and the feedback that I receive from my thesis committee!

12/05/19: Time for a Reboot

Sometimes you just reach a point where what you’re doing in the project isn’t working, and it’s time to start fresh.

I hit that point this week with the Ruby Bridges case study.

All of the issues that Tori and I have had with the various animations really came to a head when I was trying to get the sidewalk animations coordinated. I realized that the system we were using to drive all the character’s locomotion (other than the user) just wasn’t working, and I was spending more time trying to fix little timing problems than actually setting up the scene. The project was also getting cluttered with previous versions of animations (we found another issue with the male walk cycle causing broken knees). I started over with a fresh project on Monday night, only bringing in the finalized animations as Tori sent them to me, and set up Scene 1 to be driven by NavMeshAgents.

I’ve only actually used NavMeshes maybe once or twice, so this was a bit of a learning curve. I had to figure out how to coordinate the agents getting on/off the meshes for the car scene, make sure there wouldn’t be any interference from the car agent while all the characters were inside, and then determine the best way to drive them using waypoints. With as much time as the reset took me, I’m still convinced that I was able to get more done in a much more organized fashion than I had before. I kept a test scene to work out the animation issues I was having, and then brought the solutions over into the primary Scene 1.

Still from Test Scene, testing character animation transitions.

Using Test Scene to troubleshoot and test HeadLookController.cs

(originally found at https://wiki.unity3d.com/index.php/HeadLookController#Description)

Getting the characters to move along with the NavMeshAgent was easily one of the most frustrating parts. The instructions are outlined pretty clearly at the Unity website, but some of the animations were jumpy or not running once the blend tree was triggered. Some of these issues are still unresolved; I evaded further hours of blend tree debugging by taking the one functional animator I had and just rebuilding all of the character animations on top of it.

Animator controller for Federal Marshal 1, showing all transitions and triggers from the car sequence to the end confrontation with the State Officials.

I’m trying to be a little smarter with my scripting this time around as well, making generalized functions that are flexible enough to be applied to multiple characters, decreasing the repetition in the script. There’s more dialogue in this prototype than the past, and I had some problems making sure the audio sources for the characters were functioning properly. But we made it through, and now the car dialogue works well. I’ll be able to test this more thoroughly once the mob is in and I’m coordinating the audio changes there.

Current State

Status update of characters walking with navmesh. Dec 5 2019.

What’s Left?

As we can see from the above video, there’s plenty of cleanup that needs to happen once the base functions are complete. Implementing door animations, making sure that characters are facing the right way, and adding in the final pieces of the puzzle so that booleans are triggered on time.

I still have a fairly large to-do list now that I’ve got the characters walking together and able to look at specific targets. Implementing that script is the next immediate task. I’m split on what comes after that - I could begin bringing in the mob characters and setting them up. This has to be done before I can start working on any interactive events. But I also need to add the user to the primary group moving down the sidewalk. I focused on getting the characters behaving in their ideal patterns before introducing the user to the scene to interrupt them, but I now need the user to test a script that will keep the group within close proximity of each other. Below is the current list of tasks left:

  • Fully implement “Look At” script for primary group

  • Mob arrangement

  • SteamVR cam setup

    • Includes animation down the sidewalk, group proximity, and coding mob interactions.

  • Scaling environment script (needs importing)

  • Import Prologue scene from previous project version

  • Audio mixing for Scene 01

  • Main Menu

It’s a lot, but things are already going significantly better. I’m starting to implement more organized practices for myself, such as including headers in my scripts to make the Inspector a little kinder to the eyes. Small thing, but it makes me feel better when I have to use it.

The next update will be my overview of how the project went and a video of its state, as well as an overview of the things that need to happen to complete the project for a January exhibition.

11/30/19: Tiny Steps Forward

After the previous update, Tori and I ran into some time consuming animation difficulties on our case study. We had animations that needed to be adjusted to fit the car we’re using in the scene, and Tori needed time to set everyone up in Maya and get those bugs worked out before they made their way back to me. So most of last week was spent cleaning out the project of old animations, testing the new things Tori sent me, then cleaning them out again.

I have the car sequence nearly completed with the new characters; everyone is siting where they’re supposed to be, the animations are timed, and the user can now successfully get out of the car and move down the sidewalk with Lucille and both federal marshals individually. Making sure they stay together as a group is another challenge. The doors aren’t fully timed and animated yet because I chose to save that for a later round of tweaking. Right now, I need to get all the broadstrokes happening in the scene to make up some ground. There are a few flaws with the characters - one of the marshals has an arm that breaks and spins when opening Lucille’s door, and the walk cycle that we’re using for some reason breaks all the rig’s knees when it’s applied. A problem to solve in January; right now, I just want everything in the scene and timed.

User view exiting the car with Lucille.

This iteration has especially been testing my workflow with Tori. I think in a future iteration we need to work more closely together on the capture process for the motion, because a large portion of my time on this scene was spent just getting all of the characters in the right place at the right time. I have to divide the animations I’m given because they don’t match the audio cut for the instructions, and or the length of the drive up to the school. Creating more intentional shots with a bigger emphasis on timing and physical props might reduce some of the cleanup and issues we’ve seen this time around. The bottleneck in our skills has been frustrating, as development halted while we solved the animation issues and replaced assets.

Now that I’m moving forward, I’m working with the assets as they come to me. I began testing “encounters” with the mob and federal marshals using empty game objects in Unity to represent mob members. As the group approaches down the sidewalk, the distances from these tagged objects will be tracked. Once close enough, the objects are destroyed and the federal marshal reacts by telling the mob member to back off. This can be useful in setting up encounters throughout the scene once the mob members are actually in place.

Test encounter with empty game object. Also visible: the leg deformation with the Federal Marshal walk cycle.

Moving Forward

This is technically the last week of development for this project and in terms of goals, I’m still back in Week 2. I am prioritizing the completion of the sidewalk locomotion with the group, the encounter at the end with the state official, and the mob placement by the end of the week. A reach goal would be to spend time integrating audio with the scene, assuming I can get all the assets in. Visual polish and environment development will have to wait until cleanup time in January; for now, a functional scene for the user is all I’m looking for.

11/17/19: Animation Setbacks

With as much success as I had last week making progress and getting the project set up, the end of this week put me several steps backwards.

I started out prepping some of the audio clips we need for the project, because so much of this experience relies on these mob members yelling unrelentingly terrible things at you. In the past we recorded a few basic chants that we heard in our research and put them in as placeholders on repeat with a few individualized phrases yelled from avatars. There’s a little more dialogue in this version, and Tori recorded a variety of different mob interactions so that we could create a more dynamic audio experience. I went in and cleaned up each of the clips, balanced the audio, and then compiled some of the takes into a “group chant” to help ease the load in the Unity scene.

Group chant compilation in Adobe Audition.

With that task complete, I started in on getting the car introduction completed. I had all the avatars in last week, I just needed to separate some of the animation clips, set up triggers, and begin timing it out. I quickly got in over my head setting up all the parameters for all four characters, so I scaled back and began just getting the timing down for Federal Marshal 1 (driving). Then I added in the second Federal Marshal and Lucille Bridges. There was a slight scripting issue I had with the audio repeating, but jumped that hurdle and got to where all of the characters were reasonable aligned.

From here I was ready to develop the transition from the car to the sidewalk for the user. At the end of the video above I noticed an issue with one of the marshals snapping back into the drivers seat - as it turns out, the rig in Unity was still set to generic, while the Walk animation was imported and set to Humanoid. The walk animation wouldn’t play, and the avatar resets. I switched the rig, and chaos happened. The rotations of the rigs were causing some intense offsets to happen from where I originally had the avatars set, to the point where making the adjustments was near impossible. I brought the problem to Tori and we discussed it a bit - this is a video I sent her last night of the issue I was having:

We decided the best move from here was to just have Tori animate the sequence in Maya with the car model, so all I would have to do is bring it in and apply the scripts. It’s going to take a little time to get that process going so I’m currently at a bit of a standstill (also waiting for the rest of the mocap characters). Once I have that animation back it’s probably going to take a bit of adjusting of the script to get everything cooperating again, but at least all of the characters will stay where they’re supposed to be on-start.

Next Steps

From here, it’s kind of a waiting game. I need to get the assets from Tori to move forward. Once I have that, I’ll set up the intro sequence again and get them moving down the sidewalk by the end of the week, ideally with starting the interaction at the end. It’s a bit of a setback but I think I’m still in good shape to finish out this coming week on schedule.

11/09/19: Updates & RB Final Build Begins

Semester Updates

Since my first post this semester is about three weeks before the semester ends, I have a bit of catching up to do here!

The majority of these updates will be about the final build for the Ruby Bridges case study and thoughts about relating it to my paper writing. The earlier part of my semester was spent working a bit on the Oculus Quest with a five-week project based on house museums. My team and I made a prototype for a house museum on Jackson Pollock, which was a fun foray into Quest development. I also spent a bit of time playing with Vuforia and AR by making a Lord of the Rings companion app for iOS that provides additional information and context when looking at a map of Middle Earth, such as the paths taken by notable characters throughout The Hobbit and the Lord of the Rings trilogy. I’m updating the MFA section of this site with the details and documentation of those projects.


Planning

From there, Tori and I have been working steadily on what will be our final version of this project. Taking into account all of the things we’ve learned from the last seven versions or so, I compiled a list of key tasks to address in this version:

  • Main Menu:

    • Creating a natural introduction to the gaze-based interaction. In previous versions the user was required to look at a specific button to trigger it, but I would like to make this a little more related to the content of the experience itself.

  • Prologue

    • Adjusting the position of the images and text in the prologue for a seated static user. The new form of locomotion (discussed below) does not require a user to stand, and so the images in a circular configuration can be difficult to see. Instead I will be re-arranging the images to be on a single plane across from the user, gallery-style.

  • Scene 01

    • Locomotion. This has been an issue since the very first prototype, and we’ve gone through several formats as we try to determine the optimal amount of user agency in the scene while keeping user attention on the scene around them. Our last prototype led us to the conclusion that it wasn’t reliable or reasonable to explicitly attempt to direct a user’s gaze to move forward through the space, as it takes attention from the events around them. Talking to Scott, he presented us with a middle-ground: putting the user back on a rail, but allowing them to control the speed by looking around.

    • Construct a full narrative scene using new mocap characters. Tori has been working hard this summer and semester on cleaning new mocap data for the scene. We’ve run into some software issues so it’s taken much longer than expected, but I will be placing all the new data into this scene. This includes a new interaction between the federal marshals and the state officials once reaching the front of the school.

    • Audio. Bringing in new variations to the audio so that the mob doesn’t appear to be repeating the same phrases every 10 seconds, as well as arranging dialogue.

  • Ending Sequence

    • Previous demos have ended with the walk to the school. Because there are no other scenes currently following this up, I will be book-ending Scene 01 with a sequence leading the user out of the space, with conversation on what happened next or drawing conclusions to today. The scene will have a similar setup to the Prologue, leading the user back out to the Main Menu where it can loop again seamlessly for demo purposes.

Schedule

Initial schedule for Final RB Case Study, created 10/28/19

Week 1 Progress

Just as my schedule shows, this week I started a clean project and began importing all the assets. I made a timeline to plot out specific interactions in the project. It’s helped me visualize a few of the scripting decisions I’ve had to make so far - instead of relying on timing, I will be using global booleans in the scene to determine when specific actions occur. Giving the user the ability to control their speed down the sidewalk makes the timing variable anyways, and this is the best way to ensure all of the interactions occur regardless of the user’s pace.

Timeline for project flow.

From there, I focused my attention on working through the gaze-based rail system. Expecting pitfalls, I gaze myself 2 weeks to figure it out and troubleshoot. It turned out to only take 2 hours, and integrated well with the scaling system I had set up. At this point, if the user has the camera rotation between 50 and 130 degrees (with 90 degrees facing straight down the sidewalk), the speed of the animation down the sidewalk remains at 1. If the user passes either of these thresholds, the speed will decrease based on how far past the threshold the user has turned.

Screencap of locomotion script in-play.

Locomotion script written for rail system.

With this out of the way, I began to work on the next steps on my schedule. I built the prologue into a gallery wall instead of a circular arrangement and added in the timing/narration. This has prompted further conversation from Shadrick and Maria about the sequencing of the images, the narration being used, and how I might incorporate the gaze-based mechanics into this scene. I’m still not convinced on adding any gaze functions to these scenes - I don’t want this to be the space for users to linger, I want it to be an area to gain context for the scene ahead. Now that the functions are the scene are set up, I’ll be looking at the sequencing and narration used to see if I can build a stronger narrative for the user going in.

Initial Prologue setup.

I began bringing in the finished data as Tori uploads them. The federal marshals are in, as well as Lucille. I found a car asset with an interior and doors that open (harder than you would expect), and began to construct the introductory car scene. The clips for the federal marshals were separated out so that they can be timed in the script, and I’m in the process of locating the walk/idle/talking motions for them for the later dialogue sequences.

Goals: Next Week

I have to adjust my schedule a little bit to make up for the fast locomotion work. This is what I plan on having done by the update next week:

  • Car sequence complete with anims and dialogue attached

  • User transition from car to rail animation

  • Additional animation imports for Lucille

  • Main menu scene addition with stand-in gaze button.

By next week I should have some in-game footage to show with the animations intact and some additional models added to the environment. I will also be introducing some of my thesis writing concepts and how it relates to the decisions I’m making here in the project.

04/20/19: Phase 2 Implementation

PROGRESS

Last week’s successful gaze development paid off. Scene 01 no longer requires the use of controllers!

Big achievement of the week was adding in all the gaze-based teleport points to the scene I constructed for demos 2 weeks ago. The actual script for applying a ray to the camera and teleporting to a point with a trigger didn’t require much modification. The trouble I had was deconstructing EVERYTHING that was attached to the original, time-based teleporting and attaching it to the new ones, then making sure to activate/deactivate the next and previous points to prevent the user from going backwards. I also added a light to each point that increases in intensity when starting at the teleport point as an indicator for myself and other players.

Me testing gaze teleporting in Scene 01. 04/19/19

After adding these features and testing myself, I found a few errors shown in the video above.

The range of the headset was set too short, which made it difficult to reach the next point. It prevents the user from triggering anything too far ahead of their position in the scene, but unfortunately it also prevents me from reaching some of the teleport points. I organized the mob variations before a visual of the next step was actually required to progress, but because the ray only reacts to objects in the Teleport layer, the user can look straight through the legs of the mob and still activate the next point without ever gaining direct visual contact. And the doors of the school are intended to be a trigger that ends the experience - instead, the user just keeps activating the teleport function and re-spawning directly in front of them. After addressing these issues (minus the points visible through the mob’s legs), I added a gaze-based “start” button at the main menu to create a completely controller-free experience and introduce this concept before actually entering the scene.

Script commenting for

For my own process, I realized that many of the scripts I’m writing/using will be useful to us moving forward in development and in various other projects. I took a quick break from scene development to add comments to the scripts for my own sanity and ease of understanding down the line. Just a new habit that I’m trying to develop, thanks to Matt’s Programming for Designer’s class.

We were fortunate enough to host a VR Columbus meeting on Friday evening at ACCAD and demo this new scene with gaze teleportation for the first time. Below is one of the recordings I took of a user moving through the experience from the main menu all the way to the end. Sound from the experience is included below.

User playtest at ACCAD, 04/19/19.

While users were in the experience, I was watching the scene editor (as pictured above) to get an idea of where people were looking and changes that needed to be made for easier gaze detection. Blue lines in the scene above indicate where the ray is being cast from the user camera. When the line turns yellow, the user is making contact with the teleport point.

After watching a few users go through, I think I experienced a case of “designer blindness”, where after working on an experience for a certain amount of time you get so proficient at moving through it that you miss some potential user issues. I was really surprised at how much people tend to move their heads in VR! The teleport points require you to hit the collider for 3 seconds before activating, and for most people they would only manage to make it for two before their head twitched and the count restarted. From this, I imagine making the colliders larger would help. The further they are away, the more difficult it is to activate. Users would tell me “I’m looking right at it!” when really the ray was hitting the floor just below the trigger point. The light cue was somewhat helpful, but I think the user needs more than that to figure out where their gaze is actually falling. I think adding a light reticle to the camera will help this issue, and I’ll be testing it in the next week just to see how it feels. I’m concerned that the reticle is going to add a layer of separation between the user and the scene, reminding them again of the technology and breaking flow/immersion.

I know this is just a prototyped proof of concept, but the teleporting points are not especially obvious in the scene and their function is not clear from the start. Tori and I are still required to brief the user before the experience begins, reminding them to look around, to stand up, and that the points are even there. We’ve been planning on using Lucille Bridges’ character as a means of progression, walking ahead and calling our attention with audio cues, but even then I’m not sure how to transfer these attributes of “focus” and indication of action to a human figure. Or even if it’s required- maybe a glance at Lucille Bridges’ face is enough to move the user forward. This is a point of experimentation for Tori and myself beyond the current prototype.

What’s Next

Overall, I think this is a good foundation to build from. Now that I have an understanding of user action and progression, I feel I can start layering smaller interactions from the user and mob into the scene. This phase is due next week - I’ll save my thoughts on the summer for then. But in the immediate future, Phase 2 requires troubleshooting and adjustment of all the colliders in the scene. I will also be testing some reactions to proximity and gaze with one or two of the crowd members. Ideally, a user will look someone in the eyes and cause an insult to be hurled or an aggressive motion to occur. To aid in user gaze accuracy, I will add a reticle to the camera to see what that effect is like.

OUTSIDE RESEARCH

Research this week included three experiences on the Oculus Rift: Dreams of Dali, The Night Cafe, and Phone of the Wind. The descriptions in all three really drew me to them, as they’re meant to be contemplative experiences requiring you to navigate space and uncover the narrative (or lack there-of).

I started with Dreams of Dali. This experience was on display at The Dali Museum in St. Petersburg, FL for over two years, and explores Dali’s painting “Archaeological Reminiscence of Millet’s ‘Angelus’”. Looking at their page about this experience, I noticed that the experience is available in multiple formats for VR headsets and a “linear 360” view. This might be the first time I’ve seen that much variety available on a museum page. The VR experience was also covered by admission to the museum - nice of them, the ones I’ve done so far on-location have required additional ticket purchases.

“Archaeological Reminiscence of Millet’s ‘Angelus'“, Dali.

I had to laugh when the experience started up. The very first screen was instructions to stare at a glowing orb for 3 seconds to move around, with glowing orb included to begin the game. Interesting case study for the problems I was discussing in my Phase 2 project! This experience required me to move around large distances, and their inclusion of a reticle helped enormously. It only appeared when my gaze was near an orb, which left me free to explore the rest of the world without obstruction. On the actual experience, I was able to navigate in whatever order I pleased. Some orbs were only accessible from certain points, and at other points a new event was triggered. I moved out to the fringe of the desert on the other side of these structures and encountered elephants with the legs of an insect towering over me and making their way past. They continued to walk throughout the scene. Or I turned a corner and encountered a lobster sitting on top of a phone. Audio in the scene included soft rumblings or ambient effects, said to represent Dali’s potential thoughts in the scene. Few words were distinguishable to me but it really added to the dreamlike state of the place.

In the teleport actions themselves, the user actually slides through the space quickly to the given point. There’s no fade in/fade out or blink occurring. You’re able to see the ground moving below you and your destination. The only time this became an issue for me was when ascending or descending the long spiral stairs in the tower - I didn’t realize the next orb would just throw me directly up to the top. Not too dissimilar from when Saruman propels Gandalf up to the top of Isengard in Lord of the Rings: Two Towers.

Anyways. I feel that context is important in this experience. Had I been visiting the museum I would have probably had more of an appreciation for the things included in the experience. I have a very base knowledge from taking Art History in early college, but my understanding of Dali doesn’t go much further than that. As a user at home, that additional information must be sought out independently from the experience itself. I also wonder if the “linear 360 experience” is crafted to form a particular narrative or just a path that covers all of the points. I didn’t have time to go into that this time around, but I’d like to make a closer comparison in the future.

I moved on to The Night Cafe: A VR Tribute to Van Gogh, made by Borrowed Light Studios.

I’m going to have to revisit this experience, as the only way to navigate was using a console controller. Kind of odd to make that the only source of input, but until I can get that set up I’ll just give my static impressions of the first scene. The assets and animations are very beautiful, and the style of the room definitely matches. In the spaces where they had to guess at detail, such as the wall and door behind me, the makers said they took reference from other paintings and were able to match his style pretty well. The intro leading up to this sequence was an image of The Night Cafe painting before fading into the actual scene.

The last experience was Phone of the Wind, an interactive film based on a phone booth in Japan used to connect and speak to departed loved ones.

This phone booth is well documented, actually sitting in the town of Otsuchi, Japan, and built as a way for people to grieve and heal after the 2011 earthquake and tsunami. In the experience, you listen to three people talking to their loved ones in the booth. I was really surprised by the types of visual content included; users begin the experience from the perspective of a drone actually flying over the booth. As each story begins, the world transforms into an animated scene representing what is being said. At the beginning and end of the experience, the world is made of 3D assets. I’m not sure the transition was smooth due to them being full world transformations, but it definitely added variety and personality to each story.

The interactive aspect of this film comes in at the very end. The user is given the option to enter the booth themselves and leave a message for a loved one. I really love that this was part of the experience, and I can see some similarities between this and Where Thoughts Go. Users can choose to skip though and move on or to take a moment to privately reflect. The few instances of movement in here with the flying drone or the user entering the telephone box is forced, there is little control over your location in the scene.

It was difficult to find any information about this experience beyond what’s given on the Oculus store - the developer’s website is now private. But snooping around the reviews was… its own experience. Some users loved it and were crying, others thought it was stupid and shouldn’t be allowed on the store due to it not being “fun”. From their comments I gather that many, like me, had no idea this was a real place with its own history and meaning to a community, not just a filmmaker’s idea. While I don’t think that information is necessary for the purpose of the experience, I wonder why this information isn’t more readily given and attached to real life events. Knowing the history helped ground the story for me.

CONCLUSIONS

These were very different interpretations of real objects or places. I think seeing how some of the gaps in information were filled in with reference, though for the two I was able to fully experience I think the outside context and experience was not fully filled in for the user. I feel that I needed that additional information to truly enjoy and understand the content to its fullest extent. I think designers are taking these experiences that were initially in exhibitions and putting them on the Oculus or Steam stores, but not accounting for that missing information and how that experience outside of the headset is part of the overall design process. These outside research experiences this week have really made these points clear to me, and have been helpful in clarifying my thoughts about how to organize the content outside of VR in my framework.









04/07/19: Rebuilding for Phase 2

Over the last week, the majority of my focus has been on showing demos of our thesis project at the ACCAD Open House and the Student Art Collective. Quite some time has passed since Tori and I were able to show our progress to anyone outside of ACCAD, and as we didn’t have a working prototype from last semester… we needed to make one that was able to be shown and experienced by the public.

I took what was our Fall prototype and completely rebuilt it between Saturday and Tuesday evening. Part of this was to bring the project forward into a new version of Unity, but I also wanted to include the height adjustment from Phase 1 and a different mob configuration. This build would also require the user to begin the experience sitting on a bench before standing to progress, an interaction I have not tested before in this scene.

My Phase 2 project was temporarily put to the side in order to get this ready for public, so I was not able to test out of the gaze-based interaction. I decided instead to hit a middle-ground between Phase 1 and Phase 2- timed teleportations. Not in the control of the user at all, but a little less disturbing than the sliding motion we previously used. This included a fade in/fade out to signal the motion was about to occur - a fairly simple visual, but actually caused a ton of technical issues. The fade would show up on the screen and not in the headset. For future reference, there is a SteamVR_Fade script that you’re required to use in order to make that appear properly in the headset - normal UI settings do not seem to work in this scenario!

The new environment height scaling feature also changed how I put certain assets in the scene and parented things to each other, as offset pivot points and use of a Unity Terrain asset caused some weird placement issues when the scene was run. And through both demos this week we faced some Audio problems, with the volume being either too low or coming out of the wrong ear. Two solutions to this: better headphones, and making sure the VR camera has an audio listener attached. The SteamVR Camera prefab does not have one attached automatically! And yes, it took me way too long to figure that out.

I rebuilt the Prologue sequence based on some feedback from earlier on in the semester, including more images of Ruby and taking into account the order in which the images appear to create better flow in the scene. For demo purposes, I also included a “start menu” triggered by the operators (Tori and I - spacebar to start the prologue), and an “End of Phase 1” scene that loops back to the start menu.

The Student Art Collective on Tuesday went well - we were set up at a space in Knowlton with the Vive Pro and Wireless Adapter. Actually, that was my first time using the Wireless for anything, and it was perfect for this project. Most of the attendees were students, though we did have a few parents/professors show up and try out the scene. It was a 3 hour exhibition, which gave Tori and I a good measure of how long mobile setup would take and get back in the groove of giving a 30 second explanation/VR prep to new users. There was a short calibration process during setup with the bench to make sure users were facing the right way and the bench was in the center of the play space, but it everything ran smoothly after that.

Friday afternoon was the ACCAD Open House. Tori and I showed our Six-Week prototype at last year’s event, and played that video on a screen this time around to show our progress in the year since. We didn’t have the Wireless for this event, but the scene worked just as well with a tether. We had some wonderful conversations with guests about our work and where it’s going. It was easier for me this time around to speak about our project - I felt much more informed and confident now that we’ve grown from the “exploring technology” phase to the “conceptual development” phase.

FEEDBACK and CRITIQUE

Both of the demos provided valuable information. The most common reaction and comment we received after users exited the experience was about the height change in the scene. Having the mob members towering over and changing at users, some of whom are used to towering over others, was intimidating and placed them in the correct mindset for this experience. We also heard that they appreciated the prologue in the beginning as framing for the experience. It seemed that more of the guests this year had heard of Ruby Bridges before, and once teacher even told us she had a classroom of middle school kids who love Ruby’s story.

The main issues we experienced were technical or had to do with user flow in the experience. Audio was a real issue in the beginning - fixed by cranking the volume to accommodate the noise of the space and using better headphones (thanks, Tori!). The fade in/fade out of the scene seemed to be fixed by having both the SteamVR_Fade script active and the original Fade image active, though sometimes it would flicker between teleports. In the Prologue sequence, images appear around the user in a circle - which would be no problem if the user was in a spinning chair, but on a bench it tends to break flow when they have to turn their head all the way back around to continue looking. Some users who stand to get out of the car will continue to walk around, while others stand in place- not really an issue, but it poses a risk of tripping over the bench unless Tori or I move it. This was especially dangerous with the Wireless demo - users without a tether are more likely to forget and take off. The Student Art Collective demo required one of us to stand at the periphery of the lighthouses once a user was in to make sure they didn’t wander off into the crowd or walk into something.

CONCLUSIONS

Overall it was a great experience and I appreciated getting to see how far we came in the last year. And now we have this great demo that I can use to prototype for Phase 2! The upcoming week has calmed slightly in GRA and interview obligations, so I will be able to actually catch up on my production schedule and begin to implement it into this prototype. Along the way I’d also like to polish some of the issues that came up this week and smooth it out, such as the asset pivot problems I discovered and the weird fade flickering.

03/08/19: Video Update on Phase 1

This is going to be a relatively short update on how far Phase 1 has progressed in the last few days, but finally including some video footage of the scene working, along with some of the tools I’ve been brushing up on to apply this week.

The above video is a quick demo of the teleport point placement and scaling in the scene.

What was most surprising for me was just how long the sidewalk actually became. It felt like our last prototype was dealing with issues of time because the walk down the sidewalk was too short or the walking motion was too fast. At the height of a child, the building itself becomes this mammoth imposing object rather than just a set piece or a destination. The teleporting really emphasizes the distance too, all of the points are just at the edge of the teleport curve. I think I got lucky there. Overall this layout feels smoother and I’m excited to start putting in the other scene elements.

On some technical notes:

  • During our demo on Thursday it was pointed out that some objects aren’t keeping scale with the ground or street planes. In the video I can definitely see the lamp posts hovering off of the ground- this may just be a matter of making sure the final assets in the scene are combined into one set object. Still experimenting with that.

  • I found in this scene that the teleport point on top of the stairs was actually really hard to get to - you can actually see me struggling with it in the video. I underestimated how large the stairs would become at that height.

  • Which leads me to the suspicion that this height ratio isn’t quite right. I recorded this experience while seated, so I thought it might just be something wrong with the math. I repeated the same thing while standing and had the same issue. I can play with some numbers to get that right.

  • This was my first time testing SteamVR with a headset other than the Vive. Up until now all of my development has been using the Vive headset and controllers. Oculus is what’s available to me in this moment so I took the opportunity - it connected no problem! Teleport was already mapped to the joystick on the Oculus Rift controller. Cue my sigh of relief for a more versatile development process.

I have begun working with the car animation, starting with placing the user.

030819_Phase1a.PNG

I made the loosest possible version of a block car in Maya with separate doors and brought it in just to have something to prototype with. This is where the user’s location in space is going to become an issue- I have to make sure they’re aligned with the driver’s seat. We’re going to have the user sitting in the demo anyways, so we might be able to just calibrate the seat with the environment and have the user sit on the bench.

Working on a GRA assignment this week I also learned how to use the Audio Mixer in Unity. Turns out I can group all my different audio tracks together and transition between various parameter states. Who knew!

Apparently not me. I suspect this is going to fix A LOT of the audio issues we were having in the last prototype, especially having to do with consistency - some of the volume levels were… jarring, and not in the intentional design type of way.

Critique

In class, I think I opened up the wrong version of the project, because all of the environmental objects were scaling without the teleport points attached. When I got home I realized that it was all fixed on my current version! One less thing to tackle.

Going away from the technical for a moment, Taylor posed an interesting question to me: how do we categorize this experience? I realize I’ve just been using the word “experience” but we’ve also discussed “simulation”. Adding that to the long list of queries for this open week ahead of me - confirming a proper term for what we’re working on, and justifying that definition.

What’s Next

  • Car animation

  • Composing Crowds

  • Connecting theory with my actions

  • Resuming my lineup of VR experiences

03/03/19: Phase 1, Midway

In the last two weeks, the physical production of my Phase 1 project has slowed in favor of investigating the theories and plans behind my thesis investigation. I came to the realization midway through Week 2 that I was approaching this prototype much the same way I was approaching the last three and not weighting my theoretical framework or design goals into the decision making process.

Starting with the main project development, here are some of the achievements from the last two weeks:

  • Fixed a bug where the environment was adjusting to the player height but left behind the Start Point, causing the player to actually appear way off mark.

  • Getting the start point to actually move the player to the right spot. I can move the play space, which at least gets us to the right area. This may be more of an issue in the car scene, but the teleport points will cut down potential issues of running through objects or agents in the crowd.

  • Added teleport points to the scene.

    • This actually checked me on my scale once again. I initially only had three points along the sidewalk, and on testing it in the Vive I found that the pointer from the controllers couldn’t even reach the first point! To compensate for the user’s smaller relative size, I added two extra points, made the space in front of the school a teleport plane for free movement (to be explored in the crowd composition portion of the project), and placed a point on top of the stairs to avoid awkward stair collisions in Unity.

  • Major debugging time with SteamVR Input.

    • This was a huge issue, once again. But I’m slowly getting better at figuring out where the misstep is between Unity and my controller bindings. I brought a project from home to the Vive at school, and that particular computer had bindings that for some reason disconnected. Nearly two hours later, we had them satisfactorily connected and shut off the haptic feedback - for some reason, the default teleport in Unity had the controllers vibrating every 5 seconds.

    • Also came to the realization that controller actions only show up in the SteamVR Input Live window if there are functions in the scene that require the bindings to be active. So if I pulled up the window to check the bindings before, say, having the teleport prefab in the scene… it would look like the buttons aren’t working. But it’s because they aren’t being called! One of those tiny little victorious moments of understanding.

Phase 1: Next Steps

I am certainly behind in development for this scene - I should be finishing up the car animation. Next week is Spring Break and I will be here in Columbus cranking out work for the majority of it, which should make up some of the lost time from this week. Therefore the goals for this week are:

  • Complete the car animation

  • Troubleshoot/Playtest on Thursday with classmates

  • Ensure a smooth transition from the car to the sidewalk

  • Check in with Tori about any potential new data to add to the crowd/car, and be in a good position to move forward next week.

Theoretical Developments

Over the course of last week, I had several meetings about where this project is conceptually and where it’s going. I briefly mentioned this in my previous blog post introducing Phase 1, but want to begin documenting my progress here as I work through the language and questions required to articulate my thesis.

My thesis goal is to articulate a framework for designers of VR narrative experiences based on the weight of specific VR design elements (gamification, user identity, movement, visual design, etc), stemming from my interest in how to direct users through a scene with high levels of implied agency (control over the camera). The Ruby Bridges project is operating as the first case study for this framework as a historical narrative. After completion of Scene 01, I will be utilizing another narrative of a contrasting “genre” - currently thinking about mythological fantasy - to test this framework and compare how it is utilized when presented with two different stories.

A huge part of this is recognizing the specific roles that users and designers take on within the scene. In film, these roles are fairly distinct: the “designers” (writers) operate as the authors of the story being told. The directors and crew operate as the storytellers, visually interpreting the material that has been given to them. And the “user” in this case is a viewer, an audience member whose role is to view the narrative that has been visually curated and placed before them. These lines get a bit blurred when we consider video games. There are still writers and designers operating as the authors and storytellers. Users become players, who function as an audience for the world put before them and, to a limited degree, an author of their own experiences. Players have a degree of agency to them that allows them to function and impart change on this world within the game, though the storytellers can still choose to restrict this agency by placing boundaries on the edge of the world or controlling camera movements. Yet every player will play a game differently.

Virtual reality requires the creation of new roles. Users in a virtual space have more inherent agency than ever before with control over the camera and their physical pose. Designers still function as authors and storytellers, but also as directors are responsible for directing a user through the scene. Users, through their newfound agency within the world, then become part of the world as an actor.

030319_Roles.PNG

With these roles in mind, I’ve begun constructing a loose pathway for defining the goals of the experience and the elements that should be considered when working within VR. I designed this with a top-down path in mind, though it’s brought up some side questions about whether a bottom-up approach beginning with exploration of one particular element would be possible. The map below is a working representation of the pieces I’m currently trying to put together, although I know this is a sliver of the questions that are asked when in the design process.

030319_WorkingFramework.PNG

It was pointed out to me last week that the Phase 1 project is tackling questions of the role of the User as an Author/Actor. I’m focusing on how the user moves through this scene, and whether giving them that agency is right for what the scene demands.

I haven’t added any VR games or experiences to my list recently - moving apartments has me at a bit of a disadvantage in this moment. But I have instead begun tackling a spreadsheet to examine various elements in these games I’ve been talking about and how they compare across a wide range of experiences.

Tori will begin adding her thoughts and experiences to this list. Next weekend I’ll be going to the Rosa Parks VR experience at the National Underground Railroad Freedom Center, and I was given some good references for experiences to examine over the next week - Traveling While Black among them.

Connecting my theoretical framework with my developing project, outlining specific goals, and being very clear about what I want these experiences is going to be the priority here for the next few weeks.

2/17/19: Phase 1 Begins

Projects like Orion and spending time on other VR applications has been a welcome break for exploration, but this week brings the return of thesis. We’re working on projects in phases, with Phase 1 lasting for the next five weeks.

I’ve been thinking about our prototype of Scene 1 (Ten Week Prototype) from the Ruby Bridges case study last semester. The final result was not a functional experience technically or visually, and after speaking with peers and receiving feedback I realized that I needed to go back to some fundamental concepts to examine some of the decisions made in designing the experience, such as timing, sequencing, motion, and scene composition. I feel that our last project started getting into the production value too soon when we should have been focusing on the bigger questions: how does the user move through the virtual space? How much control do we give them over that movement? What variations in scale and proximity will most contribute to the experience? These are the questions we started with and seemingly lost sight of.

In developing the proposal for my project I also began considering more specifically what I’m going to be writing about in my thesis. And, more importantly, beginning to put language to those thoughts. Recent projects have been allowing me to question what parameters designers operate with when we’re designing for a VR narrative experience. It gets even more complicated when we start breaking down the types of narratives being designed for. In this case, the Ruby Bridges case study is a historical narrative - how would those parameters shift between a historical narrative and a mythological narrative? What questions overlap? Orion was a great project for examining design process for narrative, and now in shifting to another, I’m interested to see how that process carries over here.

Phase 1: Pitch

Production Schedule for Phase 1

I will be creating two test scenes to address issues face in the 10 Week Prototype. The first will address Motion- how can a user progress through this space in the direction and manner necessary for the narrative while still maintaining interest and time for immersion? And does giving this method of progression to the user benefit the scene more than the designer controlling their motion? In the previous prototype we chose to animate the user’s progression with a specific pace. This time, I will be testing a “blink” style teleporting approach, allowing the user to move between points in the scene. Each of these points creates an opportunity for myself as a designer to have compositional control while still allowing the user control over their pace and time spent in that moment. This also provides an opportunity for gamified elements to be introduced, which is something I will be exploring as I move through the project.

The second scene address proximity and scale, creating a scene where the user adopts the height of a six year old child and scaling the world around accordingly. Even to the point of exaggeration to experience that feeling for myself. It was suggested in a critique last semester that I create these small little experiences and go through them just to understand how they feel for my own knowledge, and I agree with this method - more experience would certainly help inform the final design decisions. I will again be experimenting with the composition and density of the mob outside of the school to create some of these experiences.

Week 1

I purposefully scheduled Week 1 to focus on planning out the rest of the project and getting a strong foundation built. I planned out what I was going to do specifically in each scene and brainstormed various ways to solve technical issues. Writing my project proposal had already helped solidify these plans, but I’ve developed this back and forth process with my writing. My sketchbook helps me get general concepts and ideas going, where the proposal then puts formal language to these ideas. While writing the proposal I usually find a couple of other threads that I hadn’t considered, which brings me back to the sketchbook where I then update the proposal… the cycle continues, but it has been especially productive over the last two weeks.

I focused on getting the overall environmental scaling and test space created this week using assets from our previous prototype. The issue was having the user start the experience in the right scale and position every time. Locking in the camera in VR is a pretty big “NO”, and Unity makes it especially difficult as the VR Camera overrides any attempts to manually shift it to its proper spot.

Scaling was much easier to figure out than I expected - I’m just scaling the entire set to account for the height of the user at any given point based on the height of a six year old (1.14 m) rather than forcing a user to be a height that physically doesn’t make sense to them. I expected this code to be much more difficult, but so far it seems to work pretty consistently when I test it at various heights.

I’m still working on getting the recentering function to work. I found a lot of old documentation from 2015 and 2016 that doesn’t account for all the changes in Unity and SteamVR. There’s some good concepts, and even a button press would be great for now. Still planning on continuously exploring this, and I expect I’ll be working on it throughout Phase 1.

NEXT

  • Begin Blink teleport testing through the scene.

    • When I made this schedule, I didn’t realize that SteamVR has a Teleport Point prefab. So, yay! Production time cut down! I’ll be using that spare time to add in primitives simulating the placement of the crowd and brainstorming potential gamification/timing. I may also go on a search for some audio and add that to the scene as part of my testing.

  • Experiment with button pressing versus gaze direction. How does the scene feel without controllers? Would gaze navigation be effective here?

  • Playtest #1 with peers, gaining feedback on the button or gaze mechanisms and other developments made during the week. Will also gain feedback on the scaling and positioning of the user.


OUTSIDE RESEARCH

The games I played this week were all very physically involved with a lot of motion required on the part of the player. However, none of these games used methods that required teleporting or “artificial motion” via joysticks or touchpads. All were based on the motion of the player’s body. Even more interesting, I experienced a strong sense of flow in these games than in past titles, though each for different reasons. Considering my thesis, which would not be this action oriented, it’s helpful to see how specific components in this games - sound, motion, repetition - are utilized in ways that ultimately make a flow state possible.

FLOW VIA SOUND: Beat Saber

Beat Saber is a VR rhythm game that operates as a standing experience, where players use their arms and lean to hit the cubes with sabers on the beat and in the indicated direction. Unlike the others, I’ve been playing this game for a few weeks and have had time to examine increase in skill level as well as what kind of experience I was having. It was initially very difficult to get used to the cubes flying directly at me and to be able to react to the arrows indicated on the cubes - a longer adjustment than I expected, actually. I play games like this on my phone using thumbs, and my body knew what it needed to do… but was having a difficult time getting my arms to react to it. After a couple of weeks I can now play the above song on Hard mode, which is what I’m including for this group of games.

Every time I play a song, I usually get to a point where I experience flow - able to react to the cubes as they come and follow the rhythm without really even thinking about it (and significantly better than if I am thinking about it). It’s a state that feels instinctual and occasionally feels as though time slows down, a common description of flow. Sound is what’s driving that experience, without the music this would be much more anxiety-inducing and stressful than enjoyable.

After playing I was thinking a lot about Csikszentmihalyi’s book Flow, where he outlines several important features in a flow activity: rules requiring learning of skills, goals, feedback, and the possibility of control. Even with varying definitions of what is considered a game, most require those components in one way or another. He references French psychological anthropologist Roger Caillois and his four classes of games in the world - based on those, Beat Saber is an agonistic game, one in which competition is the main feature. In this case the competition is against yourself to improve skills and others to move up in the leaderboards. However, as frequently as I did fall into flow, I also fell out of it easily when a level grew too difficult or beyond my skills.

FLOW VIA MOTION: SUPERHOT VR

I’m not quite sure how to categorize Superhot VR, but it’s the most physical game I’ve ever played in VR. Players can pick up items or use their fists to destroy enemies making their way towards you in changing environments… the twist is, time only moves if you move. Every time I rotate my head the enemies get a little closer, or if I reach out to pick up a weapon suddenly I have to dodge a projectile. As the number of enemies increased with each level I found myself kneeling, crouching, or dodging. There is no teleportation or motion beyond your own physical movement.

Everything here is reactionary. I experienced a strong level of flow, unlike the intermittent experience I tend to have in Beat Saber. Time being distorted here and used as a game mechanic almost seemed to echo those flow states. The stages are all different with minimal indication of what is coming next, and often the scene starts with enemies within reach. I didn’t have to think about what buttons or motions were required to move, it was a natural interface - I could just move my body to throw punches or duck behind walls. While this was effectively immersive and did result in a strong flow state, I was pulled out of it immediately every time I ran into a wall in my office or accidentally attacked an innocent stack of items sitting on my desk.

Sound was minimal, which I very much appreciated but sets this game in stark contrast to Beat Saber. The focus of this game is motion, not music or rhythm. On a continuous side note from the last two weeks, death states in Superhot VR were much less disruptive than the other games. The entire environment is white, so the fade to white and restarting of the menu isn’t very jarring or disruptive to the experience. It was easy to jump back into the level and begin again. This may be an interesting point for transitioning my thesis between scenes- having a fade or transition that is close to the environment rather than just doing the standard “fade to black”. I suppose it depends on the sequence I’m designing… a thought for next week.

Elven Assassin VR

And last, this is a game that combines a little bit of everything. Elven Assassin VR requires you to take the role of an archer fending off waves of orcs planning to invade your town. Your position is generally static with some ducking and leaning, and the ability to teleport to different vantage points within the scene. This deals in precision and speed, and the physical motion of firing the bow. The satisfaction of hitting a target in this game was immense, and I ended up playing until my arms hurt. The flow in this game comes from the rhythm of motion - every shot requires you to nock, draw, aim, and release the arrow to take down one enemy. There isn’t really a narrative occurring in this game at the moment. It tends to operate more like target practice, and the concentration required was what induced that flow state.

Falling out of flow was a little easier here with technical glitches - tracking on my controllers would get disrupted and my bow would fly across the world while I fell to a random orc sneaking through the town. Their use of a multiplayer function is also really interesting here, and the social aspect may be an interesting avenue to explore with this game.

Conclusions

I didn’t actually expect to talk about flow at all, it was just a happy side effect. These are three VERY different games and that experience of flow was the strongest commonality between them. This kind of goes back to game design as a whole rather than specifically VR design. But those little differences in how each game approached physical action and reaction to the environment really drove that point for me. Where Elven Assassin VR focused on action that was repetitive and chaotic, Beat Saber focused on the rhythm of those actions and applied them to the template of the song. Superhot VR left the chosen action up to you, but suggested some paths and required movement to occur in order to advance. The result was neither repetitive nor rhythmic, but required control.

I am not planning on making experiences so heavily focused on action and movement as these, but bringing what I’ve seen here from the choice in motion to smaller actions or interactions with the environments in my thesis work might help me answer some of the design questions I’m exploring in the Phase 1 project. How can a user move through a space? I’m considering teleporting from point to point, but have not yet thought about the potential secondary actions on behalf of the user - those spaces where gamification could occur. These games re-framed motion for me, reminding me to define more specifically the type of motion expected of the user, and ensure that the motion (or lack of) enhances the experience itself.

First Year Wrap and Ruby Bridges: 6 Week Conclusion

In the first week of May, Tori and I completed our work on the 6 Week Prototype for the Ruby Bridges Project. It was presented, and then folded into a much larger presentation about our progress throughout the first year of our MFA program. As classes are starting back up, I wanted to make a post summarizing my journey over last year, the results of Ruby Bridges, and my current starting point. 

At the beginning of the year, I focused my efforts on the interactions between game design, education, and virtual reality. For me, this meant a lot of exploration and a technical education in these areas. 

My early projects focused on improving my skills in Unity. I worked on team projects for the first time in Computer Game I and obtained a real introduction to game design and game thinking. This also allowed me to develop my own workflow and organization in Unity. While exploring my personal workflow, I was interested in potentially using VR to organize materials and form connections throughout the scope of a project using Google Cardboard. The result was the MindMap project, which was a great introduction to mobile development and Google Cardboard, but provided limited usefulness for my work. It was tested using materials from my Hurricane Preparedness Project, a 10 week prototype developed to provide virtual disaster training for those in areas threatened by hurricanes. This was my first time using Unity for VR, and developing with the HTC Vive. The topics explored, including player awareness in VR, organization of emotional content, and player movement in a game space would eventually become the basis of my work on the Ruby Bridges Project. 

There has been a clear evolution in my own design process and focus, mainly with a shift from visual organization to functional prototyping. Earlier in the year I still had a heavy focus in visual elements and art assets, though with game design projects that experience suffered because the game was not totally functional. By the spring, I had shifted completely into prototyping and non-art assets. All of these projects challenged my process and boosted my technical skills, and then I brought these technical developments into a narrative context. 

EDUCATIONAL AND EMOTIONAL STORYTELLING THROUGH IMMERSIVE DIGITAL APPLICATIONS

In the Spring, Tori Campbell and I began working on our concept for the Ruby Bridges Project. Working together, we would like to use motion capture and virtual reality to explore immersive and interactive storytelling. Ultimately, we are examining how these concepts can be used to change audience perception of the narratives and of themselves. Ruby Bridges' experience on her first day of school is the narrative we've chosen to focus on. 

Ruby was one of five African-American girls to be integrated into an all-white school in New Orleans, LA in 1960. She was the only one of those girls to attend William Frantz Elementary School at 6 years old, told only that she would be attending a new school and to behave herself. That morning, four U.S. Federal Marshals escorted her to her new school. Mobs surrounded the front of the school and the sidewalks, protesting the desegregation of schools by shouting at Ruby, threatening her, and showing black baby dolls in coffins. 

This scene outside the front of the school became our prototype in VR. 

The Four Week Prototype focused on developing technical skills that we would need moving forward, specifically navigation, menu/UI, and animation controls. In doing so, I learned not just how to make these functions work, but the pros and cons of each.  This allowed me to make more educated decisions in the design of our Six Week Prototype. We gathered motion capture data from actors to work with the data in a VR space, and to help experiment with controlling the animations. 

My goal with the Six Week Prototype was to create a fully functional framework for the experience, something with a beginning, middle, and end. I created a main menu, narrative transition into a Prologue scene, the actual Prologue scene where the user is Ruby's avatar seeing from her perspective, and then an interactive scene where the user can examine the environment from a third person view. This view would provide background information/historical context, and drop into the scene from another perspective. Where the broad goals of the Four Week Prototype was technical development, this project was examining different levels of user control, the effects of this on the experience of the scene, and how to create an experience that flows from scene to scene smoothly even with these different levels of control. 

This prototype became a great first step into a much larger project. We learned a lot about creating narrative in VR, and though demonstrations with an Open House audience we discovered just how much impact a simple scene with basic elements can have on the viewer. 

THEORY

Broadly, my thread going into the year was how virtual reality can be combined with game design for educational purposes. Through these experiences, I was able to refine that to how immersion and environmental interaction along with game design can be used to form an educational narrative experience. 

Tori and I are focusing on different but connected elements while working on this project. I am working specifically with theories concerning self-perception, learning, and gamification. Structuring these together, I form a framework for my research. Self-perception theory is connected through the concept of perspective-taking, representing the user and how they reflect back on themselves and their experiences. Gamification represents the interaction the user has in their environment- provides the virtual framework for the experience using game design concepts. Learning theory places the whole experience in the context of education and the "big picture". 

WHAT'S NEXT? 

Over the next year, I will be continuing to work with Tori on the next stages of the Ruby Bridges Project. While we are still currently discussing our next steps, I would like to explore move environment building and structures of the experience. The Six Week Prototype was a great learning experience for how to set up a narrative flow and work through different levels of interactivity/user experience. But there are still so many other directions to push forward with it. Having the crowd react back to Ruby by throwing objects, yelling specifically at her, or even having all of their eyes constantly gazing down at her, further increasing the menacing presence. Playing with perspective-taking so users can switch back and forth between different members of a scene and determining if that ability contributes positively to the scene. Pushing other concepts of gamification, such as giving users a task while they are in there to highlight aspects of the environment (the closeness of the crowd, the size of Ruby, etc). Manipulating these environmental aspects will likely be the next step for me. 

I will continue to research the theoretical framework highlighted above and will likely be making modifications as I start to delve more into these topics. My classes begin next week, and as part of that I will be taking Psychobiology of Learning and Memory- this will likely have an impact on the theoretical framework, but I'm very excited to take what we learn in there and potentially apply it to the experiences.

On the technical side, I will be conducting small-scale rapid prototypes to test these concepts as main development on Ruby Bridges continues. Furthermore, I would like to experiment with mobile development on the side to see if a similar experience to our prototype could be offered with various mobile technologies, such as Google Cardboard or GearVR, perhaps even the Oculus Go. 

For now, I'll be organizing my research and getting ready to hit the ground running. 

1000 Ways How Not To Control Cameras

This week and the next three days form the final week of development for the Ruby Bridges 6 Week Prototype, and last week I outlined the functions that I would like to implement in the build for this week. 

The good news is, I learned a lot about how the SteamVR camera likes to operate. The bad news is, it took me all week to learn these lessons and adjust our prototype accordingly. 

Debug list from 04/21/18

Most of the issues I ran into had to do with moving the camera around a scene. The third person documentary view that I'm building was initially including a zoom function. I went through a couple different methods to get this to work: sliders, touchpad walking, scaling the environment. I finally got this to work using a UI slider. But I discovered that the effect was extremely jarring and didn't really add anything for the user- if they're going to be able to take on perspectives in the scenes themselves, the zoom function becomes redundant. I have decided to fix the camera to one point away from the environment and allow the user to rotate the scene manually to examine the tooltips. 

The other issue was locking the camera to Ruby's head. I could parent the camera to her motion without a problem, but the height of the user would influence the Y value of the camera transforms. I wasn't able to find a way to lock this even with research (although some online forums mentioned it's extremely disorienting to have head transforms locked in VR). To solve this problem for now, users will complete the experience in a seated position. This should have the added benefit of assisting with the motion sickness issues from the motion of Ruby's walk. 

On Saturday, I had a debug day and tried to work through all the issues that came up from testing on the Vive instead of the simulator. This included Menu buttons working properly, pointers, and disappearing controllers. The controller thing has to do with how I parent the camera to Ruby's head- they still function, but you can't see them. Still working on a solution for that. I also found that the environment itself was not centered and had tons of weird offsets, so I started a fresh scene with the environment in the right place- that solved a lot of the camera transform issues. 

Screenshot of current camera view for interactive scene.

NEXT

With the camera issues relatively sorted, I have to place the object tooltips into the scene and place the background/historical information on them. These will also include the buttons for perspective view in each part of the scene. Tori worked on creating a crowd using the new character models she made and did a great job offsetting the animations, so I'll be placing those into both scenes as well and cleaning up the overall function. 

Interactive Building

Last week of development! After taking into account all our feedback, Tori and I really had to think about how to round out this project. 

Tori will be working with the character animations and models, fixing some of the technical issues like locking the feet to the ground and replacing the robotic models with the avatars she created. While the current animations were still effective, the unedited animations and floating characters do crack the immersion. 

On my end, I had some technical issues that I wanted to fix too: locking the Camera to Ruby, crowd simulation with offset animations, and editing the audio to be more cohesive. But along with that I wanted to round out the experience. We put the interactive level aside to focus on putting together the prologue and receiving feedback on that experience. 
For the last bit of this project, I'll also be putting together a basic prototype scene to explore a 3rd person documentary view. The user will be able to rotate the scene and zoom closer, then use the tooltips to gain historical background. Within these tooltips will be a button that, upon clicking, will allow the user to join the scene on the ground, much like Google Street View. It's not a fully fleshed out experience, but will allow us to broadly explore some of the concepts we discussed back at the beginning of the project as far as how to transfer that information. This is a good starting point- users will still have control of their experience, and the information will be there for them to uncover at their own pace in a variety of ways. Meanwhile, we still have that perspective-taking ability there to continue the experience the user had as Ruby or other members of the scene. 

The scans below from my sketchbook show some of the notes taken while discussing how to set up this level. 

I did take some inspiration from Assassin's Creed, as discussed last week. The series itself has always included a wealth of historical information embedded within menus and the occasional quest. However, as a player, you have to go searching for this information, and the reveal tends to be a wall of text with the occasional image. It's underwhelming after running around a richly animated recreation of Rome or Havana. The new Discovery Mode provides text, images, audio, and video from both the game and reality. I found myself much more excited to experience a multi-modal presentation rather than reading text block after text block. This much text (as shown in the images below) really doesn't work well in VR- it's difficult to read the panels unless they take up the full screen and overall the immersion is just lost. I would rather focus on using the environment to explore and convey information rather than relying on text. 

In a similar vein, the newest installations of Tomb Raider include historical information with artifacts that players collect throughout the course of the game. Removed from the world gameplay, a screen comes up and players can examine 3D recreations of these items with a basic description of what it is in the context of the game/world. Granted, it's usually only a sentence or two, but not something really required by the game. It allows players to view the item up close and learn a little bit more about the culture of the world around them without overwhelming with too much detail. It's another way for players to experience this information. I thought about this when considering the 3D manipulation of the scene and engaging the user in the content. 

Another great example of this came from one of our readings (experiences?) for class this week. Refugee Republic, an interactive documentary, takes the viewer on a journey through a Syrian refugee camp in Iraq by scrolling through a panoramic illustration depicting different parts of life in the camp. The media often presents an inaccurate view of refugee camps, and the team who created it set out to create a more real image of life in this camp. While the landscape itself is mostly drawings, as the user scrolls along it transitions into film and image and text. The result is incredibly dynamic and provides a lot of depth to the experience, as each media is used for it's strengths. It plays to every sense, and that's what we're trying to do with this interactive level. I began thinking about how to choose what media and what information I present in this 3rd person view and what media might work best from the perspective-taking option. I'm going to start researching some more experiences and games that provide a similar media overlap. 

With this in mind, I was able to make decent progress on getting the level set up this week.

  • Prologue: camera is finally locked to Ruby. All users will experience the walk at her height, and without walking away from her body accidentally. In the interactive level, I'm contemplating giving the user the ability to walk around as Ruby without having her set animation. This was discussed multiple times as how impactful the scene could be if the user is seeing it all from Ruby's height and exploring at their pace. I don't think we'll have the time to get that in this time around, but a future feature to consider.

  • Created the new scene with a third person camera. Began implementing camera movement and manipulation functions, such as zooming in with a UI slider (harder than anticipated) and working on rotating the environment using the pointer from the controller.

NEXT

This week is going to be straight work on this level. Getting those features in will mostly be shifting the camera around, and once I have the process down it should go fairly quickly. It's also going to be compiling Tori and I's work into a final build and debugging as much as possible. I have yet to test progress on the new level in the Vive, so I'll be doing that tomorrow and every other day until it's due just to make sure the changes are working in the headset as well as the simulator. 

 

 

 

2 Weeks In: Crowd Building and Playtesting

Over the last two weeks, all of my efforts for the Ruby Bridges project have been focused on the Prologue experience. This included creating a crowd that surrounds the user, adequate audio, attaching the camera to a moving Ruby, bringing all of these animations into the same scene together, and a smooth transition from the introductory sequence to the actual experience. 

Troubleshooting the Prototype before the Open House. April 3, 2018

The crowd building was a real technical challenge for us, and we still haven't completely nailed it down. For playtesting purposes we took the captured data we had for four figures and duplicated it into a crowd, then instantiated that crowd once the scene started. Eventually what I would like to do is use a crowd simulation to offset the animations of the figures- looking at the crowd as it is, it's very easy to spot patterns where we duplicated groups and where figures are floating above the ground plane. It would also help us create a more faithful representation of the scene; I looked at some images taken from Ruby's fist few days of school to gauge where the crowd would be harassing her along the sidewalk and how close they were to her. Based on these the crowd was most aggressive on the sidewalk around the school, but were kept away from the front doors as the school had a fence all the way around it. 

For the transition into this scene, we wanted to give the user context for where they were and whose shoes they would be standing in. Upon starting the experience, the user is in a almost completely dark room listening to audio of Ruby talking about her first day of school from her perspective. Text cues come up with Ruby's name and what interview we're pulling the audio from, followed by the school, date of the event, and the location as she's talking. The scene then fades and the user reappears in front of the school.

While listening to some interviews with Ruby talking about her first day, I noticed some of these podcasts and interviews included audio of the crowds yelling at her. I was able to cut up this audio and loop the crowd yelling into the scene, along with some stock effects of neighborhood environmental noises. Tori recorded some of our classmates yelling specific phrases, such as "We don't want you here!" and "We're FOR segregation!" to add into the audio amongst the crowd. With the volume all the way up, this audio can be very chaotic and confusing. After a few moments just standing there and the headset on, I found it easy to lose track of where I was. The audio completely obscures anything in the outside world. The added chants grounds the user in the event and the time period. 

On Friday, Tori and I were able to demonstrate the current version of our prototype at the ACCAD Open House. Other than the two of us and the occasional classmate, we haven't been receiving much feedback from sources outside of the Design world. We were able to get some fantastic feedback from a wide variety of people of all ages, races, and experience with virtual reality. The topic itself raised a lot of interest with those walking by, and after a quick background on who Ruby was and our intentions with the project, most were eager to see what we had. 

After taking off the headset, we had a table set up with the children's book and post-it notes for guests to provide written feedback for us. We only had two written notes, but most of the guests asked questions and gave us their impressions afterwards.

  • One of the most frequent comments we received was "wow, it feels like you're really there! It's very immersive." I do take that with a grain of salt, especially as many of the guests were experiencing virtual reality for the first time. However, the fact that we were able to gain that reaction from so many of those who experienced a prototype with primitive forms and non-recognizable humanoid figures was very promising. Guests gave different reasons for feeling this way- the audio being powerful and negative, the crowd surrounding the user, seeing the crowd animated in VR.

  • Some guests cited brief dizziness during the movement as Ruby up the sidewalk. I myself experienced this when testing the prototype before the Open House. The fact that it was significant to mention after only a 3 second motion is important as we're going to be putting a longer walk and animation in the scene in the future. After the motion stopped, the users adjusted to the world. Part of this could be resolved by having guests sit for this experience- it can be disorienting to be standing while the character is moving. Though if we continue with the interactive portion of the experience, guests would ideally be standing and moving around. I have seen other solutions in VR ports of games like Skyrim where the edges of the screen are blurred on the periphery to reduce the feeling of sickness while the player is moving, and the blur fades once the player has stopped. This may be a good area to explore when we have longer animated sequences in the scene.

I had several conversations with guests who are instructors or educators, and all mentioned seeing the uses for this in the classroom.

  • One guest asked me if I would be working with educators in the development of this experience. Ideally, yes- this experience is meant to be implemented in the classroom, not to replace the classroom itself. It's very far in the future, but gaining feedback from instructors as to how they could best utilize this would be absolutely necessary.

  • Several guests commented on whether the experience would be appropriate for elementary-age students, after asking what our target audience is. To be honest, there is very little research on how kids those ages react to virtual reality. There have been studies that suggest kids ages 6-18 perceive virtual experiences to be much more "real" than adults (as discussed and referenced here), and that children ages 6-8 can create false memories after experiencing a virtual event (source). While we want to stay faithful to Ruby's account, Tori and I will have to discuss the implications of how "real" of an experience we create.

  • Following up on that question, another guest asked whether we had considered leaving the avatars of the characters as these robotic figures rather than assigning them race. She was interested in how the user might project onto these figures if a race was not assigned and thus change the experience for the user. I understand her point and this is a question being addressed on several studies dealing with racial bias and stereotyping- in that realm, leaving the user "colorblind" may be an interesting area to study. One such study involves changing the race of the user's avatar and observing how users of different races demonstrated bias when the avatar was different from their own race (finding it reduced explicit bias, with no impact on implicit- an interesting study to consider when we're having users experience Ruby's walk. Source). However, our purpose is to craft a world similar to that Ruby experienced to promote empathy, understanding, and connection between the student and Ruby. Race is a vital point to her story and understanding that this is just one of many moments during this time where she would encounter aggressive racism is vital to this experience.

The question of interaction was addressed when discussing the scene where the user would be able to explore the world. Guests asked what kind of interactions they might experience- would the crowd react to their presence? Would they be able to move around the scene? One guest suggested using gaze-tracking to trigger the crowd into throwing things at you when walking around the scene. In past critiques, the suggestion of having the crowd's heads all turn to follow you no matter where you are would certainly be intimidating (or even menacing).

It really comes down to what we want the user to gain from that freedom to explore. Initially it was to provide background knowledge of the event and learn more about the long-term effects/major components in the scene- how Louisiana fought her attendance, how the community reacted, what the rest of Ruby's education was like. The major question is how to go about delivering this information. Looking at perspective-taking, the user could embody different characters in the scene and listen to their internal monologue as a way of understanding different points of view. Or the user could walk around as their own avatar objectively, as if at a museum.

An Open House guest gave me a great case study for this "virtual museum" experience created by Assassin's Creed Origins. The game takes place in Ancient Egypt, and your character is part of a vast open-world environment. Ubisoft recently released a Discovery Mode for the game, featuring guided tours through landmarks and buildings. The player can run around the landscape at will as their own character. When a tour is activated, a guided trail is illuminated along with interactive checkpoints that features a narrator and extra written information/artwork added into a menu archive for later inspection. 

This seems to be a great way to keep player autonomy and the general elements of gamification consistent in the game while still conveying the relevant information. I own the game and have yet to explore Discovery Mode myself, but I will be doing so this week and discussing ways to move forward with Tori. 

NEXT

Tori and I will be meeting this week to discuss our next steps and compiling the feedback received from the Open House. With the current course, we will likely be working on the crowd simulation and the user animation for Ruby. The current walk is very short, and we will need to work on the animation cycles (and creating an idle state) so the characters do not just stop after a three second experience. We will also be testing out model applications for the crowd and adjusting the audio. 

Project Framework and Flow

Tori and I were able to discuss the notes I made last week on the flow of the project, and were able to finalize our plans for the next six weeks of development. 

Notes from planning out the experience structure.

We sat down together and discussed the flow of the experience that I had outlined. The first thing the user experiences is a start menu, with a start, quit, and options button. Upon pressing start, there's a transition in which the scene fades to black and displays the date and time to set the scene. Our feedback here from Maria was to provide other information to place the user in the experience by providing more background information, so we will be building on that and displaying more information about the story during the transition through audio and images. 

After the transition, the scene fades back in with the user as Ruby. This is a passive experience with no navigational control available. The user will start at the sidewalk, and experience Ruby's walk up to the door with the teacher. We debated the option of even giving the user menu control, or the ability to exit the experience- functionally, I think it could be detrimental and difficult for the user to have to force quit an experience in order to restart in case something went wrong. We'll be getting Alan's opinion this and other questions regarding gamified elements later this week. 

From there, we transition into the Interactive Mode where the user respawns with an objective placement on the map. They are not part of a particular group, but initially respawn as an outside impartial observer. The scene with Ruby has restarted, and they will view the walk they just took from other areas in the scene. The user has full navigational abilities. The animation will begin as they collect icons, prompting the user with a question, fact, or experience to witness. The idea being that the user moves along with Ruby, but avoids being constricted into a linear gameplay by being given the choice to pursue the icons in whichever order they desire. They will also have the ability to replay each checkpoint from a secondary menu. 

Further questions we asked had to do with the avatar of the player. When starting the Prologue, the player is seeing from Ruby's perspective and will be embodying her avatar. After that, what would the player's avatar look like? Would they even have one? I've been considering these questions with the Proteus effect discussed last week, and thinking about how this visualization would change the experience for the use.

Following more critique from Maria, we're moving forward with crafting the Prologue experience first. This week I did some research on the area and sketched a rough map of what our prototype will look like. William Frantz Elementary School has been restored as a historical site, and though it has a new academic center attached to it, the original building and neighborhood have changed very little from 1960 to now. I tried to keep the general shape of the building and placement of nearby streets/houses historically accurate for the prototype. 

Sketch of map for 6 week prototype.

I began working on the framework for the experience in Unity. I built the general environment, set up the player camera/controllers using SteamVR and VRTK, and started putting together a functional menu system to transition between each scene.  

Tori is going to be working on adding the animations captured in the last prototype to the scene, and choreographing their interaction. Once they're added in, I'll be making sure the cameras attach to Ruby's character for the Prologue and work on the animation controls for the interaction scene. For now, our priority is going to be completing the prologue experience and getting those elements functional. 

The theoretical framework for this project has been a work in progress, but I've been narrowing down the key theories and concepts we're working with. Most of what I've been examining has come from self perception theory, learning theory, and gamification. When presenting for critique, the feedback I received was to be less specific with the framework. I have plenty of information on the psychological aspects and even some on game theory, but very little on virtual reality itself. I'll be doing more research this week to fill those gaps. I have been told to read Art as Education by John Dewey by several professors and classmates. I'll be adding this to my reading list as well. 

Current breakdown of theoretical framework.

NEXT: 

  • Finishing up framework for the whole project build.

  • Functional Ruby experience in the Prologue

  • Transitions between scenes started.

  • Main menu complete with options.

  • Research

Phase 2: Continuing the Prototype

After completing our 4 week project, Tori and I had a talk about where we would go with the next 6 weeks to advance this project. We decided to continue in the direction outlined in my last post- creating the first steps of a vertical slice from the story of Ruby Bridges- Tori focusing on organizing the animations and drama, and myself focused on creating a full build in Unity. 

Our four week prototype had a loose menu structure that I created to make it easier for us to test out different functions and for myself to understand how they work. These were purely technical exercises. In this prototype, will be creating a prototype that contains a full narrative. The user will begin the experience as Ruby, with minimal control of their surroundings. From there, the scene will restart and the user will gain the ability to navigate the environment. There will be interactable objects to collect and examine, containing background information from the time period and location. While we want to avoid creating a full-fledged game with this experience, I will be using game design elements to encourage exploration of the environment so students will actually find this information. 

We took into consideration the critique that we received from our initial prototype. Our objectives were reframed to focus on the story and less on the technology, and we will continue to focus on function and interaction instead of aesthetic appearance. These are questions we can begin examining after this project. Our research has already begun expanding to include psychology, learning theory, and empathy. 

Proposed work schedule for 6 Week Prototype.

Above is the working schedule I've created for my part of the prototype. Tori's schedule lines up with mine so that we're both generally working at the same pace and form of development. 

I began working on some of the general layout for our project, considering the flow of the experience and what functions would be available in each. While this is still a broad layout, it's a sketch of the experience from the start screen all the way to the end of interaction. Tori and I will be meeting this week to finalize this plan and discuss details. I will also be starting the general layout of the experience, with a blocked in environment and basic navigation for the user. 

Image of notes on the layout of the experience.

I also continued reading some of the research gathered over the last four weeks: 

These readings covered a wide range of topics. Research on the effects of virtual immersion on younger children is nearly nonexistent, and that is mentioned several times throughout these papers. A few of them had to do with digital representations and how users behavior changes when their avatar reflects a different identity. Children develop self-recognition around the age of 3 or 4, and these connections grow with executive functions. It was also shown that children between the ages of 6-18 report higher levels of realness in virtual environments than adults. It's been shown that children have developed false memories from virtual reality experiences, thinking events in the virtual environment actually occurred.  I was also introduced to the Proteus effect, which suggests that changing self-representations in VR would have an impact on how that person behaves in a virtual environment. By placing a student in Ruby's avatar, we also would change their judgements of Ruby to one that is situational, and create an increased overlap between the student and the character. When we're thinking about placing a student in Ruby Bridges' shoes and considering aspects such as the aesthetic appearance of the environment and the interaction between Ruby and the other characters, we have to remember that this experience may be much more intense for younger students who experience a higher level of environmental immersion than adults.


Over Spring Break I spent my time at the Creating Reality Hackathon in Los Angeles, CA, where I got to collaborate with some great people in the AR industry and work with the Microsoft Hololens for two days. Our group was working on a social AR tabletop game platform called ARena using Chess as a sample project. While we were not successful, it was a great lesson in AR development and approach. I also gained exposure to other headsets and devices from the workshops and sponsors- the Mira headset runs from a phone placed inside the headset. And there are a variety of Mixed Reality headsets that use the same Microsoft toolkit for the Hololens. 

Workshop showing the Mixed Reality Toolkit with the Hololens.

While the Hackathon was a great technical and collaborative experience, it also opened up other possibilities for our current project in the long run. Part of our research is discovering what virtual reality itself brings to this learning experience beyond just being cool or fun to experience. We already know that this experience is not meant to replace the reading of the book or any in-class lecture- it provides another medium for students to experience and understand this story. After spending the week working and thinking with AR, I was thinking about how we can better bridge that gap between the physical experience in the classroom and the virtual experience. Using an AR to VR transition that interacts with the physical book would be an interesting concept to explore related to this.

The technology doesn't quite seem to be there yet- there's no headset out there that has the ability to switch from AR to full immersive VR. But Vuforia seems to have this function available and could possibly be accomplished on a mobile device. There's even a demonstration recorded from the Vision Summit in 2016 showing this ability (at time 22:00), documentation on Vuforia's website about AR to VR in-game transitions, and a quick search on Youtube shows other proof-of-concept projects with this ability. This isn't a function that will really be able to be explored until much further down the line and potentially will not be possible until the right technology exists, but raises questions about how we can create that transition between the physical and virtual. 

From some of the participants at this hackathon, I also learned about the Stanford Immersive Media Conference this May, which will feature talks by several of the authors of the papers we've been reading for research and others involved with the Stanford Virtual Human Interaction Lab. This is potentially a great way to interact with others who are doing work in the same areas of VR and AR, and discuss their research. 

4 Week Wrap Up

Framing the Project

Over the last four weeks, Tori and I have been working on a proof of concept utilizing VR and Motion Capture. The larger goal for our project is to form an educational VR experience that promotes the development of empathy in elementary school literature. We have chosen to examine this by developing an experience based on the story of Ruby Bridges, though for this four week prototype we focused our efforts on overcoming new technology and starting research.

Why is this a problem? 

Virtual reality has been rapidly developing in areas such as video games and medical research, but less work has been done in the areas of children, empathy, story, and how we can tie these factors into education. 

This creates a unique challenge for me as a designer. VR creates a new range of possibilities for interaction, especially when combined with game design concepts. Examining these interactions and their implications in the context of the story will be a large role for me in the development of this project, and something I began to do with the prototype. 

Results

Above is a recap of my progress over the last four weeks. It includes a demonstration of each of the navigation, UI, and animation controls, as well as a sample scene created from the point of view as Ruby. 

My personal goals were to examine the interaction possibilities in VR, and learn to develop them for use in the Vive. I specifically worked with navigation, UI menus/panels, and controlling our animations using these menu assets. In terms of this prototype, I did not know how to do any of this in Unity using VRTK or SteamVR. I had to learn how the technology worked and explore those potential options in order to move forward. 

In the grand scheme of the project, these factors are very important in how the user experiences the scene and allows us to start asking questions about their impact. For example, if we limit a user's ability to navigate based on the role they're playing in the scene, how will that impact their impression of that role? If as Ruby the user has no control over their environment, will this convey the lack of control a six year old would experience? And if the user is able to navigate, is it less immersive to present them with a menu of tasks or create a more freeform navigation using the pointer and no text? Tori and I don't have answers to these questions yet as our research will help point us in the direction of the type of experience we will create. 

Above are the slides from our presentation in class.

Feedback

We received great feedback over the last four weeks. Here are some of the thoughts given on our prototype.

  • Consider looking at Suzanne Keene, Dr. Bruce Perry, and Mary Jordan in your research.

    • Bruce gave us some great avenues to explore. Although I haven't gone too deep into their research yet, Keene does some interesting work with how multimedia setups can be used in a museum setting and Dr. Perry works with children's mental health and psychology. I need to speak with Bruce again about what work Mary Jordan does.

  • Drop back on your aesthetic choices for now. Focus on function, determine what you want the experience to be first.

    • In our next steps, I agree that the aesthetics are going to need to be considered but not fully developed until we know exactly what we want out of this project. Tori and I have discussed in the past the fine line we walk between making an impact and creating something that actually scares students. While it's certainly not a focus just yet, we know that we don't want the final experience to be too realistic in appearance but still authentic.

  • Can you cut this project back to a more accessible technology for the classroom?

    • A fair point. HTC Vives aren't cost-friendly and unlikely to be found in any public school environment. Google Cardboards have been implemented in classrooms already and are much more feasible on a large-scale consideration. I think we can absolutely adapt what we've learned on a smaller scale and create something cross-platform, we just have to adjust for different mechanical experiences and technological issues. A conversation for the upcoming phases.

  • More research on developmental psychology and learning theory.

    • Absolutely. It's already on the list of topics we're gathering media on. I'll also be taking a class next semester on learning and memory, which will hopefully be bringing me more materials and context for this project.

  • What are the qualities of VR that would enable empathy or learning? Work towards answering this.

    • This ties in with choosing more accessible technology. Something we'll be working on answering - or at least guessing at - in the next couple of weeks.

  • Write your next steps with your objectives in mind- exploring empathy and storyness. Start bringing context into your interactions.

    • I am already adjusting my next steps to bring the narrative and the concepts we've been researching into these design decisions (discussed below).

Next Steps

Thinking about the prototype and the feedback we got, I would like to move forward and use these tools to develop a full narrative prototype. For me, this means mapping out a narrative framework for the experience with a beginning, middle, and end. This will include a more developed environment, with a blocked in scene for the school, neighborhood, and general placement of props as they would be in the actual location. A beginning scene with the user as Ruby, experiencing her walk up to the schoolhouse. Protestors surrounding the sidewalk, including sound in the scene this time. Forcing the user to walk her path before being returned to the scene to navigate on their own. The final result would be a prototype of a vertical slice- not polished, not focused on visuals, but purely interaction and narrative. 

While still complex, this scene will not require learning as much technical skill as our four week proof of concept. Therefore I will be using that time to continue to catch up with research and focus on the design of the experience. This step feels like a good leap from our technical exploration to trying out what we learned in a narrative setting. 

Animated Control

The main focus of the past week was working out how to control animations in Unity, and create a menu for the users to do so within the scene. This was going to be the biggest challenge for me so far, as my experience with the Animator is minimal. Tori imported some of our first mocap data into the scene last week and I watched that process, so I understood generally how to navigate the windows and what basic settings would do. 

At first, I thought working with the Animator and swapping between animation states would be the best way to do this. Not the case at all, and I spent two hours on it before realizing I misunderstood how animation states work. 

Enter the Timeline, a feature of Unity that I had no idea existed until I started sifting through the tutorials on the Unity website. We weren't trying to blend different animations together, we just wanted to be able to pause, play, and restart whatever was playing. The Timeline allowed me to do this. I was able to access the Playable Director component on each game object in the Timeline, and use Unity Events with a UI Button to attach play/pause functions. 

Screenshot in Unity of Animation Controls added to Headset Menu.

This is basic functionality, and there are definitely still bugs that need to be worked out. While the animations do restart, they restart from the position that they were in when you pressed the button. I would just need to write a script to start them back from their original places at the beginning of the scene. For now, connecting the button with the action completed my goal. I spent Tuesday watching more of the Unity tutorials to understand the Animator a bit more and how it connects with the Timeline, so in the future editing animations will make more sense. 

I built the animation controls into the menu, and attached that menu to every other navigational scene. 

Unity screenshot: Active game with Pause button pulled up in the Inspector, showing the button function using the Playable Director.

On Thursday, Joe critiqued the level that we had and identified several issues that needed some work. Some were similar to those pointed out by Maggie.

  • Controllers. Left and Right controllers are getting confused, even by me. He suggested finding a way to distinguish them in-game, maybe by changing the colors of the models in order to prevent incorrect instructors.

  • 2D scene has mislabeled Menu options. This has been fixed in the most recent version.

  • Text for 2D map is too close to the periphery of the mask. Need to be relocated more central to the screen.

  • Correct laser activation. Though I did fix the laser switches, I need to make sure every level only relegates menu control to the Left controller. This is a matter of making sure all the correct options are selected in each level, I believe one or two got overlooked.

Joe also presented two ideas on how we might organize the whole experience based on the scenes he saw. 

  • Using the controllers to pick up books around the scene in order to gain information about it. Similar to picking up "notes" in popular games, but giving the same control as the interactive cubes in the scene. Promoting immersion and interactivity.

  • Starting the experience with the user as Ruby, no matter what. They must experience the scene as her first walking up to the school. Then afterwards, reloading the scene and giving control of the scene to the user via navigation and animation controls.

His second comment harmonized with other discussions I've had with Tori and Maria about how user control can be used to emphasize narrative elements. We've had suggestions about making the user Ruby's height as they navigate the scene, which would definitely create an impression. On the flip side, for a young student there would be a fine line between creating an impact and pushing too far into scaring the student. Something that we have to consider when we make these choices.

I did like the idea of starting the experience with a prologue-type event, and really pushing that lack of control on the user to encapsulate her experience. So I created a scene where the user follows an animated null object up the path to the school. When the user reaches the front steps there's a pause and the scene changes to one of our test navigation scenes. 

I ran into some new technical issues for this scene. For one, while the user is bound to the animation of the null object, they can still step away and move away from the object into the scene. I will need to lock the transforms for the user and force them to experience her route as it is. I also need to deactivate the teleportation, lasers, and menu controls. A non-user related problem was the actual scene transition. When the player reaches the step, a scene does load but it is not the one that I select. There's a trigger at the top of the steps and I think something may be wrong with the colliders and tagging system, so I'll need to try a few other methods and make sure there isn't something in the scene interfering. More debugging to come. 

Tori and I also sat down and started working out our research questions for this project. We figured that a good format would be to have one overall statement for the project, and then two  other questions for ourselves that relates directly to the areas we're exploring. That conversation was started two weeks ago discussing our general directions, but we were able to distill them down into working statements. As it stands, my questions are: 

  • "How does the combination of motion capture and VR enhance the fostering of empathy in elementary school literature as an educational tool?" (Main research question)

    • "How does user interaction with environmental elements reinforce informational transfer?"

    • "What forms of navigation promote exploration of a narrative scene in a virtual environment?"

The phrasing of the statement is still being worked out and edited, but it feels like we're making progress defining the goals and direction of our project.

NEXT:

With these four weeks behind us, I'll be going through the scene and pulling together all of my process documentation. Tori and I will be presenting our four week proof of concept, and our presentation will include a full video showing all of our progress to date. It will also give us time to pause and discuss our plans moving forward, and consider everything that we've been learning and researching during this time.