Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

blender 3.4 #418

Open
ghost opened this issue Jan 13, 2023 · 20 comments
Open

blender 3.4 #418

ghost opened this issue Jan 13, 2023 · 20 comments

Comments

@ghost
Copy link

ghost commented Jan 13, 2023

Hi

Is Blender 3.4 supported by the exporter?

@Calinou
Copy link
Member

Calinou commented Jan 13, 2023

Is Blender 3.4 supported by the exporter?

Try it and see 🙂

This exporter isn't actively maintained, so we can't guarantee it'll work with recent Blender versions. Most people are using glTF export nowadays.

@ghost
Copy link
Author

ghost commented Jan 13, 2023

I don't understand why you make an exporter especially to make working with Godot easier and then ... not maintain it anymore?

So if I find problems with Blender 3.4, they won't be fixed too?

@Calinou
Copy link
Member

Calinou commented Jan 13, 2023

I don't understand why you make an exporter especially to make working with Godot easier and then ... not maintain it anymore?

Blender's glTF export has improved a lot since this exporter was created. Also, using a standard format should be preferred over a Godot-specific format when possible.

So if I find problems with Blender 3.4, they won't be fixed too?

Issues may be fixed by volunteer contributors, but interest in this add-on has generally decreased over the years. This means there's no ETA for fixing issues in this exporter.

@ghost
Copy link
Author

ghost commented Jan 13, 2023

It doesn't work in Godot 4.0 beta 12
After exporting into a godot project and clicking the escn file, I get "error opening scene"

@YuriSizov
Copy link

YuriSizov commented Jan 13, 2023

@blender-girl Godot 4 has native .blend file support, and in general the preferred way to work with Godot and Blender is to use GLTF (which .blend file support internally relies on). This custom file format is for the most part deprecated.

@ghost
Copy link
Author

ghost commented Jan 13, 2023

OK but I still don't understand.
If Godot 4 has .blend file support , why should I export it to GLTF?

How can I load a .blend file directly into Godot 4? Are there documentation for this?

@Calinou
Copy link
Member

Calinou commented Jan 13, 2023

If Godot 4 has .blend file support , why should I export it to GLTF?

Not everyone working on your project may have Blender installed.

How can I load a .blend file directly into Godot 4? Are there documentation for this?

Specify a path to a Blender executable (3.0 or later) in the Editor Settings, then drag-and-drop .blend files in your project like you'd do with glTF files. There's no specific manual page for it yet, but it'll be mentioned in the documentation eventually.
Edit: Done: godotengine/godot-docs#6603

@ghost
Copy link
Author

ghost commented Jan 14, 2023

Specify a path to a Blender executable (3.0 or later) in the Editor Settings, then drag-and-drop .blend files in your project like you'd do with glTF files. There's no specific manual page for it yet, but it'll be mentioned in the documentation eventually. Edit: Done: godotengine/godot-docs#6603

Why does Godot needs to know my Blender executable? It just can read the .blend file because this file has all information?
I can't understand this :(

@YuriSizov
Copy link

YuriSizov commented Jan 14, 2023

@blender-girl .blend is a proprietary format and Godot doesn't know how to parse it. Even if we were to reverse-engineer it and learn how to read it, that would be prone to breakage, because Blender can change that format at any point as they see fit without any obligation to 3rd party tools.

So the way it works is Godot uses your Blender installation to open .blend and save it as GLTF and import GLTF, which it knows how to. This all happens seamlessly, in the background. You just use .blend directly in the Godot editor. Unity, for example, does the same (but via FBX, I think).

@ghost
Copy link
Author

ghost commented Jan 14, 2023

proprietary format you say?!?
Blender is open source, including the file format, the code to read and write .blend files is all there and FREE...
Blender's goal is to be open source in anything including any file formats, released under GNU GPL.
You really know what you are talking about?

Detailed .blend file structure, including python code to read it, from blender.org

https://developer.blender.org/diffusion/B/browse/master/doc/blender_file_format/

@conradax
Copy link

conradax commented Jan 14, 2023

@blender-girl

proprietary format you say?!?

I think by "proprietary" he means there's no official .blend file specification, as you can why see here.
Since there's no specification, Godot developers need to take time to read blender's code to match with it,
which is basically make another wheel. 😢

If you want to import .blend files into Godot engine, then you must have the Blender installed to inspect or edit it, right?
So I think it make sense to specify a Blender path in Godot, and let Godot call Blender to convert format.
Thus Godot developers don't have to deal with .blend file format changes, they can save time to do more valuable things to improve Godot.

BTW I don't recommend using .blend file directly in Godot (or any other game engines).
Because ultimately Blender is an asset creation tool. .blend files contains a lot of unnecessary data for game engines.
(eg. mechanism bones in character rig)


Detailed .blend file structure, including python code to read it, from blender.org
https://developer.blender.org/diffusion/B/browse/master/doc/blender_file_format/

As it says this is for "blend-file-format used by a certain version of blender 2.5x"


Edit:
Sorry I didn't read carefully, I thought it about Godot loading .blend as binary.
But my point is the same:
It takes efforts to write a general purpose exporter.
We already have glTF.

