<div dir="ltr"><div>The specification of H-Anim does say to list all joints in humanoid "joints" field, <a href="https://www.web3d.org/documents/specifications/19774-1/V2.0/Architecture/ObjectInterfaces.html#Humanoid">https://www.web3d.org/documents/specifications/19774-1/V2.0/Architecture/ObjectInterfaces.html#Humanoid</a> . </div><div><br></div><div>    """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."""</div><div><br></div><div>The tooltips shown in this thread confirm it.<br></div><div><br></div><div>Note: Listing the joints inside HAnimHumanoid.joints does not make them drawn. Nothing would be drawn twice. I'm saying this to address incorrect statement in this thread """Finally, the browser must actually ignore those fields  because otherwise the thing would be drawn twice, once with DEFs and once with USEs. in those fields.  """ . No, nothing would be drawn twice.<br></div><div><br></div><div>Castle Game Engine tools (view3dscene, castle-model-viewer) also recommend to list all joints there. If your joints list is empty, we will warn about it ("""HAnimHumanoid.joints list was empty, fixed to list all %d joints"""). We have special code to tolerate it, but strictly speaking the model is invalid. Fill the "HAnimHumanoid.joints".</div><div><br></div><div>This has been discussed already on this mailing list a few times. If the model has empty "HAnimHumanoid.joints", you have to fil them out. This isn't new.<br></div><div><br></div><div>Regards,</div><div>Michalis<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">pt., 31 maj 2024 o 19:36 Joe D Williams via x3d-public <<a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>> napisał(a):<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:12pt"><p style="margin:0.1rem 0px;line-height:1">Right, there is nothing in there that says to ignore the skeleton if joints field is not there. </p>
<p style="margin:0.1rem 0px;line-height:1">Also, there is no hint of how the joints, segments, and sites fields are applied. Whatever it is they should all be treated the same.  </p>
<p style="margin:0.1rem 0px;line-height:1">  </p>
<p style="margin:0.1rem 0px;line-height:1">Next, there is no browser that actually needs the fields, except one that fails anim and skin if joints field not there.  </p>
<p style="margin:0.1rem 0px;line-height:1">  </p>
<p style="margin:0.1rem 0px;line-height:1">Finally, the browser must actually ignore those fields  because otherwise the thing would be drawn twice, once with DEFs and once with USEs. in those fields.   </p>
<p style="margin:0.1rem 0px;line-height:1"> </p>
<p style="margin:0.1rem 0px;line-height:1">Again, those fields are broke because all that is necessary, due to the exact naming requirements, is the contents of the "name" field of each Joint, Segment, and Site.   </p>
<p style="margin:0.1rem 0px;line-height:1"> </p>
<p style="margin:0.1rem 0px;line-height:1">Thanks,</p>
<p style="margin:0.1rem 0px;line-height:1">Joe</p>
<p style="margin:0.1rem 0px;line-height:1"> </p>
<p style="margin:0.1rem 0px;line-height:1"> </p>
</div>
<div style="border-left:1px solid rgb(170,170,170);box-sizing:border-box;padding:10px 0px 10px 15px;margin:0px">
<p>-----Original Message-----<br>From: John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>><br>Sent: May 31, 2024 12:07 AM<br>To: Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>><br>Cc: Extensible 3D (X3D) Graphics public discussion <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>>, create3000/sunrize <<a href="mailto:reply%2BAAFMJ5YNMQD2V3WUI2UO2AOEMMNGREVBNHHITSFMII@reply.github.com" target="_blank">reply+AAFMJ5YNMQD2V3WUI2UO2AOEMMNGREVBNHHITSFMII@reply.github.com</a>>, <<a href="mailto:h-anim@web3d.org" target="_blank">h-anim@web3d.org</a>><br>Subject: Re: [x3d-public] [create3000/sunrize] Joe doesn't kick or move in sunrize. (Issue #6)</p>
<p style="margin:0.1rem 0px;line-height:1"> </p>
<div dir="auto">So, I did some research.  Here’s what tooltips says:</div>
<div dir="auto"> </div>
<div dir="auto">
<div dir="auto">
<table style="font-family:-webkit-standard;font-style:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;color:rgb(0,0,0)" border="1" summary="" width="98%" cellspacing="0" cellpadding="1" align="center">
<tbody style="font-family:-webkit-standard">
<tr style="font-family:-webkit-standard" align="left">
<td style="font-family:-webkit-standard" colspan="3" bgcolor="#f4f4f4"><strong style="font-family:-webkit-standard"><br>[joints <a style="font-family:-webkit-standard" href="https://www.web3d.org/x3d/content/X3dTooltips.html#accessType" target="_blank">accessType inputOutput</a>, <a style="font-family:-webkit-standard" href="https://www.web3d.org/x3d/content/X3dTooltips.html#MFNode" target="_blank">type MFNode</a> array, empty list] [<a style="font-family:-webkit-standard" href="https://www.web3d.org/x3d/content/X3dTooltips.html#HAnimJoint" target="_blank">HAnimJoint</a>]</strong><br>The joints field contains a list of USE references for all HAnimJoint node instances found within the preceding skeleton hierarchy. <br><span style="font-family:-webkit-standard;color:rgb(68,119,119)"><strong style="font-family:-webkit-standard">Hint:</strong></span> order is irrelevant since names are contained in the original DEF objects. <br><span style="font-family:-webkit-standard;color:rgb(68,119,119)"><strong style="font-family:-webkit-standard">Hint:</strong></span> these USE nodes can be utilitized by inverse kinematics (IK) and animation engines.<br><span style="font-family:-webkit-standard;color:rgb(238,85,0)"><strong style="font-family:-webkit-standard">Warning:</strong></span> <strong style="font-family:-webkit-standard">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 </strong>hierarchy. <br><span style="font-family:-webkit-standard;color:rgb(238,85,0)"><strong style="font-family:-webkit-standard">Warning:</strong></span> top-level HAnimJoint USE nodes must include containerField='joints' for proper validation and operation</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><br>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">The first warning is the relevant one.</div>
<div class="gmail_attr" dir="ltr"> </div>
<div class="gmail_attr" dir="ltr">I am not sure about the standard.</div>
<div class="gmail_attr" dir="ltr"> </div>
<div class="gmail_attr" dir="ltr">Perhaps we’re talking best practices.</div>
<div class="gmail_attr" dir="ltr"> </div>
<div class="gmail_attr" dir="ltr"> </div>
<div class="gmail_attr" dir="ltr">John</div>
<div class="gmail_attr" dir="ltr"> </div>
<div class="gmail_attr" dir="ltr">On Thu, May 30, 2024 at 8:17 PM Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>> wrote:</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div style="font-family:arial,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<div style="font-family:arial,sans-serif;font-size:12pt;color:rgb(0,0,0)">> The HAnimHumanoid node has a MFNode field <code class="gmail-notranslate" style="font-family:monospace">joints</code> which must contain all joint nodes, then skinning will work.     </div>
<p style="font-family:arial,sans-serif;font-size:12pt;margin:0.1rem 0px;line-height:1;color:rgb(0,0,0)">     </p>
<p style="font-family:arial,sans-serif;font-size:12pt;margin:0.1rem 0px;line-height:1;color:rgb(0,0,0)">This is the only player or browser or any tool I have encountered using that rule.     ...</p>
<p style="font-family:arial,sans-serif;font-size:12pt;margin:0.1rem 0px;line-height:1;color:rgb(0,0,0)"> </p>
<p style="font-family:arial,sans-serif;font-size:12pt;margin:0.1rem 0px;line-height:1;color:rgb(0,0,0)"> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">Seriously, this has to be discussed.   </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">There is nothing in the spec that says how the joints, segments, sites fields are to be used,  especially to ignore animations or skin if the Joint is not included in the joints field.</p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">   </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">The user code is there to define the skeleton and all joint, segment site nodes must be treated the same, that is rendered if in the user code. Whatever those other fields do I don't now from the spec so sure, platform dependent, but not free to ignore, I hope.</p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">Thanks, </p>
</div>
<div style="font-family:arial,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">Joe</p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<div style="border-left:1px solid rgb(170,170,170);box-sizing:border-box;padding:10px 0px 10px 15px;margin:0px;font-family:arial,sans-serif">
<p style="font-family:arial,sans-serif">-----Original Message-----<br>From: Extensible 3D (X3D) Graphics public discussion <<a style="font-family:arial,sans-serif" href="mailto:x3d-public@web3d.org" rel="noopener" target="_blank">x3d-public@web3d.org</a>><br>Sent: May 29, 2024 12:08 PM<br>To: John Carlson <<a style="font-family:arial,sans-serif" href="mailto:yottzumm@gmail.com" rel="noopener" target="_blank">yottzumm@gmail.com</a>>, create3000/sunrize <<a style="font-family:arial,sans-serif" href="mailto:reply%2BAAFMJ5YNMQD2V3WUI2UO2AOEMMNGREVBNHHITSFMII@reply.github.com" rel="noopener" target="_blank">reply+AAFMJ5YNMQD2V3WUI2UO2AOEMMNGREVBNHHITSFMII@reply.github.com</a>>, <<a style="font-family:arial,sans-serif" href="mailto:x3d-public@web3d.org" rel="noopener" target="_blank">x3d-public@web3d.org</a>><br>Cc: Joe D Williams <<a style="font-family:arial,sans-serif" href="mailto:joedwil@earthlink.net" rel="noopener" target="_blank">joedwil@earthlink.net</a>><br>Subject: Re: [x3d-public] [create3000/sunrize] Joe doesn't kick or move in sunrize. (Issue #6)</p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<div style="font-family:arial,sans-serif;font-size:12pt;color:rgb(0,0,0)">> The HAnimHumanoid node has a MFNode field <code class="gmail-notranslate" style="font-family:monospace">joints</code> which must contain all joint nodes, then skinning will work.  </div>
<div style="font-family:arial,sans-serif;font-size:12pt;color:rgb(0,0,0)">  </div>
<div style="font-family:arial,sans-serif;font-size:12pt;color:rgb(0,0,0)">This is the only player or browser or any tool I have encountered using that rule. Same for both joint animations and joint-to-skin point bindings?What is the connection? For skin, you can't ignore skinCoordIndex and skinCoordWeight fields just because the Joint is not found in joints.    John, maybe try for what happens when just a few joints are left out of the llist.   Does this not recognize the humanoid if no segments or sites fields? Whatever, the rules for use of those three fields should be consistentThanks,  Joe  
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<div style="border-left:1px solid rgb(170,170,170);box-sizing:border-box;padding:10px 0px 10px 15px;margin:0px;font-family:arial,sans-serif">
<p style="font-family:arial,sans-serif">-----Original Message-----<br>From: John Carlson <<a style="font-family:arial,sans-serif" href="mailto:yottzumm@gmail.com" rel="noopener" target="_blank">yottzumm@gmail.com</a>><br>Sent: May 29, 2024 7:22 AM<br>To: Joe D Williams <<a style="font-family:arial,sans-serif" href="mailto:joedwil@earthlink.net" rel="noopener" target="_blank">joedwil@earthlink.net</a>>, create3000/sunrize <<a style="font-family:arial,sans-serif" href="mailto:reply%2BAAFMJ5YNMQD2V3WUI2UO2AOEMMNGREVBNHHITSFMII@reply.github.com" rel="noopener" target="_blank">reply+AAFMJ5YNMQD2V3WUI2UO2AOEMMNGREVBNHHITSFMII@reply.github.com</a>><br>Cc: Author <<a style="font-family:arial,sans-serif" href="mailto:author@noreply.github.com" rel="noopener" target="_blank">author@noreply.github.com</a>>, create3000/sunrize <<a style="font-family:arial,sans-serif" href="mailto:sunrize@noreply.github.com" rel="noopener" target="_blank">sunrize@noreply.github.com</a>><br>Subject: Re: [create3000/sunrize] Joe doesn't kick or move in sunrize. (Issue #6)</p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<div dir="auto" style="font-family:arial,sans-serif">Ah, thanks.  That makes sense, Joe often leaves off the joints field.  Sigh.</div>
<div style="font-family:arial,sans-serif"><br>
<div class="gmail_quote" style="font-family:arial,sans-serif">
<div class="gmail_attr" dir="ltr" style="font-family:arial,sans-serif">On Wed, May 29, 2024 at 9:19 AM Holger Seelig <<a style="font-family:arial,sans-serif" href="mailto:notifications@github.com" rel="noopener" target="_blank">notifications@github.com</a>> wrote:</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex;font-family:arial,sans-serif">
<p style="font-family:arial,sans-serif"> </p>
<p dir="auto" style="font-family:arial,sans-serif">The HAnimHumanoid node has a MFNode field <code class="gmail-notranslate" style="font-family:monospace">joints</code> which must contain all joint nodes, then skinning will work.</p>
<p style="font-size:small;font-family:arial,sans-serif;color:rgb(102,102,102)">—<br>Reply to this email directly, <a style="font-family:arial,sans-serif" href="https://github.com/create3000/sunrize/issues/6#issuecomment-2137534969" rel="noopener" target="_blank">view it on GitHub</a>, or <a style="font-family:arial,sans-serif" href="https://github.com/notifications/unsubscribe-auth/AAFMJ54XCHA6LHSRPCLBTP3ZEXPWRAVCNFSM6AAAAABIEQ2ITSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZXGUZTIOJWHE" rel="noopener" target="_blank">unsubscribe</a>.<br>You are receiving this because you authored the thread.<img style="font-family: arial, sans-serif;" alt="" width="1" height="1"><span style="font-size:0px;display:none;overflow:hidden;opacity:0;width:0px;height:0px;max-width:0px;max-height:0px;font-family:arial,sans-serif;color:transparent">Message ID: <create3000/sunrize/issues/6/<a style="font-family:arial,sans-serif" href="mailto:2137534969@github.com" rel="noopener" target="_blank">2137534969@github.com</a>></span></p>
</blockquote>
</div>
</div>
</div>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
</div>
</div>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
</div>
</blockquote>
</div>
</div>
</div>

<p style="margin:0.1rem 0px;line-height:1"> </p>_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote></div>