godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
88.67k stars 20.11k forks source link

The editor quits after deleting BoneMap #92940

Closed JekSun97 closed 1 month ago

JekSun97 commented 2 months ago

Tested versions

Godot 4.3 beta1 I haven't tested other versions

System information

Godot v4.3.beta1 - Windows 10.0.19045 - GLES3 (Compatibility) - Radeon RX 560 Series (Advanced Micro Devices, Inc.; 31.0.14001.45012) - Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz (4 Threads)

Issue description

I noticed two errors when working with BoneMap, one error appears in the output, the other crashes the editor.

The first occurs when we save BoneMap in a file manager: err

The second occurs when we delete the saved BoneMap and open the import window, the editor crashes and terminates the work, while the Profile in BoneMap should not be empty, but have some kind of profile in it

https://github.com/godotengine/godot/assets/130399274/64d9c218-0d07-4ee0-aa32-7e9e39a72ad7

Steps to reproduce

  1. Open the fbx file from the project, create a new BoneMap for the skeleton
  2. Create a new profile for this BoneMap so that it is not empty
  3. Save this BoneMap in the project (+1 error in output)
  4. delete it in the file manager and open the fbx file again from the first step, many errors will be displayed in the output, and the editor will exit

Minimal reproduction project (MRP)

testskinandbones.zip

AThousandShips commented 2 months ago

Possibly related:

JekSun97 commented 2 months ago

This is what is output when you click on fbx after deleting BoneMap err2

matheusmdx commented 2 months ago

Tested with latest master (5833f597) and i can confirm the crash, here the errors + backtrace:

ERROR: Cannot open file 'res://new_bone_map.tres'.
   at: (scene\resources\resource_format_text.cpp:1362)
ERROR: Failed loading resource: res://new_bone_map.tres. Make sure resources have been imported by opening the project in the editor at least once.
   at: (core\io\resource_loader.cpp:282)
ERROR: ConfigFile parse error at res://Player.fbx.import:37: Can't load resource at path: 'res://new_bone_map.tres'..
   at: ConfigFile::_parse (core\io\config_file.cpp:304)
ERROR: Cannot open file 'res://new_bone_map.tres'.
   at: (scene\resources\resource_format_text.cpp:1362)
ERROR: Failed loading resource: res://new_bone_map.tres. Make sure resources have been imported by opening the project in the editor at least once.
   at: (core\io\resource_loader.cpp:282)
ERROR: ConfigFile parse error at res://Player.fbx.import:37: Can't load resource at path: 'res://new_bone_map.tres'..
   at: ConfigFile::_parse (core\io\config_file.cpp:304)
ERROR: Cannot open file 'res://new_bone_map.tres'.
   at: (scene\resources\resource_format_text.cpp:1362)
ERROR: Failed loading resource: res://new_bone_map.tres. Make sure resources have been imported by opening the project in the editor at least once.
   at: (core\io\resource_loader.cpp:282)
ERROR: ConfigFile parse error at res://Player.fbx.import:37: Can't load resource at path: 'res://new_bone_map.tres'..
   at: ConfigFile::_parse (core\io\config_file.cpp:304)
ERROR: FATAL: Condition "!exists" is true.
   at: HashMap<class StringName,class Variant,struct HashMapHasherDefault,struct HashMapComparatorDefault<class StringName>,class DefaultTypedAllocator<struct HashMapElement<class StringName,class Variant> > >::operator [] (C:\Users\Matheus\Downloads\Godot Source\core/templates/hash_map.h:538)