@Calinou
Copy link
Member

Calinou commented Jan 14, 2023

@blender-girl I have to remind you that we have a Code of Conduct. Please stay constructive.

BTW I don't recommend using .blend file directly in Godot (or any other game engines).
Because ultimately Blender is an asset creation tool. .blend files contains a lot of unnecessary data for game engines.
(eg. mechanism bones in character rig)

Regardless of which scene format you use as a source, exported projects will never contain the source files directly (or even exported glTF files). Instead, the PCK will contain Godot's own mesh and animation formats.

@maksad1git
Copy link

maksad1git commented Mar 12, 2023

Hi

Is Blender 3.4 supported by the exporter?

If u want Godot to support .blend import using Blender 3.x for example 3.4.1, u have to:

@Calinou
Copy link
Member

Calinou commented Mar 13, 2023

@maksad1git There's no need to install Blender 3.0.0 before installing Blender 3.4.1. You can install Blender 3.4.1 directly 🙂

@maksad1git
Copy link

maksad1git commented Mar 13, 2023

@maksad1git There's no need to install Blender 3.0.0 before installing Blender 3.4.1. You can install Blender 3.4.1 directly 🙂

Tested double time man. Not working for me without 3.0 after the first time path changing. If i set path to 3.4, it just does nothing. After changing to 3.0 it works, and also from now i can change to any version above 3.0 and it still works.

@Uradamus
Copy link

It's a real shame this got abandoned. It worked really well for 3.x and since I've been having endless troubles with the GLTF path for getting animation libraries with custom rigs working I was hoping this might have been an alternative route to get those in. Oh well, it was nice while it lasted, guess another GSoC project bites the dust, heh.

@Jason0214
Copy link
Collaborator

It's a real shame this got abandoned. It worked really well for 3.x and since I've been having endless troubles with the GLTF path for getting animation libraries with custom rigs working I was hoping this might have been an alternative route to get those in. Oh well, it was nice while it lasted, guess another GSoC project bites the dust, heh.

I feel sorry to hear this. As people stated above "interest in this add-on has generally decreased over the years" (you can partially blame this on the poor maintenance, I take that).
For the issue you are having, does the native .blend file support (#418 (comment)) help?

@Uradamus
Copy link

Considering the "native" .blend support is just a wrapper for launching Blender in the background and exporting a GLTF using the default settings, it wouldn't make any difference at all. By the looks of it GLTF and OBJ are the only viable formats with this gone and the BetterCollada addon in an equal state of abandonment.

So I guess I'm mostly abandoning Godot for now, at least for my 3D projects, until the asset pipeline is improved. It's a real shame as I do love the engine over all, but I've wasted over a week and a half now trying to get the animation library setup to work with a custom rig that doesn't match well to the humanoid profile in the bone map setup. And the GLTF importer keeps mangling the rig, leaving out several bones and adding a few that don't belong.

And due to the nature of the project, remaking an old PSX game using ripped assets from the original game, I can't really share the files that are having issues without putting Godot's foundation in a weird legal gray area, so making a ticket about it is pretty pointless as it will get ignored without example files for the problem. Sorry to dump on you, I know this isn't the place for this. Just frustrated over this one area you expect to be rock solid for 3D games to even be possible to be a total mess that derails projects and wastes weeks of effort. It makes me want to consider stuff like UPBGE just so I can avoid having to deal with import/export issues, lol.

@dodgyville
Copy link

dodgyville commented Oct 12, 2023 via email

@Uradamus
Copy link

It seems the visual issues I was experiencing is something that is already known. It seems the issue is that GLTF doesn't offer any way to record bone lengths, since not all 3D packages support the concept of bone length, so they opted to just not include it at all. So the bones are technically all there, but several of them at the end of their chains are 0 length. Also what appears to be extra bones added is just Godot's (arguably incorrect) way of visualizing bones with multiple disconnected children, such as you might have with the collar bones and thighs. So even though some spots look like 3 bones, they are still just the one bone with multiple tails going off to each child. So even though they look ugly and incorrect, they should still function properly.

But this was one area that I recall your add-on being a lot better, since the rigs we brought in through it all looked correct with proper lengths for all the bones back in 3.x. Either the Blender GLTF exporter needs an option to generate leaf bones on export (something they've had a ticket for for ages now and don't seem interested in addressing) or maybe some sort of script setup can be done that could dump armature info from Blender and the output can be used to reconstruct the armature to look correct on a reimported file. But doesn't seem to be a priority for anyone to fix on either side, so I'm guessing the current state will persist for some time.

Still no idea why the animation library refuses to pair up with characters with identical copies of the same custom rig though. That will still take time to figure out, might actually have to go digging through all the old tickets about the new animation features for 4.x and maybe even go through the source code to make sense of what the heck is happening. There is basically zero documentation or tutorial support on the custom rig use case, since everything was done around the idea of using Mixamo apparently. But I just don't have the energy or drive for it anymore, at least not just yet, still pretty burnt out from all this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants