Demo: Green Dragon

Articles with the tag: Rigging

Character rigging: vertex weight painting

The weight of each vertex in a vertex group defines how much it is influenced by the bone associated with that group.

Armature weight painting successfully completed. Testing to see if updated mesh and armature works in game environment.

Not using Three.js Blender exporter's Morph Animation option, which generates 100+ MB files. Just going to create a mesh for each shape key (i.e. blink, mouth open), which can then be blended with the basis mesh by the game engine.

Read More »

IK Constraints

[24/04/14 14:49]

Right, the IK is good enough for the model. Making test bind pose with basic "neck" armature in a curved pose like the eventual dragon model. A few constraints should make its movement look natural even without rotation.

To Blender!

Current state of IK

Update: rotation works now.

[24/04/14 16:29]

Constraints for each joint should be defined relative to their parent joint, but how should they be defined in particular? The current IK solver doesn't allow "roll" motion for the joints, but each joint still has yaw and pitch rotation. Each joint could therefore specify a bounds, for example: yaw_max, yaw_min, pitch_max, pitch_max.

In the phoxtrace (Update: now "CharSim") IK solver, each frame the best incremental rotation is calculated for each joint in the form of a quaternion based on an axis and rotation. It may be necessary to convert the ...

Read More »

Building a skinning matrix palette for the shader

Since ogldev's example uses strange matrix addition for its vertex weighting combination, and multiplying said matrices by scalars (which on testing doesn't seem to do anything), other references are worth a look such as this page.

Each bone using a mat4 takes up a lot of GPU registers. If the model contains many bones, it might be better to use a quaternion-translation vector pair, taking up half the space of a mat4. This of course comes with more processing overhead. mat4 will be fine for the demo.

[26/03/14 14:51]

Weight combining shader code appears to work. Must generate bone matrices from skeleal hierarchy.

And then... animation.

[26/03/14 15:33]

Possibly inefficient (because the same global matrix is generated for parent nodes over and over again. For example, Pelvis * Root is calculated for every bone.) recursive method for finding global pone transformations:

// Base case ...

Read More »


Created SkinnedMesh for bones, vertex weights and skin indices.

Read More »

Read More »

Page 1 / 1