<div dir="auto">I thought it would be easier to generate .glTF and .glb from Blender!</div><div dir="auto"><br></div><div dir="auto">But first, I need a generalized importer, not only HAnim stuff.  I’m hoping to modify the existing importer—Apparently I broke my version adding HAnim. Â  WIP.</div><div dir="auto"><br></div><div dir="auto">I am developing an external Blender X3D loader for practice (installing into Blender for each change is a pain).  This loader will load stuff with names like Transform.theTransformDEF.0 (0 for DEF, higher numbers for USE).  This will allow me to store Inlines and other X3D nodes in the Blender hierarchy.  As Objects of type EMPTY, if course.  One might develop â€œextensions” to glTF transforms to store X3D.  If you would like to collaborate on such extensions, we can discuss.</div><div dir="auto"><br></div><div dir="auto">I plan for the â€œX3DV” exporter to consume these names and produce real X3D nodes, perhaps by providing custom properties to Blender from the importer as well, to add fields from X3D.</div><div dir="auto"><br></div><div dir="auto">I’m not sure if this will extend to PROTOs or not.  I’m not aware that .glTF or Blender itself supports PROTOs after they are imported.  Information requested!</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Oct 21, 2024 at 11:15 AM Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com">michalis.kambi@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Sure. X3D to glTF conversion using Castle Game Engine will definitely<br>
come,  <a href="https://castle-engine.io/roadmap#gltf_save" rel="noreferrer" target="_blank">https://castle-engine.io/roadmap#gltf_save</a> :)<br>
<br>
Regards,<br>
Michalis<br>
<br>
pon., 21 paź 2024 o 17:59 John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> napisaÅ‚(a):<br>
><br>
> I'm trying to convert the attached X3D file to .glb and have a single button to animate.<br>
><br>
> Feel free to do .x3d to .glb conversion so I'm not the only guy doing it.<br>
><br>
> Thanks,<br>
><br>
> John<br>
><br>
> On Mon, Oct 21, 2024 at 10:47 AM Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com" target="_blank">michalis.kambi@gmail.com</a>> wrote:<br>
>><br>
>> To be clear, I know the original model you reported in this thread was<br>
>> GLB and I know why the "Enable Multiple Simultaneous Animations"<br>
>> didn't work for you -- it seems you had multiple TimeSensors (well,<br>
>> "animations in glTF" which come down to "TimeSensor nodes" for us)<br>
>> trying to affect the same thing.<br>
>><br>
>> I'm a bit confused, you have answered me with a few posts, some of<br>
>> this information seems unconnected, at least for me -- I don't know<br>
>> what you're doing, how you use Blender, what is your goal etc. It<br>
>> doesn't help that there seem to be a few interconnected threads with a<br>
>> different subset of people.<br>
>><br>
>> If you believe you have found a bug in Castle Model Viewer, please<br>
>> just report it to <a href="https://github.com/castle-engine/castle-model-viewer" rel="noreferrer" target="_blank">https://github.com/castle-engine/castle-model-viewer</a><br>
>> , along with (as simple as possible) testcase to reproduce it. I'll be<br>
>> sure to fix it then :) Thanks!<br>
>><br>
>> Regards,<br>
>> Michalis<br>
>><br>
>> pon., 21 paź 2024 o 17:08 John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> napisaÅ‚(a):<br>
>> ><br>
>> > BTW, I don't know if you guys say this version of Joe Kick with a *single* animation.  No, I don't have to clicky clacky on multiple animations checkbox or press a lot of buttons.  Just the two buttons in CGE Model Viewer, Animations, and then the actual, single animation. No extra X3D file required either.<br>
>> ><br>
>> > Note that I still need to work on Weight/Animation import in the Blender importer.<br>
>> ><br>
>> > Holger, I think your .glb import needs some work.<br>
>> ><br>
>> > Thanks!<br>
>> ><br>
>> > Attached.<br>
>> ><br>
>> > On Mon, Oct 21, 2024 at 9:57 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br>
>> >><br>
>> >> Here's the "magical" Blender python export to get all TimeSensors playing in a .glb, without having to clicky clicky on all the NLA track animations in Castle Model Viewer  Â (which doesn't work) or have an X3D wrapper. This is also the instructions for including more than 4 weights (40) per vertex in the .glb! One still needs a TimeSensor to kick everything off, but it's a relief not to click an animation for every bone!<br>
>> >><br>
>> >> Thanks to Don McCurdy for taking me through this.  Success!<br>
>> >><br>
>> >> Blender Python script for exporting glb as a single, combined animation:<br>
>> >><br>
>> >> bpy.ops.export_scene.gltf(<br>
>> >>  Â  Â filepath=os.path.join("YourFolderHere", f"YourGLBfileHere.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>
>> >> Note that I left Joe off the CC because of the "export_yup=False" he already complained about it on another thread.<br>
>> >><br>
>> >> On Mon, Oct 21, 2024 at 8:50 AM Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com" target="_blank">michalis.kambi@gmail.com</a>> wrote:<br>
>> >>><br>
>> >>> Sorry for delay in answering, just got back from 2 conferences.<br>
>> >>><br>
>> >>> 1. The general way to play multiple animations in Castle Model Viewer<br>
>> >>> is no different from any other X3D viewer -- you can have multiple<br>
>> >>> TimeSensor nodes active at the same time.<br>
>> >>><br>
>> >>>  Â  Â From Castle Model Viewer UI, you can select "Enable Multiple<br>
>> >>> Simultaneous Animations" in the "Animations" panel, and then running<br>
>> >>> an animation -- it's really just starting another TimeSensor. By<br>
>> >>> default "Enable Multiple Simultaneous Animations" is false, but this<br>
>> >>> is just a convenience following what people usually need from Castle<br>
>> >>> Model Viewer -- they want to see one animation. But you can have both<br>
>> >>> ways, play only one animation, or play multiple at the same time.<br>
>> >>><br>
>> >>>  Â  Â You can also define an X3D "wrapper" file that uses Inline to<br>
>> >>> reference a file (glTF or X3D, it works in any case) and uses IMPORT<br>
>> >>> to reference the animations (really, just TimeSensor nodes) and runs<br>
>> >>> them. I see Holger from X_ITE answered along these lines too.<br>
>> >>><br>
>> >>> 2. That said, to make it work, all the TimeSensor nodes must modify<br>
>> >>> disjoint parts of the X3D graph (whether it's loaded from X3D or<br>
>> >>> glTF). This doesn't happen in this case, from what I see -- even your<br>
>> >>> "NLATRACK SBall" animation (TimeSensor name<br>
>> >>> "CastleEncoded_NLATRACK$32$SBall") has a ROUTE to<br>
>> >>> "CastleEncoded_CoordSkinInterpolator_NLATRACK$32$SBall_Joe_Shape_IndexedFaceSet_Primitive0"<br>
>> >>> which then modifies "Coordinate.point".<br>
>> >>><br>
>> >>> Regards,<br>
>> >>> Michalis<br>
>> >>><br>
>> >>> pon., 14 paź 2024 o 23:02 John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> napisaÅ‚(a):<br>
>> >>> ><br>
>> >>> > Michalis, see attached. .glb.  Can we get all three animations playing at the same time in the CGE viewer?  Instructions?<br>
>> >>> ><br>
>> >>> > Others, see below.<br>
>> >>> ><br>
>> >>> > I'll try getting the non-animated version of JinLOA4 into Blender.<br>
>> >>> ><br>
>> >>> > On Mon, Oct 14, 2024 at 10:28 AM Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>> wrote:<br>
>> >>> >><br>
>> >>> >> > bpy.ops.import_scene.x3d(filepath="JoeKick.x3d", axis_forward='Y', axis_up='Z')<br>
>> >>> >><br>
>> >>> >><br>
>> >>> >><br>
>> >>> >> This has to be wrong.<br>
>> >>> >><br>
>> >>> >> You want:<br>
>> >>> >><br>
>> >>> >><br>
>> >>> >><br>
>> >>> >> axis_forward='Z', axis_up='Y'<br>
>> >>> ><br>
>> >>> ><br>
>> >>> > I do what works.  Plus, if you import like the above, be sure to turn off +Y for .glb export.<br>
>> >>> >><br>
>> >>> >><br>
>> >>> >><br>
>> >>> >> Seems to me that you have to tell it what you want correctly.<br>
>> >>> >><br>
>> >>> >> Don't forget to try and set the host root coordinate system to be the same:<br>
>> >>> >><br>
>> >>> >> axis_forward='Z', axis_up='Y'<br>
>> >>> >><br>
>> >>> >> Unknown how X is defined, should be +X to model left, that is user/viewer +X toward right.<br>
>> >>> >><br>
>> >>> >> right.<br>
>> >>> ><br>
>> >>> ><br>
>> >>> > I don't know if there's other options for .glb.  Unless you can find something, uncheck +Y. up<br>
>> >>> >><br>
>> >>> >><br>
>> >>> >><br>
>> >>> >> Good Luck,<br>
>> >>> >><br>
>> >>> >> Joe<br>
>> >>> >><br>
>> >>> >> -----Original Message-----<br>
>> >>> >> From: John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>><br>
>> >>> >> Sent: Oct 14, 2024 6:22 AM<br>
>> >>> >> To: Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>>, Myeong Won Lee <<a href="mailto:myeongwonlee@gmail.com" target="_blank">myeongwonlee@gmail.com</a>><br>
>> >>> >> Subject: Re: JinLOA4.x3d skin/skeleton don't line up?<br>
>> >>> >><br>
>> >>> >><br>
>> >>> >><br>
>> >>> >> Apologies, apparently, I was loading them into Blender differently:<br>
>> >>> >><br>
>> >>> >> bpy.ops.import_scene.x3d(filepath="JoeKick.x3d", axis_forward='Y', axis_up='Z')<br>
>> >>> >><br>
>> >>> >> bpy.ops.import_scene.x3d(filepath="JinLOA4.x3d", axis_forward='Z', axis_up='Y')<br>
>> >>> >><br>
>> >>> >><br>
>> >>> >> This seems to be what works, as previously discussed.<br>
>> >>> >><br>
>> >>> >> importJin.py:bpy.ops.import_scene.x3d(filepath="JinLOA4.x3d", axis_forward='Y', axis_up='Z')<br>
>> >>> >> importJoe.py:bpy.ops.import_scene.x3d(filepath="JoeKick.x3d", axis_forward='Y', axis_up='Z')<br>
>> >>> >><br>
>> >>> >> Oops!<br>
>> >>> >><br>
>> >>> >> John<br>
>> >>> >><br>
>> >>> >> On Mon, Oct 14, 2024 at 7:58 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br>
>> >>> >>><br>
>> >>> >>> Hi guys.  I am very sorry, but there's a potential problem with the Humanoid archive, I was just loading in JinLOA4.x3d into Blender, with some minor modifications.  It looks like the skeleton and the skin don't line up.  skeleton is +Y up, Skin is +Z up.<br>
>> >>> >>><br>
>> >>> >>> Can you double check and correct the archives?<br>
>> >>> >>><br>
>> >>> >>> I'd mistrust my loader, but JoeKick (with modified TextureCoordinate) is loading OK.<br>
>> >>> >>><br>
>> >>> >>> Also, JinLOA4.x3d also has complaints from Castle Game Engine Re: coordinates.<br>
>> >>> >>><br>
>> >>> >>> No wonder I am confused.<br>
>> >>> >>><br>
>> >>> >>> It's probably important to get this right for the archives.<br>
>> >>> >>><br>
>> >>> >>> Thanks,<br>
>> >>> >>><br>
>> >>> >>> John<br>
>> >>> >><br>
>> >>> >><br>
</blockquote></div></div>