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

Remove "Blender ESCN exporter" page from docs #8196

Closed
tetrapod00 opened this issue Oct 8, 2023 · 2 comments · Fixed by #10064
Closed

Remove "Blender ESCN exporter" page from docs #8196

tetrapod00 opened this issue Oct 8, 2023 · 2 comments · Fixed by #10064
Labels
area:manual Issues and PRs related to the Manual/Tutorials section of the documentation enhancement

Comments

@tetrapod00
Copy link
Contributor

tetrapod00 commented Oct 8, 2023

Your Godot version:
4.1
Issue description:
The addon Godot Blender Exporter appears to be out of date and no longer officially supported. Exporting from Blender to Godot has been superseded by other workflows. I suggest removing the docs page for this addon entirely.

It's out of date:

  • The last commit was nearly 2 years ago
  • There is an issue that involves Blender 3.4 and Godot 4.X support. The apparent answer is that the preferred way is now to use GLTF import.
  • It is unclear if it even works in 4.x - the same issue reports it doesn't work in a 4.0 alpha. To me it is a bit beside the point if it compiles and functions in 4.x. It is a non-supported addon, with functionality that is officially supported elsewhere. There's no reason to be directing users to it via a docs page.

It's superseded by other functionality - the recommended way to export from Blender to Godot is either:

  • Export GLTF from Blender, import GLTF to Godot.
  • Directly import a .blend file (which implicitly does the above, with less manual control.

Anecdotally, I have seen one new Godot user try using this addon with 4.1, and they cited the "Up to date" marker to me in conversation (as an implicit reason for why they were using this addon).
image
The fact that this pages appears appears in the outline at the same level as "Importing 3D scenes" and has "Blender" in the title means that users are directed to this page rather than the more up to date supported methods.

Proposal:
Remove the page.

If after discussion the page should stay, I propose adding a paragraph that notes the lack of support and links to the current recommended methods.

URL to the documentation page (if already existing):
https://docs.godotengine.org/en/stable/tutorials/assets_pipeline/escn_exporter/index.html
URL to the addon:
https://github.com/godotengine/godot-blender-exporter

@Piralein Piralein added the area:manual Issues and PRs related to the Manual/Tutorials section of the documentation label Oct 10, 2023
@Uradamus
Copy link

By the looks of it, the "BetterCollada" Blender addon is equally abandoned but also still mentioned in several parts of the docs. The whole Assets Pipeline sections of the docs probably needs to be gone over at some point, as a lot of might be out-dated while still being marked as up-to-date for 4.1.

@tetrapod00
Copy link
Contributor Author

Tested with various Godot 4.x versions and Blender LTS versions. Used the current master godotengine/godot-blender-exporter@2394c7a.

I opened each Blender version, installed the addon per the directions in the readme, and exported the standard blender scene with a cube, a light, and a camera.

Godot 4.0.4 4.1.4 4.2.2 4.3
Blender 2.93.18 Shader error, otherwise okay. Shader error, otherwise okay. Shader error, otherwise okay. Shader error, otherwise okay.
Blender 3.3.21 Shader error, otherwise okay. Shader error, otherwise okay. Shader error, otherwise okay. Shader error, otherwise okay.
Blender 4.0 Python errors in blender, no file exported. Python errors in blender, no file exported. Python errors in blender, no file exported. Python errors in blender, no file exported.
Blender 4.2 Python errors in blender, no file exported. Python errors in blender, no file exported. Python errors in blender, no file exported. Python errors in blender, no file exported.

(Additionally, the Blender ESCN exporter is now considered a legacy addon since Blender 4.2, and the installation instructions in the repo are incorrect.)

Typical Godot Shader error The blender exporter creates a shader with a non-existent shader builtin, CLEARCOAT_GLOSS.
  85 |  
   86 |  
   87 |  ALBEDO = node0_bsdf_out0_albedo;
   88 |  SSS_STRENGTH = node0_bsdf_out1_sss_strength;
   89 |  SPECULAR = node0_bsdf_out3_specular;
   90 |  METALLIC = node0_bsdf_out2_metallic;
   91 |  ROUGHNESS = node0_bsdf_out4_roughness;
   92 |  CLEARCOAT = node0_bsdf_out5_clearcoat;
E  93->  CLEARCOAT_GLOSS = node0_bsdf_out6_clearcoat_gloss;
   94 |  NORMAL = node0_in20_normal;
   95 |  
   96 |  
   97 |  
   98 |  
   99 |  
  100 |  
  101 |  
  102 | }
  103 | 
  :93 - Unknown identifier in expression: 'CLEARCOAT_GLOSS'.
  Shader compilation failed.
