[X3D-Ecosystem] Geometry nodes in Blender.

Joe D Williams joedwil at earthlink.net
Fri Dec 20 10:05:45 PST 2024


Please look at John's export of joekick from blender. The skin binding works fine except that it also includes all other geometry in the file as skin so it  doesn't work quite right. 
The problem in the exported file is that the 'standard' blender transform node does not know about "center" and so it has to be added by a silly USEage in blender to work.
Just fix blender (1) so it knows about center in a 'standard' Transform, and (2) how it seems to include all geometry in the file, even children of joints, as included in"skin" field and most all will be fixed.

The idea of a bone center is not useful unless it is a joint. If a center field is mentioned anywhere in blender it is in relation to a begin bone end as some sort of crutch for having left center out of standard Transform. Recall the days in 1998 when some tool makers were saying nah, we don't need center in our transform object, translation, rotation, and scale is plenty to expose except as special usage. 
Thanks,
Joe

 . 
-----Original Message-----
From: Michalis Kamburelis <michalis.kambi at gmail.com>
Sent: Dec 20, 2024 2:07 AM
To: John Carlson <yottzumm at gmail.com>
Cc: X3D Ecosystem public discussion <x3d-ecosystem at web3d.org>, Vincent Marchetti <vmarchetti at kshell.com>, Katy Schildmeyer KS APPAREL DESIGN <katy at ksappareldesign.com>, Carol McDonald <cemd2 at comcast.net>, Joe D Williams <joedwil at earthlink.net>
Subject: Re: Geometry nodes in Blender.

> I think what you're saying is break a bone into 2 pieces, one with head plus center (now tail) and one with center (now head) plus tail. This seems like an excellent idea. I'm going to think on it a bit.
> My question is, what do I name the 2 pieces? I'm guessing something that I can combine on export.

Indeed.

As for new bone names: "Leg1_center" (when you need to add new Blender
bone when "Leg1" joint has non-zero center in X3D/H-Anim) would look
reasonable for me (and code can figure out what happened and invert
it, so you can have round-trip that later exports it back into one
"Leg1" joint with non-zero center). But that's just a suggestion.

> This sounds like Zeno's paradox where I'm just trying to put weights where they don't go. The weights go on the joints. We only have weights for joints on import. ((well, I don't know all of X3D).

Weights describe how much each joint influences each vertex. This is
equal in Blender, X3D/H-Anim, glTF.

I'm not sure if what you're saying is equivalent, but if yes -> OK :)

> Remember I'm doing this in python, not in the Blender GUI.

Sure, but it should be similar. That is, Blender's Python API exposes
a superset of things that you can do from GUI and it uses the same
terminology, mostly. And you can observe in Blender's console what
your interactive operation "means" in Python, it's a valid way to
learn Blender's Python API.

> It sounds like I should give up on ever trying to import site or segment geometry, and *try* to do Joints and skin.

I'm not sure what do you mean here :)

The H-Anim "skin" (one mesh, with joints and weights) should map to
Blender, because it is exactly the same concept in Blender. (OK, not
*exactly* the same, e.g. Blender, because of history, calls "bones"
what X3D/H-Anim and glTF call "joints"; but it is close to equivalent,
for 3D graphic artists these are the same things).

You don't need to "give up" on anything, from what I can see. Just
import/export X3D/H-Anim skin to Blender's skin (Armature). This is
what 3D artists would expect.

Other features (like attaching rigid objects to sites, without skin)
are a separate thing. They can be imported/exported e.g. as bones'
children. But these are separate things, I'd advise to focus on the
hard case (skin) first :)

Regards,
Michalis





More information about the X3D-Ecosystem mailing list