<div dir="auto">It would be also very helpful to explicitly state how the transforms in a channel are applied. Is the ordering significant? Probably. Is the order of application left to right, first to last in the list ? Probably. But another not unreasonable method would be to collect all rotations first and then all translations. <div dir="auto"><div dir="auto"><br></div><div dir="auto">One or two sentences should suffice to make this unambiguous. </div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jul 27, 2023, 5:09 PM Holger Seelig <<a href="mailto:holger.seelig@yahoo.de">holger.seelig@yahoo.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="line-break:after-white-space">I would like to add that startFrame and endFrame do not have the same functionality as startTime/stopTime. The two fields are more like a range within which the animation should run. Sending events to this fields will not start or stop the animation as far as I can read from spec.<div><br></div><div>>The startFrame and endFrame fields indicate the index numbers for the initial and final frames that are animated by the Motion node. Note that startFrame can precede, equal or follow endFrame. The default endFrame value is reset to (frameCount - 1) whenever frameCount is changed. Similar to frameIndex, the values of startFrame and endFrame shall be greater than or equal to zero, and less than frameCount.</div><div><br></div><div>With the two new fields we now can pause/resume the animation, but still not properly start/stop.</div><div><br></div><div>Also note that HAnimMotion.enabled and HAnimHumanoid.motionsEnabled are kind of redundant, like a double switch, which is a little strange.</div><div><br><div>
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;line-break:after-white-space"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;line-break:after-white-space"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;line-break:after-white-space"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;line-break:after-white-space"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;line-break:after-white-space"><div dir="auto" style="text-align:start;text-indent:0px;line-break:after-white-space"><div style="color:rgb(0,0,0);letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">--</div><div style="color:rgb(0,0,0);letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">Holger Seelig</div><div style="color:rgb(0,0,0);letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">Leipzig, Germany</div><div style="color:rgb(0,0,0);letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><br></div><div style="color:rgb(0,0,0);letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><a href="mailto:holger.seelig@yahoo.de" target="_blank" rel="noreferrer">holger.seelig@yahoo.de</a></div><div><a href="https://create3000.github.io/x_ite/" target="_blank" rel="noreferrer">https://create3000.github.io/x_ite/</a></div></div></div></div></div></div></div>
</div>
<div><br><blockquote type="cite"><div>Am 27.07.2023 um 11:40 schrieb Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" target="_blank" rel="noreferrer">brutzman@nps.edu</a>>:</div><br><div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">Thanks again for careful scrutiny and analysis. <span> </span><u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">I think we did not implement X3DTimeDependentNode interface because startFrame/endFrame are used instead of startTime/endTime, so there is a different field signature. Frames are certainly different than times.<u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">However we might provide pause, resume inputOnly fields to HAnimMotion, as corresponding to pauseTime, resumeTime in X3DTimeSensor. Suggested improvement:<u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><ul type="disc" style="margin-bottom:0in;margin-top:0in"><li style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">X3D 4.0 Architecture, 26 Humanoid Animation (HAnim) component, 26.3.4 HAnimMotion<u></u><u></u></li><li style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/components/hanim.html#HAnimMotion" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/components/hanim.html#HAnimMotion</a><u></u><u></u></li></ul><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New"">HAnimMotion : X3DChildNode {<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> SFBool [in] next<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> SFBool [in] previous<u></u><u></u></span></div><pre style="margin:0in 0in 0.0001pt 18.75pt;font-size:10pt;font-family:"Courier New""><span style="font-size:8.5pt"><u></u> <u></u></span></pre><pre style="margin:0in 0in 0.0001pt 18.75pt;font-size:10pt;font-family:"Courier New""><span style="font-size:8.5pt"> <span style="background:yellow">SFBool [in] pause<u></u><u></u></span></span></pre><pre style="margin:0in 0in 0.0001pt 18.75pt;font-size:10pt;font-family:"Courier New""><span style="font-size:8.5pt"> <span style="background:yellow">SFBool [in] resume</span><u></u><u></u></span></pre><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""><u></u> <u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> SFString [in,out] channels ""<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> MFBool [in,out] channelsEnabled []<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> SFString [in,out] description ""<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> SFBool [in,out] enabled TRUE<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> SFInt32 [in,out] endFrame 0 [0,∞)<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> SFTime [in,out] frameDuration 0.1 (0,∞)<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> SFInt32 [in,out] frameIncrement 1 (-∞,∞)<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> SFInt32 [in,out] frameIndex 0 [0,∞)<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> SFString [in,out] joints "" <span> </span><u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> SFInt32 [in,out] loa -1 [-1,4]<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> SFBool [in,out] loop FALSE<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> SFNode [in,out] metadata NULL [X3DMetadataObject]<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> SFString [in,out] name ""<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> SFInt32 [in,out] startFrame 0 [0,∞)<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> MFFloat [in,out] values [] (-∞,∞)<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> SFTime [out] cycleTime [0,∞)<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> SFTime [out] elapsedTime (0,∞)<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""> SFInt32 [out] frameCount [0,∞)<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New"">}<u></u><u></u></span></div><div style="margin:0in 0in 0in 18.75pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""><u></u> <u></u></span></div><div style="margin:0in 0in 0in 0.5in;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:Symbol"><span>·<span style="font-style:normal;font-variant-caps:normal;font-weight:normal;font-stretch:normal;font-size:7pt;line-height:normal;font-family:"Times New Roman";font-size-adjust:none;font-kerning:auto;font-variant-alternates:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-east-asian:normal;font-feature-settings:normal"> <span> </span></span></span></span>X3D 4.0 Architecture, 8 Time component, 8.3.1 X3DTimeDependentNode<span style="font-size:8.5pt;font-family:"Courier New""><u></u><u></u></span></div><div style="margin:0in 0in 0in 0.5in;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:Symbol"><span>·<span style="font-style:normal;font-variant-caps:normal;font-weight:normal;font-stretch:normal;font-size:7pt;line-height:normal;font-family:"Times New Roman";font-size-adjust:none;font-kerning:auto;font-variant-alternates:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-east-asian:normal;font-feature-settings:normal"> <span> </span></span></span></span><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/components/time.html#X3DTimeDependentNode" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/components/time.html#X3DTimeDependentNode</a><span style="font-size:8.5pt;font-family:"Courier New""><u></u><u></u></span></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:8.5pt;font-family:"Courier New""><u></u> <u></u></span></div><pre style="margin:0in 0in 0.0001pt 18.75pt;font-size:10pt;font-family:"Courier New""><span style="font-size:8.5pt">X3DTimeDependentNode : X3DChildNode {<u></u><u></u></span></pre><pre style="margin:0in 0in 0.0001pt 18.75pt;font-size:10pt;font-family:"Courier New""><span style="font-size:8.5pt"> SFString [in,out] description ""<u></u><u></u></span></pre><pre style="margin:0in 0in 0.0001pt 18.75pt;font-size:10pt;font-family:"Courier New""><span style="font-size:8.5pt"> SFBool [in,out] enabled FALSE<u></u><u></u></span></pre><pre style="margin:0in 0in 0.0001pt 18.75pt;font-size:10pt;font-family:"Courier New""><span style="font-size:8.5pt"> SFBool [in,out] loop FALSE<u></u><u></u></span></pre><pre style="margin:0in 0in 0.0001pt 18.75pt;font-size:10pt;font-family:"Courier New""><span style="font-size:8.5pt"> SFNode [in,out] metadata NULL [X3DMetadataObject]<u></u><u></u></span></pre><pre style="margin:0in 0in 0.0001pt 18.75pt;font-size:10pt;font-family:"Courier New""><span style="font-size:8.5pt"> SFTime [in,out] pauseTime 0 (-∞,∞)<u></u><u></u></span></pre><pre style="margin:0in 0in 0.0001pt 18.75pt;font-size:10pt;font-family:"Courier New""><span style="font-size:8.5pt"> SFTime [in,out] resumeTime 0 (-∞,∞)<u></u><u></u></span></pre><pre style="margin:0in 0in 0.0001pt 18.75pt;font-size:10pt;font-family:"Courier New""><span style="font-size:8.5pt"> SFTime [in,out] startTime 0 (-∞,∞)<u></u><u></u></span></pre><pre style="margin:0in 0in 0.0001pt 18.75pt;font-size:10pt;font-family:"Courier New""><span style="font-size:8.5pt"> SFTime [in,out] stopTime 0 (-∞,∞)<u></u><u></u></span></pre><pre style="margin:0in 0in 0.0001pt 18.75pt;font-size:10pt;font-family:"Courier New""><span style="font-size:8.5pt"> SFTime [out] elapsedTime<u></u><u></u></span></pre><pre style="margin:0in 0in 0.0001pt 18.75pt;font-size:10pt;font-family:"Courier New""><span style="font-size:8.5pt"> SFBool [out] isActive<u></u><u></u></span></pre><pre style="margin:0in 0in 0.0001pt 18.75pt;font-size:10pt;font-family:"Courier New""><span style="font-size:8.5pt"> SFBool [out] isPaused<u></u><u></u></span></pre><pre style="margin:0in 0in 0.0001pt 18.75pt;font-size:10pt;font-family:"Courier New""><span style="font-size:8.5pt">}<u></u><u></u></span></pre><pre style="margin:0in 0in 0.0001pt;font-size:10pt;font-family:"Courier New""><span style="font-size:8.5pt"><u></u> <u></u></span></pre><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">Have updated HAnim2.1 issue Mantis 1415 accordingly to keep track with this discussion.<u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><ul type="disc" style="margin-bottom:0in;margin-top:0in"><li style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">Mantis<span> </span><span style="font-size:10pt;font-family:Verdana,sans-serif;background:rgb(243,243,243)">1415: 26.3.4 HAnimMotion field issues: name, skeletalConfiguration, totalNumberFrames, pause/resume</span><u></u><u></u></li><li style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><a href="https://www.web3d.org/member-only/mantis/view.php?id=1415" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">https://www.web3d.org/member-only/mantis/view.php?id=1415</a><u></u><u></u></li></ul><p align="left" style="margin:10pt 0.6in 8pt;text-align:left;font-size:11pt;font-family:Calibri,sans-serif;color:rgb(64,64,64);font-style:italic"><span style="font-size:10pt;font-family:Verdana,sans-serif;background:rgb(243,243,243)">Also likely need pause and resume fields (corresponding to X3DTimeDependentNode pauseTime/resumeTime) with further descriptive prose as well.</span><span> </span><a href="https://web3d.org/pipermail/x3d-public_web3d.org/2023-July/019177.html" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer"><span style="font-size:10pt;font-family:Verdana,sans-serif;color:royalblue;text-decoration:none">https://web3d.org/pipermail/x3d-public_web3d.org/2023-July/019177.html</span></a><span> </span><span style="font-style:normal">(i.e. this thread)</span><span style="font-size:10pt;font-family:Verdana,sans-serif"><br clear="all"><br clear="all"><span style="background:rgb(243,243,243)">We will need to perform a careful scrub comparing X3D4 best practices for HAnimMotion when updating future HAnim2.1 specification fields and descriptions.</span><br clear="all"></span><span style="font-size:10pt;font-family:Verdana,sans-serif"><a href="https://www.web3d.org/x3d/content/X3dTooltips.html#HAnimMotion" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">https://www.web3d.org/x3d/content/X3dTooltips.html#HAnimMotion</a></span><u></u><u></u></p><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">Comments welcome. If agreeable, such an improvement (adding HAnimMotion pause/resume fields) seems like a worthy best-practice addition for X3D4.<u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">Also please confirm, do you think that there are any “showstopper” errors for interfaces in current X3D final IS.proof version? Seems workable to me…<u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:9pt;font-family:"Courier New"">all the best, Don<u></u><u></u></span></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:9pt;font-family:"Courier New"">--<span> </span><u></u><u></u></span></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:9pt;font-family:"Courier New"">Don Brutzman Naval Postgraduate School, Code USW/Br <span> </span><a href="mailto:brutzman@nps.edu" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">brutzman@nps.edu</a><u></u><u></u></span></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:9pt;font-family:"Courier New"">Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149<u></u><u></u></span></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:9pt;font-family:"Courier New"">X3D graphics, virtual worlds, navy robotics<span> </span><a href="https://faculty.nps.edu/brutzman" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">https://faculty.nps.edu/brutzman</a><u></u><u></u></span></div></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div><div style="border-width:1pt medium medium;border-style:solid none none;border-color:rgb(225,225,225) currentcolor currentcolor;padding:3pt 0in 0in"><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><b>From:</b><span> </span>x3d-public <<a href="mailto:x3d-public-bounces@web3d.org" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">x3d-public-bounces@web3d.org</a>><span> </span><b>On Behalf Of<span> </span></b>Holger Seelig<br><b>Sent:</b><span> </span>Thursday, July 27, 2023 12:06 AM<br><b>To:</b><span> </span>Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">andreasplesch@gmail.com</a>><br><b>Cc:</b><span> </span>X3D <<a href="mailto:x3d-public@web3d.org" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">x3d-public@web3d.org</a>><br><b>Subject:</b><span> </span>Re: [x3d-public] Stuck with getting HAnimMotion animation to run.<u></u><u></u></div></div></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">Thanks Andreas, that's how I did it now.<u></u><u></u></div><div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span><u></u> <u></u></span></div></div><div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span>Holger<u></u><u></u></span></div></div><div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span><u></u> <u></u></span></div></div><div><div><div><div><div><div><div><div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span>--<u></u><u></u></span></div></div><div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span>Holger Seelig<u></u><u></u></span></div></div><div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span>Leipzig, Germany<u></u><u></u></span></div></div><div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span><u></u> <u></u></span></div></div><div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span><a href="mailto:holger.seelig@yahoo.de" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">holger.seelig@yahoo.de</a><u></u><u></u></span></div></div><div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span><a href="https://create3000.github.io/x_ite/" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">https://create3000.github.io/x_ite/</a><u></u><u></u></span></div></div></div></div></div></div></div></div></div><div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><br><br><u></u><u></u></div><blockquote style="margin-top:5pt;margin-bottom:5pt"><div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">Am 24.07.2023 um 18:30 schrieb Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">andreasplesch@gmail.com</a>>:<u></u><u></u></div></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div><div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">I took the opportunity to look at HAnimMotion in<br><br><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/components/hanim.html#HAnimMotion" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/components/hanim.html#HAnimMotion</a><br><br>and<br><br><a href="https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimation/MotionNodes.html" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimation/MotionNodes.html</a><br><br>The question was how to actually play an animation described in an HAnimMotion.<br>HAnimMotion is described as an alternative parallel to HAnim motion<br>data animation using interpolators which suggests driving it through a<br>TimeSensor.<br>However, fields such as frameDuration, cycleTime or timeElapsed imply<br>that the object is responsible for both playing the animation and<br>storage of animation data. But playing the animation is not explicitly<br>explained.<br><br>Here is my interpretation of the silence of the spec. on actually<br>playing an animation:<br><br>When does an HAnimMotion start to play ?<br>Presumably, the conditions are:<br>enabled and HAnimHumanoid.motionsEnabled are true<br>at least one channel is enabled<br>frameIncrement > 0<br>startFrame < endFrame if loop = false, or loop = true<br><br>When does it pause ?<br>frameIncrement = 0<br>perhaps other conditions<br><br>When does it stop ?<br>enabled or HAnimHumanoid.motionsEnabled are false<br>all channels are disabled (perhaps rather a pause?)<br>frameIncrement < 0, forbidden but needs to be handled<br>startFrame > endFrame and loop = false<br><br>Is there a concept of an HAnimMotion being activated versus enabled ?<br>The case of all channels being disabled could be interpreted as a<br>playing, but static animation showing untransformed joints. This would<br>remove channel state as a condition above.<br><br>Presumably, an implementation could construct internal Interpolators,<br>TimeSensors and Routes for fairly complete coverage.<br>Something like:<br>Timesensor: duration = frameDuration * frameCount, loop = loop,<br>shorten to represent endFrame<br>Each Channel is an Interpolator: ARotation = OrientationInterpolator,<br>APosition = PositionInterpolator (combine sequential rotations or<br>positions into single Interpolator keyValues). keys are 0,<br>frameIncrement, 2*FrameIncrement .. frameCount or so.<br>Routes: from Timesensor to CombinedInterpolator to joint<br><br>The signature in<br><a href="https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimation/MotionNodes.html#MotionObject" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimation/MotionNodes.html#MotionObject</a><br>is missing startFrame and endFrame although the description then<br>includes these fields. The tooltips noticed this.<br><br>What is the order of application of transformations described in<br>channels: presumably, left to right ? Rotations are sometimes applied<br>right to left.<br>There is no scale channel ?<br><br>Some thoughts,<br><br>Andreas<br><br><br><u></u><u></u></div><blockquote style="margin-top:5pt;margin-bottom:5pt"><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">Date: Mon, 24 Jul 2023 12:03:24 +0200<br>From: Holger Seelig <<a href="mailto:holger.seelig@yahoo.de" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">holger.seelig@yahoo.de</a>><br>To: Joseph D Williams <<a href="mailto:joedwil@earthlink.net" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">joedwil@earthlink.net</a>><br>Cc: X3D <<a href="mailto:x3d-public@web3d.org" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">x3d-public@web3d.org</a>><br>Subject: Re: [x3d-public] Stuck with getting HAnimMotion animation to<br> run.<br>Message-ID: <<a href="mailto:780A4F0A-BB92-40BD-BFBB-9C7FAC78D326@yahoo.de" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">780A4F0A-BB92-40BD-BFBB-9C7FAC78D326@yahoo.de</a>><br>Content-Type: text/plain; charset="utf-8"<br><br>I have taken<span> </span><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/KoreanCharacterMotionAnnexD01JinIndex.html" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/KoreanCharacterMotionAnnexD01JinIndex.html</a><span> </span>as working model to implement HAnimMotion. I have successfully created all interpolators, and if I simulate a run of these interpolators they play a nice animation.<br><br>What I do miss in HAnimMotion are startTime, stopTime, maybe pauseTime, resumeTime, isActive, isPaused fields from TimeSensor to start an animation.<br><br>Although HAnimMotion has next and previous input fields, but as far as I could read from the specification, these fields are only for stepping through the animation frame by frame.<br><br>There is another field frameIndex, when receiving an event, the interpolators should jump to this frame.<br><br>But with these existing fields no nice transitions from one frame to another can be made.<br><br>On the other hand it exists a elapsedTime field, but when nothing can be started this field would not output anything.<br><br>With the still missing TimeSensor fields, this would be possible. Going now a step further HAnimMotion can be derived from X3DTimeDependentNode, which will now make much sense.<br><br>Holger<br><br>--<br>Holger Seelig<br>Leipzig, Germany<br><br><a href="mailto:holger.seelig@yahoo.de" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">holger.seelig@yahoo.de</a><br><a href="https://create3000.github.io/x_ite/" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">https://create3000.github.io/x_ite/</a><br><br><br><br><br><br><br><u></u><u></u></div><blockquote style="margin-top:5pt;margin-bottom:5pt"><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">Am 23.07.2023 um 22:23 schrieb Joseph D Williams <<a href="mailto:joedwil@earthlink.net" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">joedwil@earthlink.net</a>>:<br><br><br>Hi Holger,<br>I was able to run the bvh example when converted to x3d back when a long time ago. In Part 2 of<br>From what I remember on this is that the source bvh animation only specifies a frame rate, or number of seconds between samples. So the x3d import must create a set of keys and organize the keyvalues. Since the keys are at the video frame rate, the key field gets very tedious. Also, the number of keyvalues goes up fast with skeleton parts, since there tend to be most likely too many keyframes (in angles). Finally, this massive list of keys gets duplicated for every interpolator.<br>With this, how much greater could we possibly honor developers of interpolators and implementers of vrml and x3d interpolators than to somehow allow a way to ?DEF? a key field and reuse it in another interpolator. This would at least consolidate the code so could stand a chance to work on it.<br>Of course great number of key steps is not a issue for tools that just make video because they only make fixed steps to render the specific key and don?t interpolate.<br><br>Good Luck, Don has worked on this a lot including import of bvh skeleton and animation directly to HAnim. Most of the bvh speaks bones while x3d speaks joints. Remember, data for bone goes to parent joint.<br>Thanks,<br>Joe<br><br>From: Holger Seelig <<a href="mailto:holger.seelig@yahoo.de" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">mailto:holger.seelig@yahoo.de</a>><br>Sent: Saturday, July 22, 2023 11:26 AM<br>To: X3D <<a href="mailto:x3d-public@web3d.org" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">mailto:x3d-public@web3d.org</a>><br>Subject: [x3d-public] Stuck with getting HAnimMotion animation to run.<br><br>I am not really clear how to start the animation of a HAnimMotion. I am very hung up on how a TimeSensor works.<br><br>My understanding so far is that the animation is started when the HAnimMotion receives an enabled=true event and then runs to the end or starts over when loop=true.<br><br>I also guess that the next and previous events only have an effect if enabled=false, otherwise it wouldn't make sense with the previous assumptions.<br><br>I would be very happy if there was clarification on this.<br><br>Holger Seelig<br>Leipzig, Germany<br><br><a href="mailto:holger.seelig@yahoo.de" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">holger.seelig@yahoo.de</a><span> </span><<a href="mailto:holger.seelig@yahoo.de" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">mailto:holger.seelig@yahoo.de</a>><br><a href="https://create3000.github.io/x_ite/" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">https://create3000.github.io/x_ite/</a><u></u><u></u></div></blockquote><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><br>-------------- next part --------------<br>An HTML attachment was scrubbed...<br>URL: <<a href="http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230724/2500d41f/attachment-0001.html" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230724/2500d41f/attachment-0001.html</a>><br><br>------------------------------<br><br>Message: 2<br>Date: Mon, 24 Jul 2023 05:33:36 -0500<br>From: John Carlson <<a href="mailto:yottzumm@gmail.com" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">yottzumm@gmail.com</a>><br>To: "Brutzman, Donald (Don) (CIV)" <<a href="mailto:brutzman@nps.edu" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">brutzman@nps.edu</a>><br>Cc: Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">michalis.kambi@gmail.com</a>>, Joseph D Williams<br> <<a href="mailto:joedwil@earthlink.net" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">joedwil@earthlink.net</a>>, X3D Graphics public mailing list<br> <<a href="mailto:x3d-public@web3d.org" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">x3d-public@web3d.org</a>><br>Subject: Re: [x3d-public] JoeKick H-Anim example - error in X3D<br> classic encoding<br>Message-ID:<br> <<a href="mailto:CAGC3UEmcCN16x-ps+SJ_AiOeMuwGWdMr0WrFQ29qnk4JpmOKSw@mail.gmail.com" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">CAGC3UEmcCN16x-ps+SJ_AiOeMuwGWdMr0WrFQ29qnk4JpmOKSw@mail.gmail.com</a>><br>Content-Type: text/plain; charset="utf-8"<br><br>You can get the same report from tovrmlx3d.exe, I think Don, see:<br><br>tovrmlx3d.exe next to the view3dscene.exe<br><br>Here is a small taste of what happens on a recent X3DV file:<br><br>$ ‾/Downloads/view3dscene-4.3.0-win64-x86_64/view3dscene/tovrmlx3d.exe<br>OutputDir/LeifRevised.x3dv 2>&1 |head<br>tovrmlx3d: Warning: HAnimHumanoid.joints list was empty, fixed to list all<br>54 joints<br>tovrmlx3d: Warning: X3D: HAnimJoint.skinCoord references not existing<br>coordinate index 9 (while we have only 0 skin coordinates in<br>HAnimHumanoid.skin)<br>tovrmlx3d: Warning: X3D: HAnimJoint.skinCoord references not existing<br>coordinate index 10 (while we have only 0 skin coordinates in<br>HAnimHumanoid.skin)<br>tovrmlx3d: Warning: X3D: HAnimJoint.skinCoord references not existing<br>coordinate index 11 (while we have only 0 skin coordinates in<br>HAnimHumanoid.skin)<br>tovrmlx3d: Warning: X3D: HAnimJoint.skinCoord references not existing<br>coordinate index 12 (while we have only 0 skin coordinates in<br>HAnimHumanoid.skin)<br>tovrmlx3d: Warning: X3D: HAnimJoint.skinCoord references not existing<br>coordinate index 13 (while we have only 0 skin coordinates in<br>HAnimHumanoid.skin)<br>tovrmlx3d: Warning: X3D: HAnimJoint.skinCoord references not existing<br>coordinate index 14 (while we have only 0 skin coordinates in<br>HAnimHumanoid.skin)<br>tovrmlx3d: Warning: X3D: HAnimJoint.skinCoord references not existing<br>coordinate index 15 (while we have only 0 skin coordinates in<br>HAnimHumanoid.skin)<br>tovrmlx3d: Warning: X3D: HAnimJoint.skinCoord references not existing<br>coordinate index 16 (while we have only 0 skin coordinates in<br>HAnimHumanoid.skin)<br>tovrmlx3d: Warning: X3D: HAnimJoint.skinCoord references not existing<br>coordinate index 17 (while we have only 0 skin coordinates in<br>HAnimHumanoid.skin)<br><br>Fills the bill.<br><br>John<br><br>On Mon, Jul 24, 2023 at 3:19?AM Brutzman, Donald (Don) (CIV) <<br><a href="mailto:brutzman@nps.edu" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">brutzman@nps.edu</a>> wrote:<br><br><br><u></u><u></u></div><blockquote style="margin-top:5pt;margin-bottom:5pt"><p class="MsoNormal" style="margin:0in 0in 12pt;font-size:11pt;font-family:Calibri,sans-serif">1. Michalis, thanks for a great trouble report.<br><br><br><br>I believe the conversion errors are now fixed in X3dToVrml.xslt<br>stylesheet, updated model at<br><br><br><br> -<br> <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3dv" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3dv</a><br><br><br><br>Unfortunately I discovered that a lot of type checking within that<br>stylesheet isn?t really effective due to a puzzling logic error, so there<br>may well be other errors like this. More work will likely be needed.<br><br><br><br>Wondering if you have a command-line mode for validating VRML/ClassicVRML<br>models with view3dscene? Perhaps I might be able to add that to our<br>regression testing build scripts.<br><br><br><br>2. Joe, it's your model, so please send any texture coordinate changes you<br>may have and I will update the .x3d model in the archives.<br><br><br><br> -<br> <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKickIndex.html" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKickIndex.html</a><br> -<br> <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3d" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3d</a><br><br><br><br>Meanwhile there are plenty of warnings from Schematron. They seem<br>accurate. The flagged parent-child relationships are either a problem in<br>the model, or else (less likely) a problem in the diagnostics (which are<br>autogenerated from X3DUOM).<br><br><br><br>I thought that possibly they are related to your use of loa=?3?<br>complexity, but diagnostics looked the same for loa=?4?.<br><br><br><br><br><br>--------- X3D Validator checks commenced for JoeKick.x3d ---------<br><br><br><br>Performing well-formed XML check...<br><br>Checking file:/C:/x3d-code/<br><a href="http://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3d" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3d</a>...<br><br>Well-formed XML check: pass<br><br><br><br>Performing DOCTYPE check...<br><br>[X3dDoctypeChecker] success: valid XML declaration<br>found.[X3dDoctypeChecker] success: final X3D 4.0 DOCTYPE found.<br><br><br><br>Performing DTD validation...<br><br>Checking file:/C:/x3d-code/<br><a href="http://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3d" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3d</a>...<br><br>XML DTD validation: pass<br><br><br><br>Performing X3D schema validation...<br><br>Checking file:/C:/x3d-code/<br><a href="http://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3d" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3d</a>...<br><br>Referenced entity at<br><a href="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd</a><br>.<br><br>Referenced entity at<span> </span><a href="http://www.w3.org/2001/XMLSchema.dtd" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">http://www.w3.org/2001/XMLSchema.dtd</a>.<br><br>Referenced entity at<span> </span><a href="http://www.w3.org/2001/datatypes.dtd" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">http://www.w3.org/2001/datatypes.dtd</a>.<br><br>XML schema validation: pass<br><br><br><br>Performing X3D regular expression (regex) values check...<br><br>X3D regex check: complete<br><br><br><br>Performing X3dToX3dvClassicVrmlEncoding.xslt conversion check...<br><br><br><br>Performing X3D Schematron check...<br><br>X3D version 4.0 is approved by Web3D Consortium and focused on<br>interoperability with HTML5, glTF2.0 Physically Based Rendering (PBR) and<br>Web Audio API, undergoing final administrative review by ISO in 2023.<br>[/X3D, diagnostic]<br><br><meta name='TODO' content='Record information about skin coordinates<br>(found in comment at end of scene) as a structured MetadataSet containing<br>MetadataString nodes'/> [/X3D/head/meta[7], diagnostic]<br><br><HAnimHumanoid DEF='Joe_Kick' name='Kick'/> version='2.0' with X3D<br>version='4.0' [/X3D/Scene/Group[1]/HAnimHumanoid, diagnostic]<br><br>====================================================================================================================<br>[/X3D/Scene/Group[1]/HAnimHumanoid, diagnostic]<br><br><HAnimHumanoid DEF='Joe_Kick' name='Kick'/> node<br>count(HAnimJoint) within skeleton hierarchy =<br>94[/X3D/Scene/Group[1]/HAnimHumanoid, diagnostic]<br><br><HAnimHumanoid DEF='Joe_Kick' name='Kick'/> node<br>count(HAnimSegment) within skeleton hierarchy =<br>1[/X3D/Scene/Group[1]/HAnimHumanoid, diagnostic]<br><br><HAnimHumanoid DEF='Joe_Kick' name='Kick'/> node<br>count(HAnimSite) within HAnimHumanoid =<br>1[/X3D/Scene/Group[1]/HAnimHumanoid, diagnostic]<br><br><HAnimHumanoid DEF='Joe_Kick' name='Kick'/> node<br>count(HAnimSite//Viewpoint) within skeleton hierarchy =<br>1[/X3D/Scene/Group[1]/HAnimHumanoid, diagnostic]<br><br><HAnimHumanoid DEF='Joe_Kick' name='Kick'/> node<br>count(HAnimDisplacer) within skeleton hierarchy =<br>1[/X3D/Scene/Group[1]/HAnimHumanoid, diagnostic]<br><br><HAnimHumanoid DEF='Joe_Kick' name='Kick'/> node count(<HAnimJoint<br>USE='*' containerField = 'joints'/>) =<br>94[/X3D/Scene/Group[1]/HAnimHumanoid, diagnostic]<br><br><HAnimHumanoid DEF='Joe_Kick' name='Kick'/> node count(<HAnimSegment<br>USE='*' containerField = 'segments'/>) =<br>1[/X3D/Scene/Group[1]/HAnimHumanoid, diagnostic]<br><br><HAnimHumanoid DEF='Joe_Kick' name='Kick'/> node count(<HAnimSite<br>USE='*' containerField = 'sites'/>) =<br>1[/X3D/Scene/Group[1]/HAnimHumanoid, diagnostic]<br><br><HAnimHumanoid DEF='Joe_Kick' name='Kick'/> node count(<HAnimSite<br>DEF='*' name ends with '_view'/>) =<br>0[/X3D/Scene/Group[1]/HAnimHumanoid, diagnostic]<br><br>====================================================================================================================<br>[/X3D/Scene/Group[1]/HAnimHumanoid, diagnostic]<br><br><HAnimSite DEF='Joe_RootFront_view' name='RootFront_view'/> is not a<br>recognized name for HAnim2 HAnimSite<br>[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimSegment/HAnimSite,<br>info]<br><br><HAnimJoint DEF='Joe_l_tarsometatarsal_2' name='l_tarsometatarsal_2'/> has<br>parent HAnimJoint name='l_talocrural' rather than expected parent<br>name='l_cuneonavicular_2', recommend checking model<br>[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[1]/HAnimJoint[1]/HAnimJoint/HAnimJoint/HAnimJoint,<br>warning]<br><br><HAnimJoint DEF='Joe_l_tarsal_distal_interphalangeal_2'<br>name='l_tarsal_distal_interphalangeal_2'/> has parent HAnimJoint<br>name='l_metatarsophalangeal_2' rather than expected parent<br>name='l_tarsal_proximal_interphalangeal_2', recommend checking model<br>[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[1]/HAnimJoint[1]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint,<br>warning]<br><br><HAnimJoint DEF='Joe_r_tarsometatarsal_2' name='r_tarsometatarsal_2'/> has<br>parent HAnimJoint name='r_talocrural' rather than expected parent<br>name='r_cuneonavicular_2', recommend checking model<br>[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint,<br>warning]<br><br><HAnimJoint DEF='Joe_r_tarsal_distal_interphalangeal_2'<br>name='r_tarsal_distal_interphalangeal_2'/> has parent HAnimJoint<br>name='r_metatarsophalangeal_2' rather than expected parent<br>name='r_tarsal_proximal_interphalangeal_2', recommend checking model<br>[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint,<br>warning]<br><br><HAnimJoint DEF='Joe_l_acromioclavicular'/> name field is required<br>[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[2],<br>error]<br><br><HAnimJoint DEF='Joe_l_acromioclavicular' name=''/> is not a recognized<br>name for HAnim2 HAnimJoint<br>[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[2],<br>warning]<br><br><HAnimJoint DEF='Joe_l_sternoclavicular' name='l_acromioclavicular'/> DEF<br>value does not contain correctly modified version of name value (for<br>example, DEF='myPrefix_nameValue' e.g. DEF='myPrefix_l_acromioclavicular')<br>- see HAnim section C.2 Humanoid, VRML Binding<br>[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[2]/HAnimJoint,<br>error]<br><br><HAnimJoint DEF='Joe_l_sternoclavicular' name='l_acromioclavicular'/> has<br>parent HAnimJoint name='' rather than expected parent<br>name='l_sternoclavicular', recommend checking model<br>[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[2]/HAnimJoint,<br>warning]<br><br><HAnimJoint DEF='Joe_l_carpometacarpal_1' name='l_carpometacarpal_1'/> has<br>parent HAnimJoint name='l_radiocarpal' rather than expected parent<br>name='l_midcarpal_1', recommend checking model<br>[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[1],<br>warning]<br><br><HAnimJoint DEF='Joe_l_carpometacarpal_2' name='l_carpometacarpal_2'/> has<br>parent HAnimJoint name='l_radiocarpal' rather than expected parent<br>name='l_midcarpal_2', recommend checking model<br>[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[2],<br>warning]<br><br><HAnimJoint DEF='Joe_l_carpometacarpal_3' name='l_carpometacarpal_3'/> has<br>parent HAnimJoint name='l_radiocarpal' rather than expected parent<br>name='l_midcarpal_3', recommend checking model<br>[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[3],<br>warning]<br><br><HAnimJoint DEF='Joe_l_carpometacarpal_4' name='l_carpometacarpal_4'/> has<br>parent HAnimJoint name='l_radiocarpal' rather than expected parent<br>name='l_midcarpal_4_5', recommend checking model<br>[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[4],<br>warning]<br><br><HAnimJoint DEF='Joe_l_carpometacarpal_5' name='l_carpometacarpal_5'/> has<br>parent HAnimJoint name='l_radiocarpal' rather than expected parent<br>name='l_midcarpal_4_5', recommend checking model<br>[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[5],<br>warning]<br><br><HAnimJoint DEF='Joe_r_carpometacarpal_1' name='r_carpometacarpal_1'/> has<br>parent HAnimJoint name='r_radiocarpal' rather than expected parent<br>name='r_midcarpal_1', recommend checking model<br>[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[3]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[1],<br>warning]<br><br><HAnimJoint DEF='Joe_r_carpometacarpal_2' name='r_carpometacarpal_2'/> has<br>parent HAnimJoint name='r_radiocarpal' rather than expected parent<br>name='r_midcarpal_2', recommend checking model<br>[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[3]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[2],<br>warning]<br><br><HAnimJoint DEF='Joe_r_carpometacarpal_3' name='r_carpometacarpal_3'/> has<br>parent HAnimJoint name='r_radiocarpal' rather than expected parent<br>name='r_midcarpal_3', recommend checking model<br>[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[3]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[3],<br>warning]<br><br><HAnimJoint DEF='Joe_r_carpometacarpal_4' name='r_carpometacarpal_4'/> has<br>parent HAnimJoint name='r_radiocarpal' rather than expected parent<br>name='r_midcarpal_4_5', recommend checking model<br>[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[3]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[4],<br>warning]<br><br><HAnimJoint DEF='Joe_r_carpometacarpal_5' name='r_carpometacarpal_5'/> has<br>parent HAnimJoint name='r_radiocarpal' rather than expected parent<br>name='r_midcarpal_4_5', recommend checking model<br>[/X3D/Scene/Group[1]/HAnimHumanoid/HAnimJoint[1]/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[3]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[5],<br>warning]<br><br><br><br>--------- X3D Validator checks complete for JoeKick.x3d ---------<br><br><br><br><br><br>all the best, Don<br><br>--<br><br>Don Brutzman Naval Postgraduate School, Code USW/Br<br><a href="mailto:brutzman@nps.edu" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">brutzman@nps.edu</a><br><br>Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA<br>+1.831.656.2149<br><br>X3D graphics, virtual worlds, navy robotics<br><a href="https://faculty.nps.edu/brutzman" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">https://faculty.nps.edu/brutzman</a><br><br><br><br>-----Original Message-----<br>From: x3d-public <<a href="mailto:x3d-public-bounces@web3d.org" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">x3d-public-bounces@web3d.org</a>> On Behalf Of Michalis<br>Kamburelis<br>Sent: Sunday, July 23, 2023 1:44 PM<br>To: X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">x3d-public@web3d.org</a>><br>Subject: [x3d-public] JoeKick H-Anim example - error in X3D classic<br>encoding<br><br><br><br>"Joe Kick" example linked from<br><br><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/</a><span> </span>,<br><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKickIndex.html" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKickIndex.html</a><br><br>, 2 errors:<br><br><br><br>1. The "ClassicVRML" encoding version (<br><br><br><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3dv" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3dv</a><br><br>) seems to be incorrectly converted from XML to classic encoding. It<br>contains<br><br><br><br>"""<br><br>DEF Joe_skull_tip_raiser_action HAnimDisplacer { coordIndex 0 1 2 3 4 5 6<br>7 8 9 displacements 0 0.15 0 0 ...<br><br>name "skull_tip_raiser_action"<br><br>}<br><br>"""<br><br><br><br>so the coordIndex and displacements fields miss [ ] around their values.<br><br><br><br>"coordIndex" is MFInt32, "displacements" is MFVec3f, they both require [ ]<br>in classic encoding if you want to have a list of arbitrary number of<br>elements. If no [ ] are used, the classic encoding parsers have to assume<br>they contain 1 item (1 integer on "coordIndex", 1 vector == 3 floats on<br>"displacements"). Currently parsing this fails, as parser sees unexpected<br>numbers in the middle of HAnimDisplacer.<br><br><br><br>This problem is not present in XML encoding, where no [ ] are used, the<br>lists are in separate XML attributes.<br><br><br><br>2. The XML encoding version contains invalid number of texture<br>coordinates, we have discussed in previously on this list:<br><br><br><br>X3D: Invalid number of items in an attribute array for shape<br><br>"Joe_Humanoid/Joe_Kick/Joe_Shape/IndexedFaceSet(Joe_skin_IndexedFaceSet)":<br><br>Invalid index: 9, but we have 4 items in 2D texture coordinates<br><br><br><br>Regards,<br><br>Michalis<br><br><br><br>_______________________________________________<br><br>x3d-public mailing list<br><br><a href="mailto:x3d-public@web3d.org" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">x3d-public@web3d.org</a><br><br><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>_______________________________________________<br>x3d-public mailing list<br><a href="mailto:x3d-public@web3d.org" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">x3d-public@web3d.org</a><br><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><u></u><u></u></p></blockquote><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">-------------- next part --------------<br>An HTML attachment was scrubbed...<br>URL: <<a href="http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230724/df90f984/attachment.html" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230724/df90f984/attachment.html</a>><br><br>------------------------------<br><br>Subject: Digest Footer<br><br>_______________________________________________<br>x3d-public mailing list<br><a href="mailto:x3d-public@web3d.org" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">x3d-public@web3d.org</a><br><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br><br><br>------------------------------<br><br>End of x3d-public Digest, Vol 172, Issue 93<br>*******************************************<u></u><u></u></div></blockquote><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><br><br><br>--<span> </span><br>Andreas Plesch<br>Waltham, MA 02453<br><br>_______________________________________________<br>x3d-public mailing list<br><a href="mailto:x3d-public@web3d.org" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">x3d-public@web3d.org</a><br><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" style="color:rgb(5,99,193);text-decoration:underline" target="_blank" rel="noreferrer">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></div></div></div></blockquote></div></div></div></blockquote></div><br></div></div></blockquote></div>