Blender error in Blender 4.0
Python: Traceback (most recent call last):
  File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_godot\__init__.py", line 233, in execute
    return export_godot.save(self, context, **keywords)
  File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_godot\export_godot.py", line 325, in save
    exp.export()
  File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_godot\export_godot.py", line 276, in export
    self.export_scene()
  File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_godot\export_godot.py", line 220, in export_scene
    self.export_object(obj, root_gd_node)
  File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_godot\export_godot.py", line 130, in export_object
    exported_node = exporter(self.escn_file, self.config, obj,
  File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_godot\converters\mesh.py", line 45, in export_mesh_node
    mesh_id = mesh_exporter.export_mesh(escn_file, export_settings)
  File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_godot\converters\mesh.py", line 172, in export_mesh
    self.generate_surfaces(
  File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_godot\converters\mesh.py", line 285, in generate_surfaces
    surface.material = export_material(
  File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_godot\converters\material\material.py", line 52, in export_material
    resource_id = generate_material_resource(
  File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_godot\converters\material\material.py", line 134, in generate_material_resource
    export_script_shader(
  File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_godot\converters\material\script_shader\node_tree.py", line 520, in export_script_shader
    shader = parse_shader_node_tree(escn_file, export_settings,
  File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_godot\converters\material\script_shader\node_tree.py", line 459, in parse_shader_node_tree
    converter.parse_node_to_fragment()
  File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\addons\io_scene_godot\converters\material\script_shader\node_converters.py", line 585, in parse_node_to_fragment
    socket = self.bl_node.inputs[socket_name]
KeyError: 'bpy_prop_collection[key]: key "Subsurface" not found'
Blender error in Blender 4.2
Python: Traceback (most recent call last):
  File "C:\Users\admin\AppData\Roaming\Blender Foundation\Blender\4.2\scripts\addons\io_scene_godot\__init__.py", line 233, in execute
    return export_godot.save(self, context, **keywords)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\admin\AppData\Roaming\Blender Foundation\Blender\4.2\scripts\addons\io_scene_godot\export_godot.py", line 325, in save
    exp.export()
  File "C:\Users\admin\AppData\Roaming\Blender Foundation\Blender\4.2\scripts\addons\io_scene_godot\export_godot.py", line 276, in export
    self.export_scene()
  File "C:\Users\admin\AppData\Roaming\Blender Foundation\Blender\4.2\scripts\addons\io_scene_godot\export_godot.py", line 220, in export_scene
    self.export_object(obj, root_gd_node)
  File "C:\Users\admin\AppData\Roaming\Blender Foundation\Blender\4.2\scripts\addons\io_scene_godot\export_godot.py", line 130, in export_object
    exported_node = exporter(self.escn_file, self.config, obj,
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\admin\AppData\Roaming\Blender Foundation\Blender\4.2\scripts\addons\io_scene_godot\converters\mesh.py", line 45, in export_mesh_node
    mesh_id = mesh_exporter.export_mesh(escn_file, export_settings)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\admin\AppData\Roaming\Blender Foundation\Blender\4.2\scripts\addons\io_scene_godot\converters\mesh.py", line 172, in export_mesh
    self.generate_surfaces(
  File "C:\Users\admin\AppData\Roaming\Blender Foundation\Blender\4.2\scripts\addons\io_scene_godot\converters\mesh.py", line 285, in generate_surfaces
    surface.material = export_material(
                       ^^^^^^^^^^^^^^^^
  File "C:\Users\admin\AppData\Roaming\Blender Foundation\Blender\4.2\scripts\addons\io_scene_godot\converters\material\material.py", line 52, in export_material
    resource_id = generate_material_resource(
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\admin\AppData\Roaming\Blender Foundation\Blender\4.2\scripts\addons\io_scene_godot\converters\material\material.py", line 144, in generate_material_resource
    mat = export_as_spatial_material(material_rsc_name, material)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\admin\AppData\Roaming\Blender Foundation\Blender\4.2\scripts\addons\io_scene_godot\converters\material\material.py", line 89, in export_as_spatial_material
    mat["metallic_specular"] = val("Specular")
                               ^^^^^^^^^^^^^^^
  File "C:\Users\admin\AppData\Roaming\Blender Foundation\Blender\4.2\scripts\addons\io_scene_godot\converters\material\material.py", line 80, in val
    return surf.inputs[key].default_value
           ~~~~~~~~~~~^^^^^
KeyError: 'bpy_prop_collection[key]: key "Specular" not found'

Based on these findings, I would recommend removing the pages for at least Godot 4.3+, since the addon does not work with the latest LTS version of Blender. Arguably it should still be removed for all Godot 4.x versions, since it is not a supported addon and it still produces some shader errors in Godot 4.0+. However, it works somewhat for Blender versions before 4.0, so I can see the reasoning for keeping these pages in earlier Godot 4.x versions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:manual Issues and PRs related to the Manual/Tutorials section of the documentation enhancement
Projects
None yet
3 participants