Monday, July 27, 2015

Starfighter: Now with Stormtroopers?

Most of the 3D models I tend to make are inorganic objects such as buildings and spaceships because my knowledge of character modeling comes from a few Google searches and Blender's Gingerbread Man tutorial, so the results have been decent at best.

Starfleet Officer: February 11, 2013
Sometime in 2014 I starting playing around with MakeHuman. Being a Sims player from The Sims 1 through 3, I got used to character creation sliders than seem to be in just about every RPG game these days (Mass Effect, Dragon Age, Fallout, etc.). Not to mention the models can be exported fully rigged - saving me the trouble of rigging it myself and getting more 'Woody from Toy Story' looking joints. Not to mention having a good base body model made it a lot easier to model custom clothing over it - such as a Wrath of Khan officer's uniform (I promise I'm almost done with the Star Trek content on this post)

Starfleet Officer based on MakeHuman (left) and my original model (right): April 27, 2014
Base model used for the Stormtrooper: May 1, 2014
Like most of my models, I started by a Google search for "Stormtrooper armor" looking for blueprints, reference photos, and any measurements or diagrams with dimensions I can find. Since my 3D modeling experience is based on a computer-aided drafting class I took in high school, I tend to work from isometric views and extrude the model into 3D.

Stromtrooper Helmet: May 1, 2014

Chest plate and shoulder pad: May 3, 2014

Biceps and Bracers: May 6-7, 2014

Leggings, Boots, and Belt: May 15, 2014

E-11 Blaster Rifle: May 15, 2014

So almost a year passes and after some teaser trailer in April, I decide that my summer project will be Star Wars in CAVE2(TM). As if I needed this project to get more complicated, I'm working on both the original Starfighter flight and a ground shooter components. The goal is to have a demo video ready by holiday 2015 for some reason.

My previous character model animations were manually keyframed in Blender. However by this point, Unity had upgraded it's animation system to Mecanim and has some nice examples for using it (such as the Mecanim Locomotion Starter Kit).

Stormtrooper in Unity: April 25, 2015
While I'm at it, I started playing around with inverse kinematics to have the Stormtrooper aim at a particular object.

Aiming far more accurately than a Stormtrooper should: April 25, 2015
Like most of what I do in Unity, eventually it finds it's way into EVL's CAVE2(TM). Also gave me an excuse to use multiple head trackers (one for the camera, one for my head for the Stormtrooper to aim at), and multiple tracked wands (the blaster in my hand and the other weapon on my belt). Also calibrated the tracking system to make sure the handle of the blaster lined up with the wand (legit research work right?).

I have a bad feeling about this: May 4, 2015
This of course leads to the first virtual reality First-Person Shooter example for a CAVE2(TM) System:

Stormtroopers in CAVE2: June 12, 2015

Building that example also taught me Unity NavMeshes and more in depth with the animation system. Shooting and death animations were still keyframed in Blender (Spent a whole 20 seconds on those).

Currently busy upgrading to Unity 5 and some cluster sync issues.

Sunday, July 26, 2015

Starfighter: Models to Virtual Reality

Much like the Enterprise project I started in 2011, Starfighter in 2012 began with "let's see if I can make some Blender models and turn it into a game in Unity." Unlike Enterprise which was more of an architectural simulation at the beginning, Starfighter had much more of an X-Wing space combat sim in mind.

Between working on Enterprise and nearing my final year as a Computer Science Master's student, Starfighter had many more gaps between updates. A full year went between modeling a TIE Fighter.

TIE Fighter: 2012-2-10

TIE Fighter: 2013-2-25
Death Star tiles: 2013-2-25
Ironically Disney closing Lucasarts inspired me to continue the project. Throughout April 2013 I would continue making basic models of the Y-Wing, X-Wing, and Death Star surface tiles. Fun fact: The Death Star tiles were based on 2D sprites originally designed for my Starfighter Klik & Play games from 1998-2002.

Y-Wing model and Dynamic Tile Generation in Unity: April 5, 2013

X Wing Model: April 9-11, 2013
By May I began working on gameplay mechanics. I scripted flight interaction for both 'X-Wing' and 'Rogue Squadron' control schemes.

Imperial Star Destroyer models and normal maps for low-poly Death Star Surface: May 9, 2013

Modeling an X-Wing cockpit: May 22-23, 2013
Fast forward to May 2014. By this point I had written and defended my Master's thesis and figured it was time I get back to Starfighter. Using the CAVE2(TM) Hybrid-Reality Environment at the Electronic Visualization Laboratory at the University of Illinois at Chicago and Mechdyne Corporation's getReal3D for Unity,  Starfighter moved to virtual reality!

May 12, 2014

Arcade Style Interaction and Weapon Test: June 27, 2014

In November, I combined the 'X-Wing' style flight controls with the TIE Fighter AI. AI and targeting computer mechanics still need refining, but the basics are there. Running on the CAVE2(TM) 36-node virtual reality cluster at 40 FPS with 32 vs 32 fighters. Decent cluster synchronization overhead, but still impressive (this runs at 120+ FPS on a single desktop).

Combat Flight Test: November 5, 2014

This concludes the state of Starfighter as currently documented on my Google site. More recent entries from 2014 and 2015 will be added in their own post.

Coming soon:
  • Stormtrooper modeling and animation test
  • More detailed X-Wing cockpit
  • More CAVE2(TM)