I’m trying to find a good workflow for importing assets from Houdini into Godot and I’m stuck on this.
I have this (super highend) model in Houdini and I’m exporting to GLTF.
It roundtrips fine back into Houdini. It also opens fine in Blender and Unity(gross).
Hey thanks, but I’ve looked right through that and haven’t had much luck.
I reckon it’s a scale issue but Im not sure how to fix it.
One weird thing is, that if I drag the model into the scene, it looks okay but if I update the model, it breaks. It also always looks broken in the import view.
I can only tell you what I would do in Blender. You have a cube and 4 cylinders. In Blender when you create these they will all be separate objects. What I normally do before I export something like this is select all the objects then do Object->Join so in the Outliner it now shows as 1 object. Then I do 2 other things. I first make sure the object is sitting centered on the x and y axis (in Blender Z is up ), and then on the Z axis I’ll make sure that the bottom of the object is resting at zero, like it’s on the ground. I do Object->Apply->All Transforms. This takes the location and rotation and zeros them out and sets the scale to 1, 1, 1 This way there’s no confusion about what you see in the Blender compared to what you get in a game engine after importing. Then the last thing I usually do, especially if I’m joining a bunch of parts together like this, is set the 3D cursor in Blender right on origin at 0,0,0 (its usually there by default) and then choose Object-Set Origin->Origin to 3D cursor. This way if you have to scale it in Godot or another game engine, it scales up from the ground like you’d expect, and not from its center and half goes in the ground and the half above. So after all that’s done I export out as glb and drop it into my assets/models folder in my project, and I hardly ever have any problems geometry wise. Everything is apple to apples. Exporting textures is a whole other story but this is how I do geometry.
What you want to do in Houdini is basically the same kind of steps I explained, so that the gltf exporter doesnt get confused or the Godot importer doesnt get confused. I wish I could explain that part but I don’t use Houdini. Hope this gives you a little bit of insight. What’s breaking your import is in one of the steps I mentioned.
Thanks for the response. I’ve made sure the object is zeroed out and the transforms are clean. This is one of the things Houdini actually handles pretty well.
It seems like a bug to me, since the model opens in other applications and in fact is fine if it’s dragged into a scene but not if any settings are adjusted in the import window.
I’m sure what’s happening is that Godot is importing it as a “scene” and not just one model. Your box and your cylinders are coming in as individual meshes each with their own transforms, that’s why they’re getting moved around like that.
They need to be joined together as one individual mesh with one origin. I really don’t think is a Godot bug that occurs on something that simple and hasn’t revealed itself until now, but I could be wrong.
Oh wait I’m looking closer now, you have bones in there. The bones are controlling the position of your wheels. Something is happening during the export that is resetting those bone positions like that. Do you have any animation sequences created? I need to import one of my animated models into Godot and mess around with it and see what it does by default. I haven’t gotten into that area yet because the simple game I’m working on right now is just static 3D models.
Unless I’m mistaken, those three orange wireframe meshes that are showing in the Godot screenshot you posted are bones, one is controlling the body of the vehicle and the two others are controlling the wheels.
Yeah this is pretty strange, just trying on another model. This is a single mesh skinned to leg bones with a clean parent transform.
It’s fine at the start but breaks if I tweak any import setttings.
It looks messed up in the dedicated Import window. But only with the skinning applied…
I’ll keep trying some things and post back here if I find a bit of a workaround.
This looks like a bug. I tested with the latest Godot preview (4.4-dev6), and it’s working correctly.
When opening in 4.3 you can see there’s a problem with the rest pose by toggling “Show Rest Only” on the Skeleton3D. It shows the mesh collapsing, like the example @Petey posted.
The GLTF is using matrix for node transforms, the issue was fixed here:
Glad someone tracked it down, this is good to know because I use GLTF from Blender exclusively. I spent the last 9 months working on a small game engine project and figuring out the GLTF pipeline before moving to Godot.