<div dir="ltr">I'm actually changing in two places:<div><br></div><div>global_matrix = axis_conversion(from_forward=self.axis_up,<br>                                        from_up=self.axis_forward,<br>                                        ).to_4x4()<br></div><div><br></div><div>Under ImportX3D execute.  And:</div><div><br></div><div>        global_matrix = axis_conversion(to_forward=self.axis_up,<br>                                        to_up=self.axis_forward,<br>                                        ).to_4x4() @ Matrix.Scale(<br>            1.0 / 0.0254 if self.file_unit == 'IN' else self.global_scale, 4)<br></div><div><br></div><div>Under  ExportX3D execute.</div><div><br></div><div>I don't really know why they aren't identical.</div><div><br></div><div>So we can have our cake and eat it too, we can replace the axis conversion with what we like.  The issue is, that it affects *everyone* who has used X3D import/export in Blender.</div><div><br></div><div>Joe, if you agree with this, I will try to get this into the Blender extension release.</div><div><br></div><div>Thanks!</div><div><br></div><div>John</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 15, 2024 at 7:12 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:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Not really wanting to get in a huge discussion about +Yup and +Zforward. I can make the following suggestion to change the blender X3D importer, realizing this will affect *everyone" who uses the Blender plugin, hopefully in a positive way (- means remove these lines, + means add the lines).  In the initialization:<div><br></div><div>@@ -70,8 +70,8 @@ class ImportX3D(bpy.types.Operator, ImportHelper):<br>                                             "axis_up",<br>                                             "filter_glob",<br>                                             ))<br>-        global_matrix = axis_conversion(from_forward=self.axis_forward,<br>-                                        from_up=self.axis_up,<br>+        global_matrix = axis_conversion(from_forward=self.axis_up,<br>+                                        from_up=self.axis_forward,<br>                                         ).to_4x4()<br>         keywords["global_matrix"] = global_matrix<br></div><div><br></div><div>The axis_conversion method is not part of the importer or exporter.  We can also change the global_matrix to something else as well.  This affects *everyone* who uses the blender import/export.</div><div><br></div><div>With external scripts, I have only been able to change the Main view such that JinLOA4 is not lying flat on his back.  I can erase the floor, but the floor looks useful  I have been able to look at floor constraints on objects, but I think we need an object to set the floor constraint for.  I think that's more about where the floor is for an object, not changing the "stage."   Maybe that's another thing I can look up.</div><div><br></div><div>We still need to test humanoids with other objects.</div><div><br></div><div>John</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 15, 2024 at 5:02 PM Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> export_yup=False,<br>
<br>
I still think the only reason yup=False is in there because whatever was drawn that way in the blender. That is not going to be fun to correct in x3d, as we see.<br>
<br>
So, this is useless for Humanoid, but probably pass for common geometry that needs to be transformed anyway. <br>
<br>
So, me still say this is useless operation for HAnim. Get it drawn fight in Blender and then export it as we want it, yup=true, +x=model left, model faces +z, reference for all measurements are 0 0 0 between feet, and to 'human' scale we expect in a standard environment.  <br>
<br>
Otherwise, the export is useless for hanim because hard to fix, plus animations are in danger of getting messed up.  <br>
We would not import joekick with yup=False, right?  <br>
<br>
Overall, we really don't want the runtime to do a bunch of gyrations and transformations to get the thing in "standard' form for operation with others in 'standard' form in a 'standard' environment. This is not limiting because any authoring tool worth it will give you standard GL coordinate system to work in as well as zero functions to present the thing as expected.<br>
<br>
Thanks for trying but please start where it needs to be started in standard GL as the host root coordinate system that is importing skeleton drawn in GL coordsys, working in GL coordsys and exporting in GL coordsys.  <br>
Best of Faith in the GL,<br>
Joe  <br>
<br>
<br>
<br>
-----Original Message-----<br>
From: John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>></<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>><br>
Sent: Oct 15, 2024 11:54 AM<br>
To: Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>>, Katy Schildmeyer KS APPAREL DESIGN <<a href="mailto:katy@ksappareldesign.com" target="_blank">katy@ksappareldesign.com</a>>, Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com" target="_blank">michalis.kambi@gmail.com</a>>, X3D Ecosystem public discussion <<a href="mailto:x3d-ecosystem@web3d.org" target="_blank">x3d-ecosystem@web3d.org</a>>, Holger Seelig <<a href="mailto:holger.seelig@yahoo.de" target="_blank">holger.seelig@yahoo.de</a>></<a href="mailto:holger.seelig@yahoo.de" target="_blank">holger.seelig@yahoo.de</a>></<a href="mailto:x3d-ecosystem@web3d.org" target="_blank">x3d-ecosystem@web3d.org</a>></<a href="mailto:michalis.kambi@gmail.com" target="_blank">michalis.kambi@gmail.com</a>></<a href="mailto:katy@ksappareldesign.com" target="_blank">katy@ksappareldesign.com</a>></<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>><br>
Subject: Don McCurdy gave me the secret to combining animations when exporting glTF<br>
<br>
Blender Python script for exporting glb as a single, combined animation: bpy.ops.export_scene.gltf(<br>
filepath=os.path.join(".", f"JoeSkinTexcoordDisplacerKickUpdate2Export.glb"),<br>
export_yup=False,<br>
# export_format="GLTF_SEPARATE",<br>
export_format="GLB",<br>
export_nla_strips_merged_animation_name='Animation',<br>
export_animation_mode="ACTIVE_ACTIONS", #"SCENE",<br>
export_influence_nb=40,<br>
export_all_influences=True,<br>
use_active_collection=True<br>
)<br>
<br>
<br>
</blockquote></div>
</blockquote></div>