[x3d-public] [create3000/sunrize] Joe doesn't kick or move in sunrize. (Issue #6)

Michalis Kamburelis michalis.kambi at gmail.com
Mon Jun 3 02:38:56 PDT 2024


The specification of H-Anim does say to list all joints in humanoid
"joints" field,
https://www.web3d.org/documents/specifications/19774-1/V2.0/Architecture/ObjectInterfaces.html#Humanoid
.

    """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."""

The tooltips shown in this thread confirm it.

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.

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".

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.

Regards,
Michalis

pt., 31 maj 2024 o 19:36 Joe D Williams via x3d-public <x3d-public at web3d.org>
napisał(a):

> Right, there is nothing in there that says to ignore the skeleton if
> joints field is not there.
>
> 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.
>
>
>
> Next, there is no browser that actually needs the fields, except one that
> fails anim and skin if joints field not there.
>
>
>
> 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.
>
>
>
> 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.
>
>
>
> Thanks,
>
> Joe
>
>
>
>
>
> -----Original Message-----
> From: John Carlson <yottzumm at gmail.com>
> Sent: May 31, 2024 12:07 AM
> To: Joe D Williams <joedwil at earthlink.net>
> Cc: Extensible 3D (X3D) Graphics public discussion <x3d-public at web3d.org>,
> create3000/sunrize <
> reply+AAFMJ5YNMQD2V3WUI2UO2AOEMMNGREVBNHHITSFMII at reply.github.com>, <
> h-anim at web3d.org>
> Subject: Re: [x3d-public] [create3000/sunrize] Joe doesn't kick or move in
> sunrize. (Issue #6)
>
>
> So, I did some research.  Here’s what tooltips says:
>
>
> *[joints accessType inputOutput
> <https://www.web3d.org/x3d/content/X3dTooltips.html#accessType>, type
> MFNode <https://www.web3d.org/x3d/content/X3dTooltips.html#MFNode> array,
> empty list] [HAnimJoint
> <https://www.web3d.org/x3d/content/X3dTooltips.html#HAnimJoint>]*
> The joints field contains a list of USE references for all HAnimJoint node
> instances found within the preceding skeleton hierarchy.
> *Hint:* order is irrelevant since names are contained in the original DEF
> objects.
> *Hint:* these USE nodes can be utilitized by inverse kinematics (IK) and
> animation engines.
> *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.
> *Warning:* top-level HAnimJoint USE nodes must include
> containerField='joints' for proper validation and operation
>
> The first warning is the relevant one.
>
> I am not sure about the standard.
>
> Perhaps we’re talking best practices.
>
>
> John
>
> On Thu, May 30, 2024 at 8:17 PM Joe D Williams <joedwil at earthlink.net>
> wrote:
>
>> > The HAnimHumanoid node has a MFNode field joints which must contain
>> all joint nodes, then skinning will work.
>>
>>
>>
>> This is the only player or browser or any tool I have encountered using
>> that rule.     ...
>>
>>
>>
>>
>>
>> Seriously, this has to be discussed.
>>
>> 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.
>>
>>
>>
>> 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.
>>
>>
>>
>> Thanks,
>>
>> Joe
>>
>>
>>
>> -----Original Message-----
>> From: Extensible 3D (X3D) Graphics public discussion <
>> x3d-public at web3d.org>
>> Sent: May 29, 2024 12:08 PM
>> To: John Carlson <yottzumm at gmail.com>, create3000/sunrize <
>> reply+AAFMJ5YNMQD2V3WUI2UO2AOEMMNGREVBNHHITSFMII at reply.github.com>, <
>> x3d-public at web3d.org>
>> Cc: Joe D Williams <joedwil at earthlink.net>
>> Subject: Re: [x3d-public] [create3000/sunrize] Joe doesn't kick or move
>> in sunrize. (Issue #6)
>>
>>
>> > The HAnimHumanoid node has a MFNode field joints which must contain
>> all joint nodes, then skinning will work.
>>
>> 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
>>
>>
>>
>>
>>
>> -----Original Message-----
>> From: John Carlson <yottzumm at gmail.com>
>> Sent: May 29, 2024 7:22 AM
>> To: Joe D Williams <joedwil at earthlink.net>, create3000/sunrize <
>> reply+AAFMJ5YNMQD2V3WUI2UO2AOEMMNGREVBNHHITSFMII at reply.github.com>
>> Cc: Author <author at noreply.github.com>, create3000/sunrize <
>> sunrize at noreply.github.com>
>> Subject: Re: [create3000/sunrize] Joe doesn't kick or move in sunrize.
>> (Issue #6)
>>
>>
>> Ah, thanks.  That makes sense, Joe often leaves off the joints field.
>> Sigh.
>>
>> On Wed, May 29, 2024 at 9:19 AM Holger Seelig <notifications at github.com>
>> wrote:
>>
>>>
>>>
>>> The HAnimHumanoid node has a MFNode field joints which must contain all
>>> joint nodes, then skinning will work.
>>>
>>>>>> Reply to this email directly, view it on GitHub
>>> <https://github.com/create3000/sunrize/issues/6#issuecomment-2137534969>,
>>> or unsubscribe
>>> <https://github.com/notifications/unsubscribe-auth/AAFMJ54XCHA6LHSRPCLBTP3ZEXPWRAVCNFSM6AAAAABIEQ2ITSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZXGUZTIOJWHE>
>>> .
>>> You are receiving this because you authored the thread.Message ID:
>>> <create3000/sunrize/issues/6/2137534969 at github.com>
>>>
>>
>>
>>
>>
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20240603/f0bfb19c/attachment.html>


More information about the x3d-public mailing list