<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
<X3D profile='Immersive'
version='3.3'
xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance'
xsd:noNamespaceSchemaLocation
='
https://www.web3d.org/specifications/x3d-3.3.xsd
'
>
<head>
</head>
<!--
<!--
Index for DEF nodes:
HumanoidGroup1,
HumanoidGroup2,
HumanoidGroup3,
HumanoidTransform,
JointTransform,
SegmentGroup,
SiteTransform
Index for ProtoDeclare definitions:
Displacer,
Humanoid1_1,
Joint,
Segment,
Site
-->
<Scene>
<!-- **********Human Model Protypes********* -->
<ProtoDeclare name='Humanoid1_1' appinfo='The Humanoid node serves as overall container for the Joint Segment Site and Viewpoint nodes which define the skeleton geometry and landmarks of the humanoid figure. Additionally the node provides a means for defining information about the author copyright and usage restrictions of the model.'
documentation='
http://HAnim.org/Specifications/HAnim2001/part1/Humanoid.html
'
>
<ProtoInterface>
<!-- HAnim v1.1 field definitions -->
<field name='name' type='SFString' accessType='inputOutput'/>
<field name='version' type='SFString' value='1.1' accessType='inputOutput'
appinfo='legal values: 1.1 or 2.0'
/>
<field name='humanoidVersion' type='SFString' accessType='inputOutput'
appinfo='Version of the humanoid being modeled. Hint: HAnim version 2.0'
/>
<field name='info' type='MFString' accessType='inputOutput'/>
<field name='translation' type='SFVec3f' value='0 0 0' accessType='inputOutput'/>
<field name='rotation' type='SFRotation' value='0 0 1 0' accessType='inputOutput'/>
<field name='center' type='SFVec3f' value='0 0 0' accessType='inputOutput'/>
<field name='scale' type='SFVec3f' value='1 1 1' accessType='inputOutput'/>
<field name='scaleOrientation' type='SFRotation' value='0 0 1 0' accessType='inputOutput'/>
<field name='bboxCenter' type='SFVec3f' value='0 0 0' accessType='initializeOnly'/>
<field name='bboxSize' type='SFVec3f' value='-1 -1 -1' accessType='initializeOnly'/>
<field name='humanoidBody' type='MFNode' accessType='inputOutput'
appinfo='HAnim 1.1 field container for body head. Hint: replaced by 2.0 skeleton.'
documentation='
http://HAnim.org/Specifications/HAnim1.1/#humanoid
'
/>
<field name='skeleton' type='MFNode' accessType='inputOutput'
appinfo='HAnim 2.0 field container for body geometry Hint: replaces 1.1 humanoidBody'
documentation='
http://HAnim.org/Specifications/HAnim2001/part1/Humanoid.html
'
/>
<field name='joints' type='MFNode' accessType='inputOutput'
appinfo='Container field for Joint nodes'
/>
<field name='segments' type='MFNode' accessType='inputOutput'
appinfo='Container field for Segment nodes'
/>
<field name='sites' type='MFNode' accessType='inputOutput'
appinfo='Container field for Site nodes'
/>
<field name='viewpoints' type='MFNode' accessType='inputOutput'
appinfo='Container field for Viewpoint nodes'
/>
<field name='skinCoord' type='SFNode' accessType='inputOutput'
appinfo='Hint: HAnim version 2.0'
>
<!-- NULL -->
</field>
<field name='skinNormal' type='SFNode' accessType='inputOutput'
appinfo='Hint: HAnim version 2.0'
>
<!-- NULL -->
</field>
</ProtoInterface>
<ProtoBody>
</ProtoBody>
</ProtoDeclare>
<ProtoDeclare name='Joint' appinfo='The Joint node is used as a building block to describe the articulations of the humanoid figure. Each articulation of the humanoid figure is represented by a Joint node each of which is organized into a hierarchy that describes the overall skeleton of the humanoid.'
documentation='
http://HAnim.org/Specifications/HAnim2001/part1/Joint.html
'
>
<ProtoInterface>
<field name='name' type='SFString' accessType='inputOutput'/>
<field name='ulimit' type='MFFloat' accessType='inputOutput'/>
<field name='llimit' type='MFFloat' accessType='inputOutput'/>
<field name='limitOrientation' type='SFRotation' value='0 0 1 0' accessType='inputOutput'/>
<field name='skinCoordIndex' type='MFInt32' accessType='inputOutput'/>
<field name='skinCoordWeight' type='MFFloat' accessType='inputOutput'/>
<field name='stiffness' type='MFFloat' value='0 0 0' accessType='inputOutput'/>
<field name='translation' type='SFVec3f' value='0 0 0' accessType='inputOutput'/>
<field name='rotation' type='SFRotation' value='0 0 1 0' accessType='inputOutput'/>
<field name='scale' type='SFVec3f' value='1 1 1' accessType='inputOutput'/>
<field name='scaleOrientation' type='SFRotation' value='0 0 1 0' accessType='inputOutput'/>
<field name='center' type='SFVec3f' value='0 0 0' accessType='inputOutput'/>
<field name='bboxCenter' type='SFVec3f' value='0 0 0' accessType='initializeOnly'/>
<field name='bboxSize' type='SFVec3f' value='-1 -1 -1' accessType='initializeOnly'/>
<field name='children' type='MFNode' accessType='inputOutput'/>
<field name='addChildren' type='MFNode' accessType='inputOnly'/>
<field name='removeChildren' type='MFNode' accessType='inputOnly'/>
</ProtoInterface>
<ProtoBody>
<Transform DEF='JointTransform'>
<IS>
<connect nodeField='translation' protoField='translation'/>
<connect nodeField='rotation' protoField='rotation'/>
<connect nodeField='center' protoField='center'/>
<connect nodeField='scale' protoField='scale'/>
<connect nodeField='scaleOrientation' protoField='scaleOrientation'/>
<connect nodeField='bboxCenter' protoField='bboxCenter'/>
<connect nodeField='bboxSize' protoField='bboxSize'/>
<connect nodeField='children' protoField='children'/>
<connect nodeField='addChildren' protoField='addChildren'/>
<connect nodeField='removeChildren' protoField='removeChildren'/>
</IS>
</Transform>
</ProtoBody>
</ProtoDeclare>
<ProtoDeclare name='Segment' appinfo='The Segment node is used describe the attributes of the physical links between the joints of the humanoid figure. Each body part (pelvis thigh calf etc.) of the humanoid figure is represented by a Segment node.'
documentation='
http://HAnim.org/Specifications/HAnim2001/part1/Segment.html
'
>
<ProtoInterface>
<field name='name' type='SFString' accessType='inputOutput'/>
<field name='mass' type='SFFloat' value='0' accessType='inputOutput'/>
<field name='centerOfMass' type='SFVec3f' value='0 0 0' accessType='inputOutput'/>
<field name='momentsOfInertia' type='MFFloat' value='0 0 0 0 0 0 0 0 0' accessType='inputOutput'/>
<field name='bboxCenter' type='SFVec3f' value='0 0 0' accessType='initializeOnly'/>
<field name='bboxSize' type='SFVec3f' value='-1 -1 -1' accessType='initializeOnly'/>
<field name='children' type='MFNode' accessType='inputOutput'/>
<field name='addChildren' type='MFNode' accessType='inputOnly'/>
<field name='removeChildren' type='MFNode' accessType='inputOnly'/>
<field name='coord' type='SFNode' accessType='inputOutput'
appinfo='contains Coordinate nodes'
>
<!-- NULL -->
</field>
<field name='displacers' type='MFNode' accessType='inputOutput'
appinfo='contains Displacer nodes'
/>
</ProtoInterface>
<ProtoBody>
<Group DEF='SegmentGroup'>
<IS>
<connect nodeField='bboxCenter' protoField='bboxCenter'/>
<connect nodeField='bboxSize' protoField='bboxSize'/>
<connect nodeField='children' protoField='children'/>
<connect nodeField='addChildren' protoField='addChildren'/>
<connect nodeField='removeChildren' protoField='removeChildren'/>
</IS>
</Group>
</ProtoBody>
</ProtoDeclare>
<ProtoDeclare name='Site' appinfo='The Site node can be used for three purposes: (a) to define an "end effector" location which can be used by an inverse kinematics system (b) to define an attachment point for accessories such as jewelry and clothing and (c) to define a location for a virtual camera in the reference frame of a Segment node (such as a view "through the eyes" of the humanoid for use in multi-user worlds).'
documentation='
http://HAnim.org/Specifications/HAnim2001/part1/Site.html
'
>
<ProtoInterface>
<field name='name' type='SFString' accessType='inputOutput'/>
<field name='translation' type='SFVec3f' value='0 0 0' accessType='inputOutput'/>
<field name='rotation' type='SFRotation' value='0 0 1 0' accessType='inputOutput'/>
<field name='scale' type='SFVec3f' value='1 1 1' accessType='inputOutput'/>
<field name='scaleOrientation' type='SFRotation' value='0 0 1 0' accessType='inputOutput'/>
<field name='center' type='SFVec3f' value='0 0 0' accessType='inputOutput'/>
<field name='bboxCenter' type='SFVec3f' value='0 0 0' accessType='initializeOnly'/>
<field name='bboxSize' type='SFVec3f' value='-1 -1 -1' accessType='initializeOnly'/>
<field name='children' type='MFNode' accessType='inputOutput'/>
<field name='addChildren' type='MFNode' accessType='inputOnly'/>
<field name='removeChildren' type='MFNode' accessType='inputOnly'/>
</ProtoInterface>
<ProtoBody>
<Transform DEF='SiteTransform'>
<IS>
<connect nodeField='translation' protoField='translation'/>
<connect nodeField='rotation' protoField='rotation'/>
<connect nodeField='center' protoField='center'/>
<connect nodeField='scale' protoField='scale'/>
<connect nodeField='scaleOrientation' protoField='scaleOrientation'/>
<connect nodeField='bboxCenter' protoField='bboxCenter'/>
<connect nodeField='bboxSize' protoField='bboxSize'/>
<connect nodeField='children' protoField='children'/>
<connect nodeField='addChildren' protoField='addChildren'/>
<connect nodeField='removeChildren' protoField='removeChildren'/>
</IS>
</Transform>
</ProtoBody>
</ProtoDeclare>
<ProtoDeclare name='Displacer' appinfo='A Displacer can be used in three different ways: (a) identify the vertices corresponding to a particular feature on a Segment (b) represent a particular muscular action which displaces the vertices in various directions (linearly or radially) and (c) represent a complete configuration of the vertices in a Segment.'
documentation='
http://HAnim.org/Specifications/HAnim2001/part1/Displacer.html
'
>
<ProtoInterface>
<field name='name' type='SFString' accessType='inputOutput'/>
<field name='coordIndex' type='MFInt32' accessType='inputOutput'/>
<field name='displacements' type='MFVec3f' accessType='inputOutput'/>
</ProtoInterface>
<ProtoBody>
<WorldInfo info='"null body node"'/>
</ProtoBody>
</ProtoDeclare>
<Shape>
<Text string='"Humanoid Animation" "(HAnim) prototype" "implementations"'>
<FontStyle justify='"MIDDLE" "MIDDLE"'/>
</Text>
<Appearance>
<Material ambientIntensity='0.25' diffuseColor='0.795918 0.505869 0.093315' shininess='0.39' specularColor='0.923469 0.428866 0.006369'>
<!-- Universal Media Library: Autumn 9 -->
</Material>
</Appearance>
</Shape>
</Scene>
</X3D>
<!--
<!--
Index for DEF nodes:
HumanoidGroup1,
HumanoidGroup2,
HumanoidGroup3,
HumanoidTransform,
JointTransform,
SegmentGroup,
SiteTransform
Index for ProtoDeclare definitions:
Displacer,
Humanoid1_1,
Joint,
Segment,
Site
-->
-->
<!--
Online at
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/HAnimPrototypesIndex.html
-->
<!--
Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/HAnimPrototypes.x3d
-->
<!--
Color legend: X3D terminology
<X3dNode
DEF='idName' field='value'/>
matches XML terminology
<XmlElement
DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement)
(Grey background inside box: inserted documentation)
(Magenta background: X3D Extensibility)
<ProtoDeclare
name='ProtoName'>
<field
name='fieldName'/> </ProtoDeclare>
-->
<!--
For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints.
-->