Part 1: Humanoid animation (HAnim) architecture

Annex E

(informative)

Guidelines for HAnim in VRML and X3D worlds

# E.1 General

## E.1.1 Overview

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.

## E.1.2 Topics

Table E.1 lists the topics of this annex.

Table E.1 — Topics

E.1 General E.1.1 Overview E.1.2 Topics E.2 Viewpoints E.3 Navigation E.4 Multiple humanoids per file Table E.1 — Topics

# E.2 Viewpoints

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.

# E.3 Navigation

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).

# E.4 Multiple humanoids per file

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.