-
-
Notifications
You must be signed in to change notification settings - Fork 20k
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 animation 3D transform track, replace by loc/rot/scale tracks. #53689
Remove animation 3D transform track, replace by loc/rot/scale tracks. #53689
Conversation
@@ -0,0 +1,47 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<svg |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For a future date run the svg processing tools.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/InterpolationTest Tested using.
Playing the scale animation track causes a crash.
Crash Log
CrashHandlerException: Program crashed
Engine version: Godot Engine v4.0.dev.custom_build (26628fdd1bf599a08ca24de778b434ade986dee9)
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[0] Node3D::set_scale (C:\chibifire\godot-3d-transform\scene\3d\node_3d.cpp:326)
[1] AnimationPlayer::_animation_update_transforms (C:\chibifire\godot-3d-transform\scene\animation\animation_player.cpp:934)
[2] AnimationPlayer::_animation_process (C:\chibifire\godot-3d-transform\scene\animation\animation_player.cpp:1036)
[3] AnimationPlayer::seek (C:\chibifire\godot-3d-transform\scene\animation\animation_player.cpp:1395)
[4] AnimationPlayerEditor::_seek_value_changed (C:\chibifire\godot-3d-transform\editor\plugins\animation_player_editor_plugin.cpp:1033)
[5] AnimationPlayerEditor::_animation_key_editor_seek (C:\chibifire\godot-3d-transform\editor\plugins\animation_player_editor_plugin.cpp:1078)
[6] AnimationPlayerEditor::_animation_selected (C:\chibifire\godot-3d-transform\editor\plugins\animation_player_editor_plugin.cpp:303)
[7] CallableCustomMethodPointer<AnimationPlayerEditor,int>::call (C:\chibifire\godot-3d-transform\core\object\callable_method_pointer.h:97)
[8] Callable::call (C:\chibifire\godot-3d-transform\core\variant\callable.cpp:51)
[9] Object::emit_signal (C:\chibifire\godot-3d-transform\core\object\object.cpp:1100)
[10] Object::emit_signal (C:\chibifire\godot-3d-transform\core\object\object.cpp:1155)
[11] OptionButton::_select (C:\chibifire\godot-3d-transform\scene\gui\option_button.cpp:223)
[12] call_with_variant_args_helper<VisualScript,int,0> (C:\chibifire\godot-3d-transform\core\variant\binder_common.h:227)
[13] CallableCustomMethodPointer<OptionButton,int>::call (C:\chibifire\godot-3d-transform\core\object\callable_method_pointer.h:97)
[14] Callable::call (C:\chibifire\godot-3d-transform\core\variant\callable.cpp:51)
[15] Object::emit_signal (C:\chibifire\godot-3d-transform\core\object\object.cpp:1100)
[16] Object::emit_signal (C:\chibifire\godot-3d-transform\core\object\object.cpp:1155)
[17] PopupMenu::activate_item (C:\chibifire\godot-3d-transform\scene\gui\popup_menu.cpp:1382)
[18] PopupMenu::gui_input (C:\chibifire\godot-3d-transform\scene\gui\popup_menu.cpp:399)
[19] call_with_variant_args<VisualScriptEditor,Ref<InputEvent> const &> (C:\chibifire\godot-3d-transform\core\variant\binder_common.h:336)
[20] Callable::call (C:\chibifire\godot-3d-transform\core\variant\callable.cpp:51)
[21] Object::emit_signal (C:\chibifire\godot-3d-transform\core\object\object.cpp:1100)
[22] Object::emit_signal (C:\chibifire\godot-3d-transform\core\object\object.cpp:1155)
[23] Window::_window_input (C:\chibifire\godot-3d-transform\scene\main\window.cpp:917)
[24] call_with_variant_args<VisualScriptEditor,Ref<InputEvent> const &> (C:\chibifire\godot-3d-transform\core\variant\binder_common.h:336)
[25] Callable::call (C:\chibifire\godot-3d-transform\core\variant\callable.cpp:51)
[26] DisplayServerWindows::_dispatch_input_event (C:\chibifire\godot-3d-transform\platform\windows\display_server_windows.cpp:1850)
[27] Input::_parse_input_event_impl (C:\chibifire\godot-3d-transform\core\input\input.cpp:615)
[28] Input::flush_buffered_events (C:\chibifire\godot-3d-transform\core\input\input.cpp:835)
[29] DisplayServerWindows::process_events (C:\chibifire\godot-3d-transform\platform\windows\display_server_windows.cpp:1575)
[30] OS_Windows::run (C:\chibifire\godot-3d-transform\platform\windows\os_windows.cpp:641)
[31] widechar_main (C:\chibifire\godot-3d-transform\platform\windows\godot_windows.cpp:163)
[32] _main (C:\chibifire\godot-3d-transform\platform\windows\godot_windows.cpp:187)
[33] main (C:\chibifire\godot-3d-transform\platform\windows\godot_windows.cpp:199)
[34] __scrt_common_main_seh (d:\a01\_work\6\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
[35] BaseThreadInitThunk
-- END OF BACKTRACE --
================================================================
I can't recreate the crash, but the motions in the sample for cubic and for stepwise scale don't play. |
* `Animation.TYPE_TRANSFORM3D` track is gone. * Added POSITION_3D, ROTATION_3D, SCALE_3D tracks. * GLTF2, Collada, FBX importers will only import the track types found. * Skeleton3D bone poses are now Pos/Rot/Scale, pose matrix removed. * AnimationPlayer and AnimationTree animate these tracks separately, only when found. * Removed BakeReset code, is useless with these changes. This is the first in a series of commits designed to make the animation system in Godot more useful, which includes: * Better compatibility with Autodesk products * Better reusability of animations across models (including retargeting). * Proper animation compression. * etc. *Note* GLTF2 animation saving went broken with this PR, needs to be fixed in a subsequent one.
26628fd
to
ec19ed3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Test cases work. 🌮
Thanks! |
TrackNodeCache::PropertyAnim pa; | ||
pa.subpath = leftover_path; | ||
pa.object = resource.is_valid() ? (Object *)resource.ptr() : (Object *)child; | ||
pa.special = SP_NONE; | ||
pa.owner = p_anim->node_cache[i]; | ||
if (false && p_anim->node_cache[i]->node_2d) { | ||
if (false && node_cache->node_2d) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@fire Dead code
Supersedes #53473
Animation.TYPE_TRANSFORM3D
track is gone.New tracks in the animation editor:
This is the first in a series of commits designed to make the animation system in Godot more useful, which includes:
Upcoming PRs after this: Track import behavior selection, un-linking of rest/pose matrices in bones (bones becoming pose only), animation compression.
Note GLTF2 animation saving went broken with this PR, needs to be fixed in a subsequent one.