This component defines nodes for humanoid animation.
We support the H-Anim component, so you can render your humanoid and animate it through interpolators. Both skeletal and skinned animation is supported.
TDisplacerNode) (VRML 2.0 (97) version)
THAnimDisplacerNode) (X3D version)
As you see, X3D version has exactly the same nodes, working the same way,
HAnim prefix before node name. (I have no idea why
this prefix was added in X3D specification, but it's supported.)
Actually we allow both versions (with
HAnim prefix and without)
in all VRML and X3D versions (with our
engine you can generally mix VRML/X3D versions). But VRML authors/generators should
not overuse this, and try to conform to appropriate spec where possible.
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
skinned — place the actual geometry (shapes)
Then you refer (
USE) the skin coordinates in
HAnimHumanoid.skinCoord". And finally,
in each joint you modify skin coordinates by
Remember that you also have to list (
the joints inside flat list "
Actually, specification requires them in every case (not only
for skinned animation), but our engine for now uses them only
for joints that affect "
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.
You can try the view3dscene Edit -> Add Humanoids Joints Visualization menu option to see the joints centers and their names.
skinNormal is not supported yet.
Copyright Michalis Kamburelis and Castle Game Engine Contributors.
This webpage is also open-source and we welcome pull requests to improve it.