<div dir="auto">Note that center is currently in the massive matrix generated for HAnim/Transform on import.  I am not sure how to separate out center/location yet.  The code is here:</div><div dir="auto"><br></div><div dir="auto"><div><a href="https://github.com/coderextreme/BlenderX3DSupport/blob/78b6b1201cfd78b9327971849e2554fd2e39e584/io_scene_x3d/import_x3d.py#L1515">https://github.com/coderextreme/BlenderX3DSupport/blob/78b6b1201cfd78b9327971849e2554fd2e39e584/io_scene_x3d/import_x3d.py#L1515</a></div><br></div><div dir="auto">So it kind of seems like we have a center/location for HAnim and one for Transforms.  Do I do the same massive matrix multiplication the same way for both?  Centers for both are either relative to the HAnimHumanoid or the origin, right? Yet translation, rotation and scale are relative to the parent. Perhaps enhanced animation would help?</div><div dir="auto"><br></div><div dir="auto">I think Joe tried to explain this, but I don’t know how to translate that to code yet.  I’ve read the standard for Transform.  AFAIK, that is reflected on the link.</div><div dir="auto"><br></div><div dir="auto">The center remains the same regardless of other operations on the Transform or HAnim node or its parents is my understanding.   I don’t think location is the same.  That might be the problem.  Maybe I’m wrong.  Maybe I should be considering delta_location in blender objects.</div><div dir="auto"><br></div><div dir="auto">I’ve nearly given up and will probably return to Joint centers being the head and tail of Blender bones, and start attaching empties to bones and armature and mesh to empties.  Unless I get hit by a bolt of lightning.  I’ll save the code as is.</div><div dir="auto"><br></div><div dir="auto">I realize this is not the best solution for HAnim purposes.  I still have hope for a dual path.  This will allow  me to *easily* load skin weights into vertex groups for Blender bones.  Plus I will still modify export code to convert empties to sites, segments and transforms, per previous emails.</div><div dir="auto"><br></div><div dir="auto">John </div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jun 11, 2024 at 11:27 PM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div dir="auto">Obviously, these empty_obj’s are segments, and we’ll have to attach site empties to the empty_obj segments and the sites’ meshes and transforms to the site empties.</div><div dir="auto"><br></div><div dir="auto">But yeah, I’m still unsure what to do about locations of empties.  Blender bones are a easy solution, but they don’t offer a generic solution.</div><div dir="auto"><br></div><div dir="auto">I was hoping to get some very simple examples working, but we got sidetracked.</div><div dir="auto"><br></div><div dir="auto">John </div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jun 11, 2024 at 11:12 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div><div class="gmail_quote"><div dir="auto">Summary:</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div><pre style="margin:0px;border:0px;font-style:normal;font-weight:400;vertical-align:baseline;width:auto;max-height:600px;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration:none;font-family:monospace;color:rgb(12,13,14)"><code style="margin:0px;padding:0px;border:0px;font-style:inherit;font-weight:inherit;line-height:inherit;font-family:monospace;vertical-align:baseline;white-space:inherit;background-color:transparent">mesh_obj.parent = empty_obj

empty_obj.parent = armature_obj
empty_obj.parent_bone = bone_name
empty_obj.parent_type = <span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-weight:inherit;line-height:inherit;font-family:monospace;font-size:13px;vertical-align:baseline">'BONE'</span></code></pre></div><br></div><div dir="auto"><br></div><div dir="auto">If this works, we’ll have to tackle animation.</div><div dir="auto"><br></div><div dir="auto">OK?</div></div></div></blockquote></div></div>
</blockquote></div></div>