[x3d-public] [create3000/sunrize] Joe doesn't kick or move in sunrize. (Issue #6)
John Carlson
yottzumm at gmail.com
Mon Jun 3 12:38:55 PDT 2024
Doing the hard work in the standard much appreciated, Michalis!
John
On Mon, Jun 3, 2024 at 4:39 AM Michalis Kamburelis <michalis.kambi at gmail.com>
wrote:
> 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/011349e2/attachment-0001.html>
More information about the x3d-public
mailing list