<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Sorry I missed so much of this conversation.</p><p class=MsoNormal>But, the joint names must match in both places for this to work and so Humanoid joints and Humanoid Jotion joints strings must match and so they should look the same, and enumerated MF strings if you want to import ‘standard’ capture data. </p><p class=MsoNormal>Just like if you were matching typical Route data from timer-interpolater code, you gotta get the Joint DEF names right, in this, you gotta get the joint names to match. </p><p class=MsoNormal>Thanks Again, </p><p class=MsoNormal>Joe</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Saturday, June 20, 2020 1:30 PM<br><b>To: </b><a href="mailto:brutzman@nps.edu">Don Brutzman</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a>; <a href="mailto:h-anim@web3d.org">Humanoid Animation (HAnim) Working Group</a><br><b>Subject: </b>Re: [x3d-public] Wrong type for default HAnimMotion.channels</p></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>Don, also change examples in HAnim 2 standard, if there are any.</p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Thanks,</p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>John</p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Sat, Jun 20, 2020 at 12:47 PM Don Brutzman <<a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a>> wrote:</p></div></div><p class=MsoNormal style='margin-left:4.8pt'>[added: HAnim working group]<br><br>Hmmm, I think the comparison reveals a potential flaw in the specifications.<br><br>On 6/18/2020 11:19 PM, J. Scheurich wrote:> HAnimMotion : X3DChildNode<br>     SFString [in,out] channels         []<br>> <br>> Shouldnt it be<br>> HAnimMotion : X3DChildNode<br>>     SFString [in,out] channels         ""<br><br>Default value [] corresponds to MFString, default value "" corresponds to SFString.  You've found a mismatch.<br><br>Investigating further:<br>===================================================================<br><br>[1] HAnim Part 2:  Humanoid animation (HAnim) motion data animation<br>     6 HAnim motion data animation using Motion objects<br>     6.3 Data structure of Motion object<br>     <a href="https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimation/MotionNodes.html#MotionObject" target="_blank">https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimation/MotionNodes.html#MotionObject</a><br><br>     interface Motion {<br>         string             description      ""<br>         string             channels         ""<br>         sequence<Boolean>  channelsEnabled  []<br>         double             cycleTime<br>         double             elapsedTime<br>         Boolean            enabled          false<br>         int                frameCount       0     [0, ∞)<br>         float              frameDuration    0.1   (0, ∞)<br>         int                frameIncrement   1     (-∞, ∞)<br>         int                frameIndex       0     [0, ∞)<br>         string             joints           ""<br>         integer            loa              -1    [-1,4]<br>         Boolean            loop             false<br>         Boolean            next<br>         Boolean            previous<br>         sequence<float>    values           []   (-∞,∞)<br>     }<br><br>"The channels field consists of a list, for each joint, of the number of channels for transformation, followed by the transformation type of each channel of data for that joint. Each value shall be separated by a comma and/or one or more spaces. Channels within a given Motion object are enabled by default, unless otherwise indicated by the corresponding Boolean entry in the channelsEnabled field."<br>===================================================================<br><br>[2] X3D4 Part 1: Architecture and base components<br>     26 Humanoid Animation (HAnimH-Anim) component<br>     26.3.4 HAnimMotion<br><br>HAnimMotion : X3DChildNode {<br>   SFString [in,out] channels         []<br>   MFBool   [in,out] channelsEnabled  []<br>   SFTime   [out]    cycleTime<br>   SFString [in,out] description      ""<br>   SFTime   [out]    elapsedTime      (0,∞)<br>   SFBool   [in,out] enabled          TRUE<br>   SFInt32  [out]    frameCount                           [0,∞)<br>   SFTime   [in,out] frameDuration    0.1                 (0,∞)<br>   SFInt32  [in,out] frameIncrement   1                   (-∞,∞)<br>   SFInt32  [in,out] frameIndex       0                   (0,∞)<br>   MFString [in,out] joints           []<br>   SFInt32  [in,out] loa              -1                  [-1,4]<br>   SFBool   [in,out] loop             false<br>   SFNode   [in,out] metadata         NULL                [X3DMetadataObject]<br>   SFBool   [in]     next<br>   SFBool   [in]     previous<br>   MFFloat  [in,out] values           []                  (-∞,∞)<br>}<br>===================================================================<br><br>The HAnim2 specification is the governing reference.<br><br>It appears crystal clear that the channels field is a list.<br><br>Therefore you have found an important error - great work!  As remedy, we should have the following interface definitions:<br><br>HAnim2 change:<br><br>         string             channels         ""<br>to<br>         sequence<string>   channels         ""<br><br>and corresponding X3D4 change:<br><br>         SFString [in,out]  channels         []<br>to<br>         MFString [in,out]  channels         []<br><br>Meanwhile it looks like the corresponding channelsEnabled field is properly defined, and having both fields (channels and channelsEnabled) as matching list/MF array types simplifies implementation considerably.<br><br>Looking forward to review and confirmation, improvement and resolution.  Have entered a pair of Mantis issues needed to correct each specification:<br><br>[3] Mantis 1311: Incorrect type defined for HAnimMotion channels field in HAnim2<br>     <a href="https://www.web3d.org/member-only/mantis/view.php?id=1311" target="_blank">https://www.web3d.org/member-only/mantis/view.php?id=1311</a><br><br>[4] Mantis 1312: Mismatched type defined for HAnimMotion channels field in X3D4<br>     <a href="https://www.web3d.org/member-only/mantis/view.php?id=1312" target="_blank">https://www.web3d.org/member-only/mantis/view.php?id=1312</a><br><br>As ever, we continue review discussion of issues on mailing lists, and the specification editors use Mantis issue to track consensus and resolution of changes.<br><br>Thanks for reporting this problem.  Good luck with further implementation/evaluation efforts (of cool content!) to confirm/improve the HAnim2 and X3D4 specifications.<br><br>all the best, Don<br>-- <br>Don Brutzman  Naval Postgraduate School, Code USW/Br       <a href="mailto:brutzman@nps.edu" 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" target="_blank">http://faculty.nps.edu/brutzman</a></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>