After looking at the list of challenges I the decided on,
- Spend 20 minutes undertaking the ‘I’ phase (inspiration) of the ICEDIP method for a new idea for an app, and then spend 10 mins evaluating the results.
and followed Geoff’s advice to ” Let yourself off the leash!”. I’ve been thinking a lot about “Presence” (spatial immersion for the technically minded) and the users POV, so this activity sounded really interesting. I put the timer on and got started. After twenty minutes I had a paper full of ideas that started off safe but moved into the “what if” realm of thought.
A few of the interesting ones where:
- Having an AI simulation that can interact and respond to your actions or reactions using your avatar or voice.
- Learning a language by being dropped into a “virtual city” where everyone interacts with you in the language you’ve chosen.
- A VR app that can “read” your dreams so you can explore them again.
- An AI / VR app that lets you talk with people from the past – you could have a chat with Jean Baudrillard about reality.
- Having mixed reality pets that have persistence in the world and age.
- A mixed-reality baby sitter for young children.
Spending a few minutes looking back on them, it would be really fun to be able to breath life into these ideas. I liked the idea of being able to sort through your dreams or of even creating a dream scrapbook you could share with people. One or two my be possible in a very limited way but overall it was fun to think about and gave me an idea or two play with. The challenge now would be to come up with a business plans to pitch on of these ideas and research needed to support it.
Having said that, I have started researching the idea of a VR language learning app in which users could converse with an AI character. Having an AI character like Miquela Sousa that students could learn with would be really intriguing experience. So, I started exploring just what speech capable AI’s are available and are able to integrate into the Unity platform. Microsoft has Azure client and Amazon has Sumerian but that service may only run on AWS servers. There IBM Watson and SmartBody by the University of California. At the moment, IBM Watson looks to be the most promising because of their recent partnership, bringing Watson’s AI functionality to Unity’s gaming engine, with built-in VR/AR features. I have added this to my Trello board for now and will continue to follow it.
This week was spent looking at the importance of Persona and why they are necessary and before diving in and developing. Some things for guiding the persona where:
- Who – the person using the app
- Wants – how does this app beneficial to their life?
- Discovery – how would they access this app?
I hadn’t realized how important persona where in the success of an app and how they helped the development team make design decisions based on the user needs. Also, how important those stories were to the sprint process and keeping people focused on the needs of the target audience. I see how this could keep a project on track and help prevent feature creep that could waste time and money.
I didn’t have a personal project in mind when thinking about this assignment, but did have some ideas based on recent events at work dealing with students and SNS problems. Getting started, I put a real name to my persona and what they wanted to accomplish and what motivated them. I looked for a picture that went well with the persona I had outlined and that would provide an emotional pull for the team using it.
The persona is tied to the idea of SNS’s and the app I choose is YouTube Kids (Links to an external site.)and focused on the idea of giving working parents ‘peace of mind’ when comes to their kids net viewing habits. Something that a majority of parents worry about and but unsure about their choices are in providing safe apps for their children to use. A multitude of websites advise parents on responsible tech usage for children and Google’s YouTube Kids helps parents with age-appropriate video. Google wants to “make it safer and simpler for kids to explore the world through online video” and at the same time give parents ” a whole suite of parental controls, so they can tailor the experience to their family’s needs.”
My persona is Lykke Li, a working mother worried about giving her children the freedom to watch YouTube but in a safe and controlled environment.
YouTubeKids (persona PDF)
Reflecting on the VRTK project, I accomplished two of the three goals (teleportation and object interaction) within the timeframe I had set. The third goal of triggering sound effects remains unfinished. I tied sound to actions but was having an issue of syncing the audio to the event action. Audio effects can be part of a future quick sprint to focus on this one element in interaction. Having a smooth integration between visual selection (when an object is selected, the effect changes) and audio selection response helps reinforce immersion in the environment. The issue encountered was one of time, rather than a matter of implementation. Audio work in Unity is a bit more involved when looking to match animations to event triggers.
Object effects and audio in Unity are two things I would like to explore in a future sprint.
I have been on track with my Unity studies using Trello. I am about to start a personal project to test what I’ve learned with VRTK. I have completed a few of the tutorial videos and have successfully installed the toolkit into an example project. The challenge now is to be able to repeat the process on a new project and then tie user interactions to my own assets rather than those used in the tutorial.
I will test myself using my one-week (2 hours a day) deadline for a simple working environment. The only issues I foresee at the moment is having to fine tune the settings to get my assets to work correctly with VRTK. Being to teleport around the environment, interact with objects and trigger sound effects will be the yardstick to measure the results by. Having practiced with the examples, this should a good challenge and signal that it’s time to push myself a bit harder with the Unity. Being able to build basic interactive environments means being able to iterate quicker and start working on projects with more confidence. I have some extra time this week to bank towards this project, giving myself some wiggle room for an unforeseen problem. VRTK developers also have a very active Discord giving me additional help should I need it.
I will update this post with picture at the end of the week.
Maya and Character Rigging
Spent the weekend doing some research after getting Maya installed and finishing a few of the tutorials. Its a really amazing what you can do with this and I’ve just scratched the surface. My goal is to get a basic understanding of the building a character and rigging it. I also installed Mudbox and was interested in how you export out the files as .fbx because the files in Mudbox save as .mud. There are some tutorials with Mudbox on the sight but I think I will play with that another day. I am exploring Substance Alchemist which can extract textures form scans which is pretty cool. I need to stay focused and come back to the other Maya workflows later when I more time to dive in.
Working now on building a simple character and its going pretty well, just taking a bit of time with the back and forth of moving through the tutorials.
Update: When I started exploring Maya, I thought I could somehow find the time to learn but after working with it for a week or so realized that it was a lot harder to use than I imagined. I wasn’t able to translate the image I had in my mind’s eye into the character I created with Maya. Then something that I hadn’t realized until my adviser mentioned was that it would be better to contract out work like that, rather than to spend the time that I didn’t have and wasn’t contributing my core goal of making a virtual reality app. In hindsight, it was good to have gained a basic understanding of how Maya worked and general insight into how character movement works. Having this working knowledge provides an opportunity for team communication, but more importantly give me the knowledge needed to communicate the what I am looking for when contracting out Maya work from a freelancer.
Looking Back / Time Management
Over the past few weeks I’ve finished a Unity fundamentals course, jumped into an App Jam and started studying C#. One of the most difficult things I have encountered is managing my time correctly while working on projects but also keeping up on other course studies while balancing that against real world commitments like work.
Going forward one of my SMART goals will be setting up a bi-weekly schedule for my C# and Unity studies using a Trello board that I have set up to track short sprints for the chapters in the Pluralsight courses on Unity and C#. The chapters are usually 2.5 hours of video, along with exercises for each video that take an hour to complete. The time frame for a chapter sprint is two weeks and gives me the time to also focus on the weekly units on Canvas. Being realistic in setting deadlines for the amount of course material that I have to study will allow me achieve my Pluralsight goals and keep me moving forward. The amount of material to covered will fluctuate depending outside commitments but as long I am realistic with time should not have a problem with reaching an intermediate level in both C# and Unity by mid-September 2019. I have set aside two hours of daily study time and my present schedule this is quite doable but I will reviewing this on a weekly basis. Setting realistic goals means accepting changes need to be made to the schedule when other commitments attention.
My commitment to learning Unity will help with one of the biggest obstacles I faced with the App Jam, which was trying to get a working Unity app while learning to use the software itself. At this point after the experience, I feel a bit more confident going forward and pretty excited about using Unity. I have sat down and really looked back over how I spent my time during the App Jam, being honest and asking myself “What did you really do?” I managed to put something together but it really seemed to happen at the eleventh hour or at least it felt that way. Not having a clear idea of what I needed to do and being able to assign a realistic amount to to getting it done, had me bouncing back and forth between different parts of my project and really using my time wisely. Now that I have a basic understanding of the software and what actually goes into make a basic project, I can better plan of time. I also believe that improving my Unity and C# studies will allow me to be more productive and I look forward to the next App Jam.
App Jam Submission
Having reached 40 hours it’s time to submit my project. Looking back I can say it’s been quite a learning experience. I started out with a basic idea and quickly realized that it wasn’t going to be anywhere as easy as I had imagined. The video below shows my progress to date.
Below is photo of the level layout.
I started off with just a cursory knowledge gained from watching a few youtube “how to’s” and Unity UI basics and understand a bit of the menus. After jumping in and quickly failing, I had to look for some help on Pluralsight and Lynda. I can saw there is quite a wide range of depth to the Unity fundamentals video. I had problems bringing in assets correctly and understanding what a prefab really was. How to correct prototype primitives and add basic game object actions with scripts. Eventually I found what I need between videos, Unity forums and Google. I have to say the biggest time sink was environment setup. Dragging, duplicating and snapping all the materials together, adding the textures to the right areas of the inspector was time consuming and far longer than I had imagined it would. I did learn about the different texture types and how to tweak their appearance.
I discovered ProBuilder and Pro Grids, learned the basics of Player and NPC movement and thought about level layout a bit more. The next learning experiences were lighting and baking, overlapping UV’s and particles. Along the way learning about NavMesh, Box Collision and how to fix dropping through the world which happed quite a few times.
Getting the player controller setup and running before time ran out was my final goal. I got my character moving around the level but not after having a problem with it stuck halfway in the floor. The bit of setup seen in the movie clip was getting Cinemachine hooked up and following the player character.
Overall, it was an amazing learning experience because it pushed me to grasp the basics of building a functional “prototype”. I had work through the process in a way where each new step built upon the last. The time constraint kept me from getting side tracked with experimenting too much. Some of the bigger challenges I ran into were trying use assets that were not compatible with the version of unity I was using, not understand the parent/child relationship early on, and having problems with character animation and staying above the floor.
In the end, I own a huge debt of thanks to Unity Instructor Joshua Kinney. He was able to really explain how to get things done and what settings needed to be tweaked to get things going.
Next steps for me are looking scripting, animation and UI interactions. I also wanted to explore character creation and rigging for a better understanding of character movement. I have started two new Unity modules recommended after completing the fundamentals training.
Hack n’ Slash