after checking some tutorial codes, mainly in "Animation.cpp", character animation is not too complicated as I see, but 2 separate function loops are used:

- one for skeleton manipulation called "Update()" that defines the position of the corresponding mesh:
Code:
cskel.clear();     // clear controlled skeleton animation
cskel.animate(L"../data/anim/walk.anim", Time.time()); // animate with "walk" animation and current time position
cskel.updateMatrix    (MatrixIdentity); // update controlled skeleton animation matrixes
cskel.move( Vec(0,0,Sin(Time.time()) ) );  // move skeleton due to vector - here smoothly between +/-1 meter forward-backward
cskel.updateVelocities(              ); // update controlled skeleton bone velocities (this is needed for Motion Blur effect)


- and another "Render()" for mesh representation, and mesh is assigned here to the above described controlled skeleton:
Code:
Meshes("../data/obj/chr/skeleton/0.mesh")->draw(cskel); // get mesh from cache and render it with controlled skeleton matrixes


Of course it is much more complicated than in Lite-C, where you can use ent_animate() and c_move() within entity action loop.


Free world editor for 3D Gamestudio: MapBuilder Editor