Raymond
Demo: Green Dragon

Newer: "Framework: checking memory leaks with Valgrind"

Older: "Character animation: eye movement constraints"

Character animation: adding logic for face movement

Bugs: First mesh to be rendered in Mouth Features node has no shading... Mouth features don't always load the first time (FIXED) Have to use SkinnedMorphMesh because MorphMesh is broken, or its resman loader is. (FIXED) Armature stops moving when the focus goes outside the window at certain times. Eyes and other features translated from the origin don't seem to be shaded properly.

Optimisation: I'm loading and rendering dragon character's mouth features (tongue, teeth, etc) as separate meshes. For lots of smaller meshes, it should be more efficient to put them all in one VBO to save a lot of buffer context switching each frame cycle. It should be theoretically possible to load the entire scene in one VBO, though there is a vertex limit.

Features added and active. Not sure why top teeth and eyes are so bright.

[28/06/14 19:54]

Implementing random blinks pseudocode:

tStart = 1.0f
bool newSecond = true;
if (tGame >= tStart && <= tStart + 1.0f)
{
    // Check each second.
    if (newSecond)
    {
        // Check chance of blinking.
        uint die10 = rand() % 10; // 1-in-10 chance.
        if (die10 == 0)
        {
            playBlink(tGame);
        }
        newSecond = false;
    }
}
else if (tGame > tStart + 1.0f)
{
    // When current second has passed.
    tStart += 1.0f;
    newSecond = true;
}

[28/06/14 22:26] Making one idle animation in Blender as a background loop.

[29/06/14 00:13]

Final system complete.

Can do a lot more: needs a lot of memory and loading optimisation. I would also like to add another armature animation: the dragon snaps forward when the player clicks the mouse. That could even be turned into a game: the player has to have the dragon snap or breathe fire on some sort of enemy.

Other incomplete features (as of 2014-06-29):
  • Lack of a camera node. This would allow the camera to be influenced by nodes and controllers in the scene.
  • Lack of light nodes - lighting is coded into the shaders.
  • Unimplemented find and delete functionality for nodes in scene graph.

Newer: "Framework: checking memory leaks with Valgrind"

Older: "Character animation: eye movement constraints"