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:
Humanoid,
Joint,
Segment,
Site,
Displacer (VRML 2.0 (97) version)
HAnimHumanoid,
HAnimJoint,
HAnimSegment,
HAnimSite,
HAnimDisplacer (X3D version)
As you see, X3D version has exactly the same nodes, working the same way,
but with 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 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 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.
|