Project: Engaging Students in Bullying Prevention Efforts through Visualization
Mentors: Jan Urbanski, Susan Limber, Wole Oyekoya
About Me: I study Computer Graphics, Art, and Mathematics at Texas A&M University. I am also a guitarist and I like to sing for fun.
Here’s my rudimentary portfolio: http://ryancanales.wixsite.com/portfolio
And some music I’ve made a few years ago: https://soundcloud.com/ryan-canales
Week 1:
After meeting with my mentors about the direction the project should go, I decided that building character models would be the best place to start. This week, I began making some iterations for a generic character model. I will more or less stick with the basic topology then modify it as needed (ie to change it to male, female or adult, and other little adjustments). I also UV unwrapped the model to begin texture tests in Unity for next week. Finally, I built a simple rig to be used on all characters and began animation testing within Unity.
Here’s the low poly character mesh (with previous iterations on the left). I will add more images as progress is made!
Week 2:
This week I went to workshops over Linux, using the palmetto cluster here, and several scientific visualization programs. I also met with one of my mentors to show her the progress I made. So far this week, I’ve added animations to the character and wrote scripts for character and animation control and camera control. I also began building the environment and added collision detection for walls. I also began an implementation for character customization; as of now the player can change the skin color and switch between male and female. I also learned a bit about shader programming for Unity and implemented a custom shader for the character, allowing for the outlined, flatter look. I plan on finalizing the environment and the characters by the end of next week.
P.S. I will add hair to the character!
Week 3:
This week, I learned some more about data visualization and how to get access to census information from multiple countries using IPUMS. I also met with my mentors and devised a quick schedule for the rest of the project. By the end of the week, I received a basic script for the bullying scene from my mentors (with dialogue suggested by a 6th grader) and I will begin implementing it into the game this next week. The plan is to have a working albeit rough demo of the scenario so that we can begin user tests for the age group the by the 5th or 6th week. Here is a video of what I’ve done so far, running on my phone (Android):
Not shown is the randomization of the characters in the scene (it would take more than one play). I anticipate this next week to be a very busy and productive one now that I’ve got a lot of the basics (including an animation plan) covered.
Week 4:
Most of the changes I made were to the environment and UI. I baked ambient occlusion onto most assets in the scene (to save from doing a global illumination pass at runtime) and created models for a computer, shelf, cabinets, and window. I also created the UI button images in Illustrator and implemented their functions. All UI elements positions are determined in a script, so their position changes based on the aspect ratio of the device the game is playing on. I had to update the shader program to allow for transparency in textures, that way I could have multiple materials on a single mesh. This will allow me to implement a more modular character customizer. I’ve added the shirt swapping feature to show this in action, I will add more options later. I also enabled toggling between male and female characters while retaining the customized options. Another important feature I implemented was my own method to create paths for the other characters to follow, which will be utilized for the bullying scenario scene. There were additional (subtle) changes that needed to be made to both the male and female character models and rigs, which I spent some time on (I don’t want to get into the details, but retaining paint weights was a small issue in Maya). Finally, I fixed some bugs and made some optimizations to minimize time and memory spent on rendering.
Besides just adding features and touching up the game, I also had a midterm presentation rehearsal and set a date to have a complete demo for testing and feedback from middle school kids. My mentors have created a dialogue script and suggested another feature for the game, so I will focus on implementing these things during the next 2 weeks. I am aiming to have the working demo by July 16th.
- I only realized after exporting this video that I didn’t add the blob shadow below the male character model in the customization scene (It’s fixed now).
Week 5:
This week we had a break for Independence Day on July 4th and then midterm presentations on July 5th . I met with my mentors on Friday morning and came up with an alternate way to play the game. My work for this week and next will be implementing the new gameplay. The new idea is simply allowing the player to roam the class as they wish. There will be a clear goal that the player will have to meet, such as get to their desk before class starts or turn in their homework. While waiting for class to start, the bullying happens in the back of the class. The player can choose to talk to one of the students or to the teacher. What they say depends on if the bullying has started or not, for example, if it hasn’t, they just say something about the class or the homework, and if it has, they mention the bullying in some way. The plan is to also implement ways to interact with the bullying situation. Other than just dialogue queues from the other students, there will also be a visual representation of where the bullying is happening, based on how far they are from it. This can be incorporated as a mechanic for points or some other reward. The game finishes once the initial goal is met or if both the initial goal is met and if they helped the victim of the bullying. Afterwards, their score is based on several factors including their reaction time, how long it took to complete the initial goal, the order of events, and their choice to help or not. There will then be a lesson scene that will ask the player if they can identity who played what role in the bullying and teach them about the different roles bystanders can play. Here’s some progress:
Week 6:
This week, we toured Clemson’s data center and learned some fun facts about their super computing cluster, Palmetto. We also toured their digital media and production arts labs. As for my project, I added in some dialogue based on what the player chooses to do. I also added in the lesson at the end, which I plan to clean up later. There are some other less obvious things that I implemented, including smooth interpolation between target points in my path maker, that way the character’s walking around have more natural changes in direction. Other features include responses, a goal seat for the player to go to, waiting for the player to be in the vicinity of the bullying before the bullies do anything (that way the player can see what happens), a bar at the top left that indicates how close or far they are from the bullying, and some other fixes and modifications. Here’s what it is so far:
Week 7:
This week was largely getting the game ready to demo to a small number of students. I added in some features including a rudimentary scoring system, some more assets (books on the shelf, stuff outside), some sound, and I tweaked the character selection menu. There are some other features I worked in and tweaked. The largest tweak was completely reworking the dialogue system I had, so now it’s way easier to manage and add to. This is also the first week I made builds for iOS. The video I made this time was recorded on an iPad.
Week 8:
This final week I just had some meetings focused on writing the paper for this project in the IEEEVR format and making my final presentation.