<div dir="ltr"><div dir="auto"><div>Hi Don,</div><div><br></div><div><div class="gmail_quote"><div dir="ltr">On Wed, Jun 20, 2018, 9:29 AM Don Brutzman <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">[copied: Humanoid Animation (HAnim) Working Group <a href="mailto:h-anim@web3d.org" rel="noreferrer" target="_blank">h-anim@web3d.org</a>]<br>
<br>
Thanks for asking this important question. Those fields you've identified are not rendered. They are provided so that tools might have a convenient list of references occurring throughout the skeleton, thus facilitating automatic techniques.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">It would be helpful to clearly state that the content of these fields is not rendered, perhaps in the tooltips. </div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Critical reference: HAnim Draft International Standard (DIS) submitted to ISO, available on web3D website.<br>
<br>
=========================================================================================<br>
<br>
All H-Anim Standards<br>
<a href="http://www.web3d.org/standards/h-anim" rel="noreferrer noreferrer" target="_blank">http://www.web3d.org/standards/h-anim</a><br>
<br>
19774-1 ISO/IEC DIS 19774-1 V2.0 Humanoid Animation (H-Anim) : Architecture<br>
<a href="http://www.web3d.org/documents/specifications/19774-1/V2.0/" rel="noreferrer noreferrer" target="_blank">http://www.web3d.org/documents/specifications/19774-1/V2.0/</a><br>
<br>
6.2 Humanoid<br>
<a href="http://www.web3d.org/documents/specifications/19774-1/V2.0/HAnim/ObjectInterfaces.html#Humanoid" rel="noreferrer noreferrer" target="_blank">http://www.web3d.org/documents/specifications/19774-1/V2.0/HAnim/ObjectInterfaces.html#Humanoid</a><br>
[...]<br>
<br>
The skeleton field contains the humanoid_root Joint object. The Humanoid object is considered the parent object of the humanoid_root Joint object and defines a coordinate space for the humanoid_root Joint object. Thus, the Humanoid object's transformation affects the Joint object hierarchy in the skeleton field. A hierarchy of Joint objects is defined for each H-Anim humanoid figure within the skeleton field of the Humanoid object and a hierarchical definition of joints is present even when the geometry of the humanoid figure is not defined within the skeleton field. The skeleton field can also contain zero or more Site objects which allow landmarks to be established with respect to the overall humanoid figure, but which are not affected by the movement of any of the Joint objects.<br>
<br>
The joints field contains a list of references, one for each Joint object defined within the skeleton field hierarchy of the Humanoid object. The order in which the joints are listed is irrelevant since the names of the joints are stored in the Joint objects themselves.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">I saw that but the language did not help in deciding if these lists should be rendered, especially after examining how examples use USE for referencing.</div><div dir="auto"><br></div><div dir="auto">The larger question is if these fields are really helpful since they do not add information and require manual syncing. Tools can extract these lists from skeleton, and would need to if these fields are not provided or left at default values.</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
The segments field contains a list of references, one for each Segment object defined within the skeleton field hierarchy of the Humanoid object. The order in which the segments are listed is irrelevant since the names of the segments are stored in the Segment objects themselves.<br>
<br>
The sites field contains a list of references, one for each Site object defined within the skeleton field hierarchy of the Humanoid object. The order in which the sites are listed is irrelevant since the names of the sites are stored in the Site objects themselves.<br>
<br>
The references to contained Joint, Segment and Site objects may be used to support inverse kinematics (IK) and other motion tools animating nodes found within the skeleton field.<br>
<br>
=========================================================================================<br>
Informational reference: X3D Tooltips, HAnimHumanoid<br>
<br>
<a href="http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimHumanoid" rel="noreferrer noreferrer" target="_blank">http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimHumanoid</a><br>
HAnimHumanoid [inherits X3DChildNode, implements X3DBoundedObject]<br>
The HAnimHumanoid node is used to: (a) store references to the joints, segments, sites, skeleton, optional skin, and fixed viewpoints, (b) serve as a container for the entire humanoid, (c) provide a convenient way of moving the humanoid through its environment, and (d) store human-readable metadata such as name, version, author, copyright, age, gender and other information. HAnimHumanoid contains a skeleton consisting of HAnimJoint, HAnimSegment and HAnimSite nodes. HAnimHumanoid can also contain an optional skin consisting of an IndexedFaceSet mesh with corresponding skinCoord Coordinate|CoordinateDouble vertices and skinNormal Normal vectors.<br>
Hint: MFNode arrays for the joints, segments, sites, and viewpoints fields provide lists for all HAnim nodes found in the skeleton hierarchy and thus only contain USE node references.<br>
Hint: H-Anim Specification <a href="http://www.web3d.org/documents/specifications/19774-1/V2.0/HAnim/HAnimArchitecture.html" rel="noreferrer noreferrer" target="_blank">http://www.web3d.org/documents/specifications/19774-1/V2.0/HAnim/HAnimArchitecture.html</a><br>
Hint: H-Anim Specification, Humanoid <a href="http://www.web3d.org/documents/specifications/19774-1/V2.0/HAnim/ObjectInterfaces.html#Humanoid" rel="noreferrer noreferrer" target="_blank">http://www.web3d.org/documents/specifications/19774-1/V2.0/HAnim/ObjectInterfaces.html#Humanoid</a><br>
Hint: X3D for Advanced Modeling (X3D4AM) slideset <a href="http://x3dgraphics.com/slidesets/X3dForAdvancedModeling/HumanoidAnimation.pdf" rel="noreferrer noreferrer" target="_blank">http://x3dgraphics.com/slidesets/X3dForAdvancedModeling/HumanoidAnimation.pdf</a><br>
Warning: requires X3D profile='Full' or else include <component name='H-Anim' level='1'/><br>
<br>
=========================================================================================<br>
<a href="http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimHumanoid.joints" rel="noreferrer noreferrer" target="_blank">http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimHumanoid.joints</a><br>
[joints accessType inputOutput, type MFNode array, empty list] [HAnimJoint]<br>
The joints field contains a list of USE references for all HAnimJoint node instances found within the preceding skeleton hierarchy.<br>
Hint: order is irrelevant since names are contained in the original DEF objects.<br>
Hint: these USE nodes can be utilitized by inverse kinematics (IK) and animation engines.<br>
Warning: the number of contained <HAnimJoint USE='*' containerField='joints'/> nodes at top level of HAnimHumanoid needs to match the number of corresponding HAnimJoint node instances found within the preceding skeleton hierarchy.<br>
Warning: top-level HAnimJoint USE nodes must include containerField='joints' for proper validation and operation.<br>
<br>
=========================================================================================<br>
<a href="http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimHumanoid.segments" rel="noreferrer noreferrer" target="_blank">http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimHumanoid.segments</a><br>
[segments accessType inputOutput, type MFNode array, empty list] [HAnimSegment]<br>
The segments field contains a list of USE references for all HAnimSegment node instances found within the preceding skeleton hierarchy.<br>
Hint: order is irrelevant since names are contained in the original DEF objects.<br>
Hint: these USE nodes can be utilitized by inverse kinematics (IK) and animation engines.<br>
Warning: the number of contained <HAnimSegment USE='*' containerField='segments'/> nodes at top level of HAnimHumanoid needs to match the number of corresponding HAnimSegment node instances found within the preceding skeleton hierarchy.<br>
Warning: top-level HAnimSegment USE nodes must include containerField='segments' for proper validation and operation.<br>
<br>
=========================================================================================<br>
<a href="http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimHumanoid.sites" rel="noreferrer noreferrer" target="_blank">http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimHumanoid.sites</a><br>
[sites accessType inputOutput, type MFNode array, empty list] [HAnimSite]<br>
sites field contains a list of USE references for all HAnimSite node instances found within the preceding skeleton hierarchy.<br>
Hint: order is irrelevant since names are contained in the original DEF objects.<br>
Hint: these USE nodes can be utilitized by inverse kinematics (IK) and animation engines.<br>
Warning: the number of contained <HAnimSite USE='*' containerField='sites, skeleton or viewpoints'/> nodes at top level of HAnimHumanoid needs to match the number of corresponding HAnimSite node instances found within the preceding skeleton hierarchy.<br>
Warning: top-level HAnimSite USE nodes must include containerField='sites' for proper validation and operation.<br>
<br>
=========================================================================================<br>
<a href="http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimHumanoid.viewpoints" rel="noreferrer noreferrer" target="_blank">http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimHumanoid.viewpoints</a><br>
[viewpoints accessType inputOutput, type MFNode array, empty list] [HAnimSite]<br>
List of HAnimSite nodes containing Viewpoint nodes that appear in the skeleton model, usually as USE node references. The viewpoints field contains zero or more special HAnimSite nodes that are only affected by HAnimHumanoid transformations (and no HAnimJoint transformations). Each HAnimSite can contain a Viewpoint as virtual camera in the HAnimHumanoid reference frame (such as viewing the face or profile of the human figure).<br>
Warning: these are actual node declarations, not USE nodes.<br>
Hint: the viewpoint field has different functionality than the joints, segments and sites fields.<br>
Hint: the viewpoints field connects internal Site nodes that in turn hold relative Viewpoint nodes, such as <HAnimSite USE='ObserveFaceSite_view' containerField='viewpoints'/> which has corresponding counterpart nodes <HAnimSite DEF='ObserveFaceSite_view' name='ObserveFaceSite_view' containerField='children'> <Viewpoint description='look at me!'/> </HAnimSite>.<br>
Warning: top-level HAnimSite nodes (in turn containing Viewpoint nodes) must include containerField='viewpoints' for proper validation and operation.<br>
<br>
=========================================================================================<br>
<br>
Completion of this new draft integrates years of work and is very recent. The X3D v4.0 Working Draft Specification (on github for Web3D members) has also been updated to match, providing the first component revision for X3D v4.0.<br>
<br>
Validation tools in X3D XML Schema, DTD, X3DUOM and X3DJSAIL are also updated. Pending improvements to match recent refinements include X3D JSON Encoding, X3D-Edit and<br>
<br>
X3D Example Archives: Basic, Humanoid Animation<br>
<a href="http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation" rel="noreferrer noreferrer" target="_blank">http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation</a><br>
<br>
X3D Example Archives: X3D for Advanced Modeling, Motion Animation<br>
<a href="http://x3dgraphics.com/examples/X3dForAdvancedModeling/MotionAnimation" rel="noreferrer noreferrer" target="_blank">http://x3dgraphics.com/examples/X3dForAdvancedModeling/MotionAnimation</a><br>
<br>
X3D Example Archives: X3D for Advanced Modeling, Shay D Pixel<br>
<a href="http://x3dgraphics.com/examples/X3dForAdvancedModeling/ShayDPixel" rel="noreferrer noreferrer" target="_blank">http://x3dgraphics.com/examples/X3dForAdvancedModeling/ShayDPixel</a><br>
<br>
The HAnim working group meets regularly to discuss improvements and progress. Looking forward to help tune example scenes, strengthen validation tests, and supporting your implementation.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">I may make some example scenes x3dom compatible, by removing or replacing unsupported nodes unrelated to HAnim.</div><div dir="auto"><br></div><div dir="auto">Andreas</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
v/r Don<br>
<br>
<br>
On 6/20/2018 5:15 AM, Andreas Plesch wrote:<br>
> Hi Joe,<br>
> <br>
> ok. Most of the HAnim scenes in the web3d examples archive probably populate these fields with USE references. My vague sense is that they do that only out of a perception that this is required or recommended, not for a functional purpose, but I did not go through those in detail.<br>
> <br>
> I will see if and how it is possible to special case the nodes in these fields in x3dom, perhaps by removing them from the list of drawable objects.<br>
> <br>
> On a spec. tangent, 19774-2/V2.0 Annex B, here<br>
> <br>
> <a href="http://www.web3d.org/documents/specifications/19774-2/V2.0/MotionDataAnimation/ExampleKeyframeAnimation.html" rel="noreferrer noreferrer" target="_blank">http://www.web3d.org/documents/specifications/19774-2/V2.0/MotionDataAnimation/ExampleKeyframeAnimation.html</a><br>
> <br>
> and 19774-1/V2.0 Annex F<br>
> <br>
> <a href="http://www.web3d.org/documents/specifications/19774-1/V2.0/HAnim/Design.html" rel="noreferrer noreferrer" target="_blank">http://www.web3d.org/documents/specifications/19774-1/V2.0/HAnim/Design.html</a><br>
> <br>
> define a containerField='skeleton' for the example Humanoid whose parent is the Scene. This is probably an editing oversight.<br>
> <br>
> -Andreas<br>
> <br>
> <br>
> On Tue, Jun 19, 2018 at 6:52 PM Joseph D Williams <<a href="mailto:joedwil@earthlink.net" rel="noreferrer" target="_blank">joedwil@earthlink.net</a> <mailto:<a href="mailto:joedwil@earthlink.net" rel="noreferrer" target="_blank">joedwil@earthlink.net</a>>> wrote:<br>
> <br>
> * So my question is if only the nodes in the skeleton field should be____<br>
> <br>
> rendered while the USE references in the joints and segments fields____<br>
> <br>
> should not be rendered and are provided exclusively for other purposes____<br>
> <br>
> (like kinematics) ? I could not quite answer that question from the____<br>
> <br>
> standard language.<br>
> <br>
> __ __<br>
> <br>
> Forget these fields they are leftovers from when the skeleton was not included in the user code and the fields just defined which of the skeleton parts in the ‘standard’ model that was not even accessible to the actual user, these fields were all he got to author, and some animation.<br>
> <br>
> Anyway, unless somebody can clearly show the need for these, then should be dumped, and never treated as required. When it became feasible to permit the skeleton into the actual user code, these fields became excess but for some reason nobody will delete them.<br>
> <br>
> __ __<br>
> <br>
> Thanks again,<br>
> <br>
> Joe<br>
> <br>
> __ __<br>
> <br>
> __ __<br>
> <br>
> *From: *Andreas Plesch <mailto:<a href="mailto:andreasplesch@gmail.com" rel="noreferrer" target="_blank">andreasplesch@gmail.com</a>><br>
> *Sent: *Tuesday, June 19, 2018 5:35 AM<br>
> *To: *X3D Graphics public mailing list <mailto:<a href="mailto:x3d-public@web3d.org" rel="noreferrer" target="_blank">x3d-public@web3d.org</a>><br>
> *Subject: *[x3d-public] HAnim only skeleton renderable ?<br>
> <br>
> __ __<br>
> <br>
> In my first attempt to improve the implemention of HAnim nodes and<br>
> <br>
> fields in x3dom, most (all?) shapes making up the Nancy humanoid from<br>
> <br>
> Nancy, native tags, were rendered multiple times, on top of each<br>
> <br>
> other.<br>
> <br>
> The reason turned out to be the USE references in the joints and<br>
> <br>
> segments field of Humanoid.<br>
> <br>
> Since a USE node places another instance of a DEF node into the scene<br>
> <br>
> graph, all the Shapes in the joint and segment nodes were duplicated.<br>
> <br>
> __ __<br>
> <br>
> So my question is if only the nodes in the skeleton field should be<br>
> <br>
> rendered while the USE references in the joints and segments fields<br>
> <br>
> should not be rendered and are provided exclusively for other purposes<br>
> <br>
> (like kinematics) ? I could not quite answer that question from the<br>
> <br>
> standard language.<br>
> <br>
> __ __<br>
> <br>
> -Andreas<br>
> <br>
> __ __<br>
> <br>
> -- <br>
> <br>
> Andreas Plesch<br>
> <br>
> Waltham, MA 02453<br>
> <br>
> __ __<br>
> <br>
> _______________________________________________<br>
> <br>
> x3d-public mailing list<br>
> <br>
> <a href="mailto:x3d-public@web3d.org" rel="noreferrer" target="_blank">x3d-public@web3d.org</a> <mailto:<a href="mailto:x3d-public@web3d.org" rel="noreferrer" target="_blank">x3d-public@web3d.org</a>><br>
> <br>
> <a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
> <br>
> __ __<br>
> <br>
> <br>
> <br>
> -- <br>
> Andreas Plesch<br>
> Waltham, MA 02453<br>
> <br>
> <br>
> _______________________________________________<br>
> x3d-public mailing list<br>
> <a href="mailto:x3d-public@web3d.org" rel="noreferrer" target="_blank">x3d-public@web3d.org</a><br>
> <a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
> <br>
<br>
<br>
all the best, Don<br>
-- <br>
Don Brutzman Naval Postgraduate School, Code USW/Br <a href="mailto:brutzman@nps.edu" rel="noreferrer" target="_blank">brutzman@nps.edu</a><br>
Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149<br>
X3D graphics, virtual worlds, navy robotics <a href="http://faculty.nps.edu/brutzman" rel="noreferrer noreferrer" target="_blank">http://faculty.nps.edu/brutzman</a><br>
<br>
</blockquote></div></div></div>
</div>