summaryrefslogtreecommitdiff
path: root/scene/animation/animation_tree.cpp
AgeCommit message (Collapse)Author
2022-07-29Remove Signal connect bindsJuan Linietsky
Remove the optional argument p_binds from `Object::connect` since it was deprecated by Callable.bind(). Changed all uses of it to Callable.bind()
2022-07-26add position track normalization & post process key value for retargetSilc Renew
2022-07-16refactor sync in AnimationTreeSilc Renew
2022-06-28Add AnimationTree Advance ExpressionsSaracenOne
Allows specifying an expression as a condition for state machine transitions. This gives much greater flexibility for creating complex state machines. By directly interfacing with the script code, it is possible to create complex animation advance condition for switching between states. Ensure assigning AnimationTreeStateMachineTransition base expression node in editor is relative to current AnimationTree node. Allow setting an expression base node on the AnimationTree itself. Co-Authored-By: reduz <reduzio@gmail.com>
2022-06-23Merge pull request #61885 from TokageItLab/fix-method-seekRémi Verschelde
Improved way of getting MethodTrack keys
2022-06-23Respect disabled animation tracksreduz
Fixes #25537, supersedes #60509
2022-06-23improved way of getting method track keysSilc 'Tokage' Renew
2022-06-18Remove duplicate assignment of AnimationNode::State.validAndreas Raddau
In AnimationTree::_process_graph, the State.valid variable is set to true. A few lines later, it's set again. Probably a copy/paste mistake. This commit removes the second assignment.
2022-05-19Use range iterators for RBSet in most casesAaron Record
2022-05-18Merge pull request #60774 from TokageItLab/root-seek-modeRémi Verschelde
Fixed broken root motion calculation in internal process of `AnimationBlendTree` such as `NodeOneShot`
2022-05-16Replace most uses of Map by HashMapreduz
* Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
2022-05-12Add a new HashMap implementationreduz
Adds a new, cleaned up, HashMap implementation. * Uses Robin Hood Hashing (https://en.wikipedia.org/wiki/Hash_table#Robin_Hood_hashing). * Keeps elements in a double linked list for simpler, ordered, iteration. * Allows keeping iterators for later use in removal (Unlike Map<>, it does not do much for performance vs keeping the key, but helps replace old code). * Uses a more modern C++ iterator API, deprecates the old one. * Supports custom allocator (in case there is a wish to use a paged one). This class aims to unify all the associative template usage and replace it by this one: * Map<> (whereas key order does not matter, which is 99% of cases) * HashMap<> * OrderedHashMap<> * OAHashMap<>
2022-05-09Fixed delta & Implement selection of whether or not to seek rootSilc Renew
2022-05-03Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`Hugo Locurcio
These typedefs don't save much typing compared to the full `Ref<Resource>` and `Ref<RefCounted>`, yet they sometimes introduce confusion among new contributors.
2022-04-27Merge pull request #60440 from ↵Rémi Verschelde
KoBeWi/Ȑ̶̛̘̻̹̪͙̇̍̔͐̊̆̏̏̓̈́̉͌͘Ȩ̸͉̳̘̬̣̩̽̈́́̅̈́̕͝ͅS̷͓̮̙̪̪̺̭̰̓̎̌́͗͆͌̈́̒͋͊͘Ë̷̡̨͔̻͈̺͓̘͉́̏̍̓͋̋͠T̶̠̙͍̱̠̱̟͎͇̬̥̞̘͛̔̄̏̆̽̄̌̅͝ͅ
2022-04-22Fix RESET animation not being createdkobewi
2022-04-18fixed init value in root motion rotationSilc 'Tokage' Renew
2022-04-17Discontinue exp map in blendingSilc 'Tokage' Renew
2022-04-14Fixed value track blend animation without RESETSilc 'Tokage' Renew
2022-04-13Merge pull request #60093 from TokageItLab/reset-blendRémi Verschelde
Make blend animation to use ResetTrack as default value
2022-04-12Merge pull request #59531 from TokageItLab/fix-init-root-motionRémi Verschelde
Fixed initialization of TRS Track in blend tree for root motion
2022-04-10Make blend animation to use ResetTrack as default valueSilc 'Tokage' Renew
2022-03-28String: Remove TTR and DTR defines in non-tools buildRémi Verschelde
This ensures we don't use TTR in runtime code, as it's specifically meant to source translations for the editor.
2022-03-26Fixed initialization of TRS Track in blend tree for root motionSilc 'Tokage' Renew
2022-03-16Fix blend animation to solve TRS track bug & blend order inconsistencySilc 'Tokage' Renew
2022-03-09Remove VARIANT_ARG* macrosreduz
* Very old macros from the time Godot was created. * Limited arguments to 5 (then later changed to 8) in many places. * They were replaced by C++11 Variadic Templates. * Renamed methods that take argument pointers to have a "p" suffix. This was used in some places and not in others, so made it standard. * Also added a dereference check for Variant*. Helped catch a couple of bugs.
2022-02-15Use `switch` consistently in `_notification` (`scene` folder)Rémi Verschelde
2022-02-04String: Add contains().Anilforextra
2022-01-29Make AnimationTree delta argument force double in coreSilc 'Tokage' Renew
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-10Merge pull request #55572 from aaronfranke/ci-doubleRémi Verschelde
2021-12-09Add a double-precision editor build to CIAaron Franke
2021-12-09Replace String comparisons with "", String() to is_empty()Nathan Franke
Also: - Adds two stress tests to test_string.h - Changes to .empty() on std::strings
2021-11-23Rename `remove()` to `remove_at()` when removing by indexLightning_A
2021-11-12Add a minimal template build to CIAaron Franke
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-11-09Merge pull request #53819 from TokageItLab/re-implement-ping-pongRémi Verschelde
Reimplement ping-pong animation and reverse playback
2021-11-03Rename `PROPERTY_USAGE_NOEDITOR` to `PROPERTY_USAGE_NO_EDITOR`Hugo Locurcio
This is consistent with other constants that include `NO`, such as `PROPERTY_HINT_COLOR_NO_ALPHA`.
2021-11-03reimplement ping-pongSilc 'Tokage' Renew
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-13Remove REST transform influence in skeleton bonesreduz
* Animations and Skeletons are now pose-only. * Rest transform is kept as reference (when it exists) and for IK * Improves 3D model compatibility (non uniform transforms will properly work, as well as all animations coming from Autodesk products).
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-09-11Fixed seeking behavior of property track with discrete interpolationSilc 'Tokage' Renew
2021-08-22Replace BIND_VMETHOD by new GDVIRTUAL syntaxreduz
* New syntax is type safe. * New syntax allows for type safe virtuals in native extensions. * New syntax permits extremely fast calling. Note: Everything was replaced where possible except for `_gui_input` `_input` and `_unhandled_input`. These will require API rework on a separate PR as they work different than the rest of the functions. Added a new method flag METHOD_FLAG_OBJECT_CORE, used internally. Allows to not dump the core virtuals like `_notification` to the json API, since each language will implement those as it is best fits.
2021-08-09Some work on double supportAaron Franke
2021-08-09Use doubles for time in animation codeAaron Franke
2021-07-28Use bullet points in the editor instead of dashes where relevantHugo Locurcio
2021-07-25Use const references where possible for List range iteratorsRémi Verschelde
2021-07-23Use C++ iterators for Lists in many situationsAaron Franke