Part 1: Humanoid animation (HAnim) architecture
Annex E
(informative)
HAnim figures are often embedded in VRML and X3D worlds using the interfaces described in Annex C VRML interface and Annex D X3D interface. This annex specifies guidelines that can smooth the use of HAnim figures within these environments.
In these environments, HAnim objects are represented in the form of VRML or X3D nodes. Thus, throughout this annex, references to nodes indicate HAnim objects that have been already been mapped into VRML or X3D nodes. Thus, the type of all VRML or X3D nodes is shown in monospace font.
Table E.1 lists the topics of this annex.
Particular views of the humanoid may be specified in two techniques.
In the first technique, the author of the humanoid creates Site nodes in suitable locations. A Viewpoint node may then be created and attached to any of the Site nodes. The Viewpoint node tracks the motion of the humanoid’s body parts.
In the second technique, Viewpoint nodes are instanced in the viewpoints field of the Humanoid node to create a view of the humanoid that tracks its motion through space without being affected by the movement of any of the body’s Segment nodes. Viewpoint nodes that are placed in that field are also available whenever the humanoid is loaded into a browser, and are therefore useful for previewing the character.
There are several specific viewpoints that may be included in the file. The
Front_view
should face in the -Z direction, the
Side_view
should face in the -X direction, the
Top_view
should face in the -Y direction, the
Inclined_view
should face towards (-1 0 -1), and the
Best_view
can provide a view from any direction which best
highlights an individual humanoid's unique characteristics. All these
Site nodes should be displaced from the centre of
the humanoid by a sufficient distance to show the entire humanoid from that
view.
Additional views are possible. All Viewpoint nodes for a humanoid should be listed in the viewpoints field of the Humanoid node. Using this convention, systems that use several models in the same scene may choose to disable all the extra viewpoints by sending an empty MFNode event into the viewpoints field of the node.
A NavigationInfo node can be included at the top
of the file to put the VRML or X3D browser into EXAMINE mode. The
type field should always include "EXAMINE"
first and "ANY"
second:
NavigationInfo { type ["EXAMINE", "ANY"] }
This makes it easy to examine the humanoid from all angles. The default value for the type field of the NavigationInfo node in X3D is the value specified above (see ISO/IEC 19775-1).
There are some cases in which it is useful to have multiple humanoids in the
same file, perhaps alongside other elements of a 3D world. In such a case,
it is recommended that the humanoids be assigned unique DEF names (rather
than "DEF Humanoid"
) and that those names be
referenced as the children of a Group node named
"HumanoidGroup"
:
DEF Fred Humanoid { ... } DEF Jane Humanoid { ... } DEF Sally Humanoid { ... } DEF HumanoidGroup Group { children [ USE Fred, USE Jane, Use Sally ] }
An external application can obtain a reference to the
HumanoidGroup
for the scene and, by iterating over the children
of that group, obtain references to the individual humanoids.