Greetings fellow Living Beings!
Today I come to you with a bag of animations. As I’ve previously mentioned we’re doing indie-style mocap. This means that I, using a Kinect and some super nifty software, record myself doing things (without having to wear a skintight suit with ping-pong balls glued on it, sadly) that then get interpreted, stabilized, cleaned, scrubbed, massaged and generally processed to get something that’s usable in-game.
Some examples of the animations in-engine
Now, this is actually more tricky than it first appears, not because of the different skills needed for the various software involved but for the fact that due to all that processing to get rid of jittering you end up losing a lot of the finer detail in the movement. Especially things like head movement, nodding, shaking, and so on gets near impossible to get through without exaggerating a lot.
Of course for our purposes, with the camera not really necessarily zoomed all the way in on a character this actually works out pretty nicely as the exaggerated motions read a lot better when at a distance than a realistic version would.
Once all the animations are recorded, you bring them into a software that interprets what you are doing, or more specifically what positions and rotations your limbs have, per frame. Once that has finished processing the data is pretty good but it still needs some fixes. For example, in occasions where the tracking drops the bones in question freak out and can go end up flipping around like crazy. Another thing, which actually is much more common, is when you rotate the pelvis it tends to while keeping the feet planted at the heels rotate the feet to face the same direction as the pelvis. Clearly both of these examples look pretty silly but are relatively easy to fix, so into an the animation software we go and fix those things and try to get rid of any remaining jittering or general wobbliness.
At this point you are ready to get it in-game. Which in Unity, using Mecanim’s retargeting, is pretty easy and straightforward.
And that’s the story of how we now have 200+ additional animations without having to hire an animator for half a year. Hopefully the quality is high enough to be acceptable.
This past week has been spent in tools mode once again. Since Daniel started using Unity 5 for his art integration and tweaked our lighting, we haven’t actually had a chance to integrate the new sections yet. So, I’ve been working to smoothen out the process of integrating everything into the game.
I’m also taking the opportunity to address some workflow issues we’ve had in that department in the past. Our current setup tends to break everything when Daniel reimports his models into Unity. So I needed to modify our approach to storing and loading rooms so this wouldn’t be an issue in the future. Luckily, the solution also comes with a nifty performance gain when loading rooms, which is a welcome bonus!
I dug into Adam’s new debug command console, and it’s fantastic! It allows me to implement features with complicated inputs before we have the GUI. For example, spawning procedurally generated items (with parameters) and equipping to individual characters with text console commands, which is needed for missions.