Archive for the ‘Uncategorized’ Category

Borderlands 2 Wimoweh Trailer

Check out the new Borderlands 2 Trailer that I got the privilege to work on with the Gearbox crew in Texas:


The Importance of Joint Orientation

Joint Orientation is critical when preparing characters for animation, and especially so when developing animations for game development. It is an integral part of the character animation skeleton. Beyond mere joint placement, which acts as a pivot for the joint or limb, joint orientation contains information as to the direction/angle of the X, Y, Z axes, and their ranges of motion.

For example, you create a skeleton with the correct joint placement, and do not consider joint orientation. When the animator takes a hold of the skeleton to animate (Forward Kinematics), a common occurrence is that the animations will not transition correctly (most likely horribly) between key frame poses, thus creating a lot more work for the animator to modify/clean up the animation curves: highly inefficient. This is particularly due to the fact they don’t have defined ranges of motions to base their movements on, and will have to animate based on camera perspective, which is not very efficient or effective.

Animating joints via Inverse Kinematics with Pole Vectors can simplify some of the work for the animator for certain animations, however, visible gimbal rotation malfunctions are common, and are more complicated to adjust via animation curves because the object being animated is the IK controller, not the joint.

If you are building a character skeleton for game development, and not just for working within your 3D software package, poor joint orientation can cause some major integration issues since game engines import skeleton/joint information differently.

For now, here are some example screens of a clean joint oriented skeleton. As I expected, integration into Unreal Development Kit was clean, simple, and uneventful.

Tip: Orient joints with the X axis pointing down the joint, have the Z axis be a pivot for the joint. Consistency is key!


Defining World/Local/Object axes.

World: the world’s default axis, Go to and expand/enable “Display >> Heads Up Display >> Origin Axis” to view.

To view the axis of an object, select desired objects and press the “F8” key, this is the object/component mode toggle button and then click on the question mark icon/button next to the “lock/unlock” icon in the Status Line menu (directly underneath the main menu by default, and the same line where the drop down menu for different modes ie. Animation/Polygon/Dynamics/Rendering etc is located on).

Local: Based on the parent objects’ axis, notice that if there is a single object in a scene, the Local axis of this object is the same as the world axis because the parent of the object IS the world.

Object: the objects’ axis.

Return top