<div style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:12pt"><p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: Calibri, sans-serif; font-size: 14.6667px; white-space: normal; float: none; display: inline;">> GCE Skin node’s “shapes” field </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: Calibri, sans-serif; font-size: 14.6667px; white-space: normal; float: none; display: inline;">should be GCESkin but </span><span style="color: #000000; font-family: Calibri, sans-serif; font-size: 14.6667px; white-space: normal; float: none; display: inline;">should not have 'skin' in the name. </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: Calibri, sans-serif; font-size: 14.6667px; white-space: normal; float: none; display: inline;">It is more than skin and less than skin at the same time</span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: Calibri, sans-serif; font-size: 14.6667px; white-space: normal; float: none; display: inline;">and it is not HAnim, it is HAnim Part 2 import stuff. </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: Calibri, sans-serif; font-size: 14.6667px; white-space: normal; float: none; display: inline;">Not much if anything to do with HAnim part 1. </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: Calibri, sans-serif; font-size: 14.6667px; white-space: normal; float: none; display: inline;">Then you are overloading this node with other stuff, like lights? </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: Calibri, sans-serif; font-size: 14.6667px; white-space: normal; float: none; display: inline;">Really step back and think about how to do this without trying to load everything into this 'Node;</span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: Calibri, sans-serif; font-size: 14.6667px; white-space: normal; float: none; display: inline;">Thanks,</span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="color: #000000; font-family: Calibri, sans-serif; font-size: 14.6667px; white-space: normal; float: none; display: inline;">Joe</span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
</div>
<div class="elnk-inline-message-container" style="border-left: 1px solid #aaa; box-sizing: border-box; padding: 10px 0 10px 15px; margin: 0;">
<p>-----Original Message-----<br>From: Bergstrom, Aaron <aaron.bergstrom@und.edu><br>Sent: Jan 22, 2026 7:22 AM<br>To: X3D Ecosystem public discussion <x3d-ecosystem@web3d.org>, Joe D Williams <joedwil@earthlink.net>, Katy Schildmeyer KS APPAREL DESIGN <katy@ksappareldesign.com>, GPU Group <gpugroup@gmail.com>, Michalis Kamburelis <michalis.kambi@gmail.com><br>Cc: John Carlson <yottzumm@gmail.com><br>Subject: RE: [X3D-Ecosystem] Blender export: Bone+Transform = Joint</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<div class="WordSection1">
<p class="MsoNormal">All,</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Initially, the GCE Skin node’s “shapes” field was not going to allow any node types other than “Shapes”, but recently Michalis has changed his mind on this. It may be a bit before it is implemented, but “shapes” will also allow “Group” nodes and many other node types.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Hoewver, “Transform” nodes under a CGE Skin node’s “shapes” field will still NOT be allowed.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Unfortunately, I cannot provided any feedback on Blender Armature nodes as I have not read up on how they work.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">I had planned to read up on the topic. I received the book “Beginner’s Guide to Creating Characters in Blender” for Christmas, which I figured would have some discussion of Blender character rigging…</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">But alas, unfortunately there is absolutely no discussion about Armature or character rigging in that book. I guess I should have looked at the book’s Table of Contents before asking for it.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Oh well, it’s always hard to buy xmas gifts for dad.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Disappointing, nonetheless.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Aaron</p>
<p class="MsoNormal"> </p>
<div style="border: none; border-top: solid #E1E1E1 1.0pt; padding: 3.0pt 0in 0in 0in;">
<p class="MsoNormal"><strong>From:</strong> X3D-Ecosystem <x3d-ecosystem-bounces@web3d.org> <strong>On Behalf Of </strong>John Carlson via X3D-Ecosystem<br><strong>Sent:</strong> Wednesday, January 21, 2026 11:56 PM<br><strong>To:</strong> Joe D Williams <joedwil@earthlink.net>; Katy Schildmeyer KS APPAREL DESIGN <katy@ksappareldesign.com>; GPU Group <gpugroup@gmail.com>; X3D Ecosystem public discussion <x3d-ecosystem@web3d.org>; Michalis Kamburelis <michalis.kambi@gmail.com><br><strong>Cc:</strong> John Carlson <yottzumm@gmail.com><br><strong>Subject:</strong> [X3D-Ecosystem] Blender export: Bone+Transform = Joint</p>
</div>
<p class="MsoNormal"> </p>
<p class="MsoNormal">I am starting to realize that for Blender HAnim export, at least for sandrunner, that Bone parent + Transform child (Empty object) = HAnimJoint (combined). So you must go down the non-bone hierarchy under Armature to collect the Transform (translation, rotation, scale), go to the parent bone of the non-bone to get the head (center), and create an HAnimJoint from those values. Then, you must (somehow) attach the mesh (skin) to the HAnimJoint through vertex groups (skinCoordWeight and skinCoordIndex). And collect all coordinates from the meshes into the skinCoord containerField in a Coordinate.point field. All the meshes will be Shape (mesh) nodes in the skin containerField field.</p>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">This is for the XML encoding. I am not currently including other encodings.</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">The HAnimJoints should not have *any* children except other HAnimJoints and HAnimDisplacers. There’s no HAnimSegments or HAnimSites. There will be HAnimDisplacers, but I don’t know how to export those yet, help is desired. I suggest we get browsers ready for this.</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">The only Transforms that will be exported will be outside the Humanoid or in skin, but the latter is unlikely, since HAnimJoints can’t contain Transforms.</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">If there’s no bone parent for a Blender object inside the armature, an HAnimJoint will be created with its closest ancestor’s bone head (center).</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">That’s as far as I got. Please review.</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">Please discuss how Groups work under Shapes in this case. Also the CGE Skin node should be discussed.</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">John</p>
</div>
</div>
</div>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>