Kambi VRML game engine
← Users Developers →
 
Intro and News
 
view3dscene
 
The Castle
 
All Programs
 
Forum
 
Engine
 
VRML/X3D
 
Other
 

H-Anim component

This component defines nodes for humanoid animation.

See also X3D specification of H-Anim component.

We support the H-Anim component, so you can render your humanoid and animate it through interpolators. Both skeletal and skinned animation is supported.

Supported nodes:

The implementation takes some care to handle all existing H-Anim versions: HAnim 1.0, HAnim 1.1, HAnim 200x.

Both H-Anim animation types are supported (they can also be mixed in one model):

  • skeletal — you place your geometry inside joints (as segments or sites). This is simple, and joints work then quite like animated transform nodes. Animating transformations of Joint nodes and such is optimized, just like for Transform node.

  • skinned — place the actual geometry (shapes) inside "HAnimHumanoid.skin" field. Then you refer (USE) the skin coordinates in "HAnimHumanoid.skinCoord". And finally, in each joint you modify skin coordinates by "HAnimJoint.skinCoordIndex", "HAnimJoint.skinCoordWeight".

    Remember that you also have to list (USE) all the joints inside flat list "HAnimHumanoid.joints". Actually, specification requires them in every case (not only for skinned animation), but our engine for now uses them only for joints that affect "skinCoordIndex".

    InstantReality has a nice overview of how the X3D nodes should be set up, see also the X3D and latest H-Anim specifications of course.

    One nice open-source modeller that can create such humanoids is Seamless3D, our implementation was tested on Lucy. Make sure to export a version without JavaScript.

    You can try the view3dscene Edit -> Add Humanoids Joints Visualization menu option to see the joints centers and their names.

    TODO: animation of skinned humanoids is a little jerky on slower computers. This will be fully fixed with full-VBO renderer, planned for view3dscene 3.9.0.

    TODO: skinNormal is not supported yet.