Capstone Project
by Team AiR Games (Winter - Spring 2012)
INTRO:
I worked with three other students on this project which uses C++ and Java. The goal of the project was to combine Qualcomm's Vuforia SDK (Software Development Kit) with GameKit. Vuforia is an SDK for augmented reality (AR), while GameKit is the game engine. Everything used for this project was open source or free to use because we wanted to make it more affordable for the average developer to make augmented reality applications. The models were created in Blender which is modeling software. We created the mountain and obtained the trees and the macaw from BlendSwap, but added our own textures to them.
I worked with three other students on this project which uses C++ and Java. The goal of the project was to combine Qualcomm's Vuforia SDK (Software Development Kit) with GameKit. Vuforia is an SDK for augmented reality (AR), while GameKit is the game engine. Everything used for this project was open source or free to use because we wanted to make it more affordable for the average developer to make augmented reality applications. The models were created in Blender which is modeling software. We created the mountain and obtained the trees and the macaw from BlendSwap, but added our own textures to them.
HOW IT WORKS:
The image on the left was taken by one of my team members and shows an almost working version of our project. The application works by pointing the device towards an "Image Target" which is a pattern used by the AR system. Once the image target is recognized the application overlays the image with virtual content. There are, however, limits to what the image target can be, for example, it cannot be a repeating pattern such as a checkerboard because it will not be tracked well. The image has to have enough variations in contrast and enough detail in order to work. The way that the application is able to recognize the image is through metadata that is created by uploading the image to Qualcomm's developer site where you can get a 1-5 star rating of how well the image will be tracked. You can then include this metadata in your application. In this particular image he is testing the limits of the application. How much can the phone tilt before it loses track of the image target? |
NOTE:
This photo is all that remains from our team's capstone project. Unfortunately, we do not have an Android device in our possession to take a video of all the demos we showed at our presentation.
This photo is all that remains from our team's capstone project. Unfortunately, we do not have an Android device in our possession to take a video of all the demos we showed at our presentation.
What I did ...
I worked closely with two of my team members, on the integration of Vuforia with GameKit. I then began to work on Blender because I had used it previously and knew that it can be quite complicated to use, plus this time, what I had to do in Blender was a lot more complex. I still worked with my team on integration, but not as much as before. I was mostly focused on getting the models ready for our project. I went through various modeling tutorials in order to learn, but this was a difficult task because Blender constantly changes and the tutorials did not match the version of Blender I was using. I had to search how to access the equivalent functions in my version of Blender which sometimes took hours. Also not knowing the name of what you want to do can lead to even more hours of work. After going through multiple video tutorials, documentation, and asking for help on the forums I was able to learn how to make models, add a skeleton, rig it, animate it, add a texture, add lighting, and make it respond to user input.
Modeling |
I made a model of a female character since my team and I originally planned to use her in our application, but she had too many vertices and would have to be bald in order to have her in the application. Adding hair requires the addition of even more vertices or adding hair in a format that was not supported by GameKit. This is why she was not used in our application. Photo Descriptions 1. Front View of Mesh ("Wire Frame Mode" in Blender) 2. Front View in "Solid Mode" 3. Side View of Mesh 4. Side View in "Solid Mode" 5. Random View (Back) 6. Dress 7. An attempt at adding hair without using "Particle Hair" because it uses Blender Render instead of of the GameKit Engine which means that it would not be compatible with the application. |
Textures, Rigging, and Animations
AiR Games Demo by Nataly on Vimeo. |
The tree's and macaw's meshes were obtained from BlendSwap, I did everything else. The video of the macaw shows the skeleton and the frame by frame animation for the rig, the bottom left corner is where the frames are located. The macaw has a texture that one of my team members and I created. These animations also work on the Android mobile device, however, we did not get around to adding this into our project because our main focus was the basic integration.