Characters and animation

We’re getting ready to go to Kickstarter with our game, to help us raise the money needed for the custom art, animations, and hopefully original music for Spy DNA. This means we’re making a new video to show off the progress we’ve made in the past couple of months.

One important improvement you’ll notice is that we’re using custom characters to replace the placeholders we got from the Unreal Engine asset store.

The cool thing about using custom characters is that we can make them look all different, use different body types, skin and hair colors, and of course different clothing.

Now the challenge with that is that once you stray from the Unreal Store, you need to rig up and animate the characters from scratch.

While we’re working on funding custom motion captures, we’re using some animations we purchased from mo-cap vendors with our characters.
We have (finally!) settled on an animation workflow for the project. We use Autodesk MotionBuilder for working with animations. This allows us to retarget an animation from one character to another. This is important because depending on the source of the character they may have a different skeleton, which makes the animations incompatible. This tool allows us to solve this problem.

Next, we get the animations into our project in Unreal Engine. That done, there is still a lot of work to do. The first step is selecting which animation to play for a character at any given time. At last count we have nearly 1,000 animations captured. Selecting the right one to play at any given time is complex enough we had to abandon the normal UE4 blueprint system and move most of the animation logic to C++. Once the system knows which animation is to be played, it may be necessary to slightly speed up or slow down the playback to match the speed of the specific character. 

It’s at this point that things start to get hard (as if it wasn’t hard enough already, heheh). So now that you have your base animation, you want to adjust it for the environment, so that a character's feet don’t go through the ground or hang in the air. Also you want the character to look and aim in the right direction. For these effects we are evaluating some middleware solutions (HumanIK, Morpheme, and IKinema). These provide tools for improving the interaction between the animation, character model, and the environment. In some cases they can also generate animations on the fly in response to environmental stimulus. A good example would be falling down stairs after dying.

In the process of getting it all to work, we get to watch many animations that look pretty funny. Do you have your favorite animation bloopers from a game you played? Share it with us in the comments.