Fire up those chemokines! Created this sequence (concept to completion) in 5 days given only an audio clip & general script guidelines.
As with syncing props to animated objects, syncing 2 (or more) animated objects presents a similar challenge. But in the previous post, the problem was a little easier. Basically a character moves to a registration point and an event is triggered. The event calls synced animations on multiple objects and the objects interact. Pretty simple.
However, syncing becomes difficult when two complex animated objects with layers of blends & animations need to interact in unison. To avoid making a programmer write spaghetti code & painting oneself into an art production corner, it's better to abstract the interaction with the use of states. In Unity, a state tree can drive a network of animations; simple to complex. Two (or more) objects can share the same state tree and unique animations can be called per object via overrides. So two dissimilar objects can interact together as they transition from state to state. Very slick. Below are some simple examples of how states keep animated objects glued together.
Side Note: To abstract art production a little further, an "object" can be only a hierarchy for transforms. Meshes properties can be attached as needed. Below you can see how the bike is a bunch of mesh parts attached to a 'naked' hierarchy of bones, making it's components & paint upgrade-able.
Setting-up & registering multiple static & dynamic objects to create a "cookie cutter" standard in which all Unity prefabs will derive from. In this example: The character's "sit-in" and "sit-out" animations sync with the dynamic chair's "sit-in" and "sit-out" animations. Both the character & chair are spatially registered to the static table. So long as new mesh objects are created to match this standard, this system can drive different table & chair combos.
The same method works for registering & synchronizing deformable props with animated objects as well. So long as the bath tubs & shower curtains in the game conform to a standard, the objects will interact perfectly when triggered together.
Got some very good performance results running many of these characters on a Nexus 7 tablet. The exported FBX file has 60 bones and 5k triangles. Mobile isn't for low resolution graphics anymore! The videos below show the animated rig in Softimage and the exported result running realtime in Unity.
I continued testing flexible, stretchy, & stylized rigs & animations in Unity. I made this mockup character... let's call him "Boxy". In the first video, you can see Boxy's rig driving the STR values of nulls (the yellow dots). In the second video, the plotted nulls are driving the same deformations in realtime. Pretty slick!
highly flexible character rig - in 3d app
complex rig controls plotted down to STR data - realtime in Unity
You don't see many exaggerated squash & stretch style animations in 3d games. When I worked on Half-Life 2 I rigged & animated the Barnacle character who had lots of realtime squash & stretch deformation. Like many engines, Source threw out the scale data, so I had to use only bone translations & rotations to make him bendable. Now days modern game engines support scaling and Unity supports scaling bones! So testing basic bone scaling. Below you can see my results from the 3d app and plotted to realtime bones in Unity.
3d app render
realtime in Unity
As a generalist, I keep all the 3d skills sharp. When I haven't touched animation in awhile, I go back to fundamental exercises. It's all about the basics.
flip & recover
Derek Jenson Blog
My website serves to archive experiments, document projects, share techniques, and motivate further exploration & artistry in 3d space.