[x3d-public] What are valid children of HAnimHumanoid.skin? argument for allowing containerFields in x3d.py

John Carlson yottzumm at gmail.com
Thu Oct 26 10:08:10 PDT 2023


From: https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimHumanoid

I see:

 <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimHumanoid>MFNode
    [in,out] skin                  []       [IndexedFaceSet,
IndexedFanSet, IndexedQuadSet, IndexedTriangleSet,
IndexedTriangleStripSet]

And fromL https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid

sequence<Object>   skin                  []           [indexed mesh
objects as defined by the representation]


But in actual practice, I see:


<Shape DEF='Joe_Shape
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#Joe_Shape>'
containerField='skin'>
<Appearance DEF='Joe_skin_Appearance
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#Joe_skin_Appearance>'>
<Material DEF='Joe_skin_Material
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#Joe_skin_Material>'
diffuseColor='0.3 0.3 0.6' emissiveColor='0.3 0.3 0.6'/>
<ImageTexture DEF='JoeSkinImageTexture
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#JoeSkinImageTexture>'
  url=' "JoeBodyTexture29.png
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeBodyTexture29.png>"
"https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JoeBodyTexture29.png
 <https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JoeBodyTexture29.png>"
' />
<!-- *ROUTE* information for KickTextureTransform node:  [*from*
SkinInterpolator.value_changed *to* rotation
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#ROUTE_194>]
-->
<TextureTransform DEF='KickTextureTransform
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#KickTextureTransform>'/>
</Appearance>

From:

https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKickIndex.html

And

skin [
        DEF Joe_Shape Shape {
          appearance DEF Joe_skin_Appearance Appearance {
            material DEF Joe_skin_Material Material {
              diffuseColor 0.3 0.3 0.6
              emissiveColor 0.3 0.3 0.6
            }
            texture DEF JoeSkinImageTexture ImageTexture {
              url [ "JoeBodyTexture29.png"
"https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JoeBodyTexture29.png"
]
            }
            textureTransform DEF KickTextureTransform TextureTransform {
            }
          }
==================================================

So it would seem like Shapes with an Indexed geometry is what we're
aiming for in the standard as one of the possibly many children of the
skin container field (note the space).

That is all okay, AFAIAC, just extremely confusing when deciding where
to add containerFields in DOM documents.


For example, consider the below:

                <HAnimJoint USE='hanim_l_carpal_distal_interphalangeal_4'/>
                <HAnimJoint USE='hanim_l_metacarpophalangeal_3'/>
                <HAnimJoint USE='hanim_l_carpal_proximal_interphalangeal_3'/>
                <HAnimJoint USE='hanim_l_carpal_distal_interphalangeal_3'/>
                <HAnimJoint USE='hanim_l_metacarpophalangeal_2'/>
                <HAnimJoint USE='hanim_l_carpal_proximal_interphalangeal_2'/>
                <HAnimJoint USE='hanim_l_carpal_distal_interphalangeal_2'/>

[ etc. ]

It may not be apparent, but X3DJSAIL complains about this. There's no
containerField='joints', right?  But I'm generating this code using
x3d.py which doesn't allow me to list containerFields!

Grr!  Here are some of the "brutzman" messages from X3DJSAI, which are
valid.  I really want to assign joints as a containerField, so perhaps
I will just do it in X3DJSONLD.

    [apply] [error] X3DLoaderDOM: Parent-child node relationship not
found! (parent HAnimHumanoid, child HAnimJoint,
containerField='children') Please report this problem to
brutzman at nps.edu
    [apply] [error] X3DLoaderDOM: Parent-child node relationship not
found! (parent HAnimHumanoid, child HAnimJoint,
containerField='children') Please report this problem to
brutzman at nps.edu
    [apply] [error] X3DLoaderDOM: Parent-child node relationship not
found! (parent HAnimHumanoid, child HAnimJoint,
containerField='children') Please report this problem to
brutzman at nps.edu
    [apply] [error] X3DLoaderDOM: Parent-child node relationship not
found! (parent HAnimHumanoid, child HAnimJoint,
containerField='children') Please report this problem to
brutzman at nps.edu
    [apply] [error] X3DLoaderDOM: Parent-child node relationship not
found! (parent HAnimHumanoid, child HAnimJoint,
containerField='children') Please report this problem to
brutzman at nps.edu
    [apply] [error] X3DLoaderDOM: Parent-child node relationship not
found! (parent HAnimHumanoid, child HAnimJoint,
containerField='children') Please report this problem to
brutzman at nps.edu
    [apply] [error] X3DLoaderDOM: Parent-child node relationship not
found! (parent HAnimHumanoid, child HAnimJoint,
containerField='children') Please report this problem to
brutzman at nps.edu
    [apply] [error] X3DLoaderDOM: Parent-child node relationship not
found! (parent HAnimHumanoid, child HAnimJoint,
containerField='children') Please report this problem to
brutzman at nps.edu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20231026/1df64bfc/attachment.html>


More information about the x3d-public mailing list