summaryrefslogtreecommitdiff
path: root/scene/animation/animation_player.cpp
AgeCommit message (Collapse)Author
2021-10-25Refactored Node3D rotation modesreduz
* Made the Basis euler orders indexed via enum. * Node3D has a new rotation_order property to choose Euler rotation order. * Node3D has also a rotation_mode property to choose between Euler, Quaternion and Basis Exposing these modes as well as the order makes Godot a lot friendlier for animators, which can choose the best way to interpolate rotations. The new *Basis* mode makes the (exposed) transform property obsolete, so it was removed (can still be accessed by code of course).
2021-10-16Implement Animation Blend Shape Tracksreduz
* New track type BLEND_SHAPE * Blend shapes are imported via this new track type * Processing is more optimized (no longer relies on variants) * Modified the Blend Shape API in MeshInstance3D to use indices rather than StringNames (more optimizes) * Promo: Fixed a small bug in gizmo updating in Node3D that affected performance Dedicated BlendShape tracks are required for both optimization and eventually implementing them in animation compression.
2021-10-12Remove animation 3D transform track, replace by loc/rot/scale tracks.reduz
* `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.
2021-10-11Revert "Implement reverse playback and ping-pong loop in AnimationPlayer and ↵Juan Linietsky
NodeAnimation"
2021-10-09implement ping-pong loop in animationTokage
Co-authored-by: Chaosus <chaosus89@gmail.com>
2021-10-04GDScript completion: Handle quote style ad-hoc to remove editor dependencyRémi Verschelde
`core` and `scene` shouldn't depend on `editor`, so they can't query this style setting in `get_argument_options`. But we can handle it after the fact in GDScript's completion code. Also cleans up a couple extra unused invalid includes in `core`.
2021-09-30Use range iterators for `Map`Lightning_A
2021-09-15Fixed Animation Playback Track not seeking properlyEspeute Clement
Fixes #38093.
2021-08-13Style: Cleanup code using `text_editor/completion/use_single_quotes`Rémi Verschelde
2021-08-09Some work on double supportAaron Franke
2021-08-09Use doubles for time in animation codeAaron Franke
2021-07-25Use const references where possible for List range iteratorsRémi Verschelde
2021-07-23Use C++ iterators for Lists in many situationsAaron Franke
2021-07-20Merge pull request #50206 from groud/undoredo_increase_args_countRémi Verschelde
Increase the number of arguments accepted by UndoRedo methods
2021-07-18Optimize StringName usagereduz
* Added a new macro SNAME() that constructs and caches a local stringname. * Subsequent usages use the cached version. * Since these use a global static variable, a second refcounter of static usages need to be kept for cleanup time. * Replaced all theme usages by this new macro. * Replace all signal emission usages by this new macro. * Replace all call_deferred usages by this new macro. This is part of ongoing work to optimize GUI and the editor.
2021-07-06Increase the number of arguments accepted by UndoRedo methodsGilles Roudière
2021-06-30Fix editor suffixes and degrees conversionreduz
* Functions to convert to/from degrees are all gone. Conversion is done by the editor. * Use PROPERTY_HINT_ANGLE instead of PROPERTY_HINT_RANGE to edit radian angles in degrees. * Added possibility to add suffixes to range properties, use "min,max[,step][,suffix:<something>]" example "0,100,1,suffix:m" * In general, can add suffixes for EditorSpinSlider Not covered by this PR, will have to be addressed by future ones: * Ability to switch radians/degrees in the inspector for angle properties (if actually wanted). * Animations previously made will most likely break, need to add a way to make old ones compatible. * Only added a "px" suffix to 2D position and a "m" one to 3D position, someone needs to go through the rest of the engine and add all remaining suffixes. * Likely also need to track down usage of EditorSpinSlider outside properties to add suffixes to it too.
2021-06-19Rename `instance()`->`instantiate()` when it's a verbLightning_A
2021-06-17Add PROPERTY_USAGE_NONE and use itAaron Franke
2021-06-04Rename Quat to QuaternionMarcel Admiraal
2021-06-04Disable Skeleton3D when compiling without 3DAaron Franke
Make animation code not depend on Skeleton3D or even Node3D
2021-06-03Rename Animation TYPE_TRANSFORM to TYPE_TRANSFORM3DAaron Franke
2021-06-03Rename Transform to Transform3D in coreAaron Franke
2021-03-12Fixes small typos and grammar correctionAnshul7sp1
2021-02-18Refactor Process Modereduz
Implements https://github.com/godotengine/godot-proposals/issues/1835#issuecomment-727186192 * PauseMode is now ProcessMode, containing the following states: ``` PROCESS_MODE_INHERIT, // same as parent node PROCESS_MODE_NORMAL, // process only if not paused PROCESS_MODE_PAUSE_ONLY, // process only if paused PROCESS_MODE_ALWAYS, // process always PROCESS_MODE_DISABLED, // never process ``` * NOTIFICATION_PAUSED and NOTIFICATION_UNPAUSED are received effectively when the node is paused and unpaused (not any longer when pause mode is set in SceneTree). * Renamed some nodes that used ProcessMode/process_mode to specify a callback type to ProcessCallback to avoid clashes.
2021-02-10Removed _change_notifyreduz
-For inspector refresh, the inspector now detects if a property change by polling a few times per second and then does update the control if so. This process is very cheap. -For property list refresh, a new signal (property_list_changed) was added to Object. _change_notify() is replaced by notify_property_list_changed() -Changed all objects using the old method to the signal, or just deleted the calls to _change_notify(<property>) since they are unnecesary now.
2021-02-10Merge pull request #45845 from qarmin/cppcheck_scene_2Rémi Verschelde
Initialize class variables with default values in scene/ [2/2]
2021-02-09Fix animation reset-on-save on inactive scene tabsPedro J. Estébanez
2021-02-09Initialize class variables with default values in scene/ [2/2]Rafał Mikrut
2021-02-07Initialize class variables with default values in scene/ [1/2]Rafał Mikrut
2021-01-01Update copyright statements to 2021Rémi Verschelde
Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
2020-12-29Fix missed renamings from empty() to is_empty()Rémi Verschelde
Those were missed in #44401 or added by later PRs.
2020-12-20Add animation reset track featurePedro J. Estébanez
As a bonus, to have consistency between use Beziers and create insert tracks, use Beziers also gets a default via editor settings that is used when the confirmation dialog is disabled, instead of just falling back to creating non-Bezier tracks.
2020-11-07Reorganized core/ directory, it was too fatty alreadyreduz
-Removed FuncRef, since Callable makes it obsolete -Removed int_types.h as its obsolete in c++11+ -Changed color names code
2020-10-10Fix premature end of animation playing backwardsPedro J. Estébanez
2020-10-06Added a more helpful error message when there is no current animation for ↵Duroxxigar
the animation player
2020-07-03Merge pull request #40063 from RandomShaper/clean_blend_timesRémi Verschelde
Ignore (clean) blend times for non-existent animations
2020-07-02Ignore blend times for inexistent animationsPedro J. Estébanez
2020-07-02Merge pull request #36879 from ThakeeNathees/animation-autocomplete-bug-fixRémi Verschelde
Fix: animation autocomplete bug fixed
2020-06-05Restore capture caches when missingTomasz Chabora
2020-05-14Style: Enforce braces around if blocks and loopsRémi Verschelde
Using clang-tidy's `readability-braces-around-statements`. https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2020-05-14Style: Enforce separation line between function definitionsRémi Verschelde
I couldn't find a tool that enforces it, so I went the manual route: ``` find -name "thirdparty" -prune \ -o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \ -o -name "*.glsl" > files perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files) misc/scripts/fix_style.sh -c ``` This adds a newline after all `}` on the first column, unless they are followed by `#` (typically `#endif`). This leads to having lots of places with two lines between function/class definitions, but clang-format then fixes it as we enforce max one line of separation. This doesn't fix potential occurrences of function definitions which are indented (e.g. for a helper class defined in a .cpp), but it's better than nothing. Also can't be made to run easily on CI/hooks so we'll have to be careful with new code. Part of #33027.
2020-05-14Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde
Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
2020-05-10Style: clang-format: Disable AllowShortCaseLabelsOnASingleLineRémi Verschelde
Part of #33027.
2020-05-04Revert "Emit signal when animation ends by seek"Rémi Verschelde
This reverts commit bf1cc116e15ec155c1dfff06bd02d2f1dfc21ee0. This needs more discussion to avoid breaking some users' expectations. See #38086 for arguments.
2020-04-29[Core] Rename linear_interpolate to lerpAaron Franke
2020-04-22Emit signal when animation ends by seekvolzhs
2020-04-02Replace more occurrences of NULL with nullptrRémi Verschelde
2020-04-02Replace NULL with nullptrlupoDharkael
2020-03-27Renamed 2D and 3D nodes to make their types explicitJuan Linietsky
Fixes #30736.