================================================================
CrashHandlerException: Program crashed
Engine version: Godot Engine v4.3.beta.custom_build (5833f597865c773fae3ee09fc4e31d4a243f812d)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[0] HashMap<StringName,Variant,HashMapHasherDefault,HashMapComparatorDefault<StringName>,DefaultTypedAllocator<HashMapElement<StringName,Variant> > >::operator[] (C:\Users\Matheus\Downloads\Godot Source\core\templates\hash_map.h:538)
[1] EditorSceneFormatImporterUFBX::import_scene (C:\Users\Matheus\Downloads\Godot Source\modules\fbx\editor\editor_scene_importer_ufbx.cpp:83)
[2] ResourceImporterScene::pre_import (C:\Users\Matheus\Downloads\Godot Source\editor\import\3d\resource_importer_scene.cpp:2786)
[3] SceneImportSettingsDialog::open_settings (C:\Users\Matheus\Downloads\Godot Source\editor\import\3d\scene_import_settings.cpp:735)
[4] FileSystemDock::_select_file (C:\Users\Matheus\Downloads\Godot Source\editor\filesystem_dock.cpp:1237)
[5] FileSystemDock::_tree_activate_file (C:\Users\Matheus\Downloads\Godot Source\editor\filesystem_dock.cpp:1282)
[6] call_with_variant_args_helper<FileSystemDock> (C:\Users\Matheus\Downloads\Godot Source\core\variant\binder_common.h:309)
[7] call_with_variant_args<FileSystemDock> (C:\Users\Matheus\Downloads\Godot Source\core\variant\binder_common.h:419)
[8] CallableCustomMethodPointer<FileSystemDock>::call (C:\Users\Matheus\Downloads\Godot Source\core\object\callable_method_pointer.h:104)
[9] Callable::callp (C:\Users\Matheus\Downloads\Godot Source\core\variant\callable.cpp:58)
[10] Object::emit_signalp (C:\Users\Matheus\Downloads\Godot Source\core\object\object.cpp:1220)
[11] Node::emit_signalp (C:\Users\Matheus\Downloads\Godot Source\scene\main\node.cpp:3885)
[12] Object::emit_signal<> (C:\Users\Matheus\Downloads\Godot Source\core\object\object.h:936)
[13] Tree::gui_input (C:\Users\Matheus\Downloads\Godot Source\scene\gui\tree.cpp:3954)
[14] Control::_call_gui_input (C:\Users\Matheus\Downloads\Godot Source\scene\gui\control.cpp:1829)
[15] Viewport::_gui_call_input (C:\Users\Matheus\Downloads\Godot Source\scene\main\viewport.cpp:1561)
[16] Viewport::_gui_input_event (C:\Users\Matheus\Downloads\Godot Source\scene\main\viewport.cpp:1790)
[17] Viewport::push_input (C:\Users\Matheus\Downloads\Godot Source\scene\main\viewport.cpp:3250)
[18] Window::_window_input (C:\Users\Matheus\Downloads\Godot Source\scene\main\window.cpp:1685)
[19] call_with_variant_args_helper<Window,Ref<InputEvent> const &,0> (C:\Users\Matheus\Downloads\Godot Source\core\variant\binder_common.h:304)
[20] call_with_variant_args<Window,Ref<InputEvent> const &> (C:\Users\Matheus\Downloads\Godot Source\core\variant\binder_common.h:419)
[21] CallableCustomMethodPointer<Window,Ref<InputEvent> const &>::call (C:\Users\Matheus\Downloads\Godot Source\core\object\callable_method_pointer.h:104)
[22] Callable::callp (C:\Users\Matheus\Downloads\Godot Source\core\variant\callable.cpp:58)
[23] Callable::call<Ref<InputEvent> > (C:\Users\Matheus\Downloads\Godot Source\core\variant\variant.h:876)
[24] DisplayServerWindows::_dispatch_input_event (C:\Users\Matheus\Downloads\Godot Source\platform\windows\display_server_windows.cpp:3510)
[25] DisplayServerWindows::_dispatch_input_events (C:\Users\Matheus\Downloads\Godot Source\platform\windows\display_server_windows.cpp:3481)
[26] Input::_parse_input_event_impl (C:\Users\Matheus\Downloads\Godot Source\core\input\input.cpp:774)
[27] Input::flush_buffered_events (C:\Users\Matheus\Downloads\Godot Source\core\input\input.cpp:1053)
[28] DisplayServerWindows::process_events (C:\Users\Matheus\Downloads\Godot Source\platform\windows\display_server_windows.cpp:2978)
[29] OS_Windows::run (C:\Users\Matheus\Downloads\Godot Source\platform\windows\os_windows.cpp:1686)
[30] widechar_main (C:\Users\Matheus\Downloads\Godot Source\platform\windows\godot_windows.cpp:181)
[31] _main (C:\Users\Matheus\Downloads\Godot Source\platform\windows\godot_windows.cpp:206)
[32] main (C:\Users\Matheus\Downloads\Godot Source\platform\windows\godot_windows.cpp:220)
[33] WinMain (C:\Users\Matheus\Downloads\Godot Source\platform\windows\godot_windows.cpp:234)
[34] __scrt_common_main_seh (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
[35] <couldn't map PC to fn name>
-- END OF BACKTRACE --
================================================================