summaryrefslogtreecommitdiff
path: root/scene/animation
AgeCommit message (Collapse)Author
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-23Merge pull request #61826 from guilhermefelipecgs/fix_leakRémi Verschelde
Fix ObjectDB instances leaked on state machine when editor closes
2022-06-23Merge pull request #62337 from reduz/respect-disabled-animation-tracksRémi Verschelde
Respect disabled animation tracks
2022-06-23Respect disabled animation tracksreduz
Fixes #25537, supersedes #60509
2022-06-23Fix animation reset on savereduz
Old (prototype) name was left in code Supersedes #60565
2022-06-23improved way of getting method track keysSilc 'Tokage' Renew
2022-06-20Clean up Hash Functionsreduz
Clean up and do fixes to hash functions and newly introduced murmur3 hashes in #61934 * Clean up usage of murmur3 * Fixed usages of binary murmur3 on floats (this is invalid) * Changed DJB2 to use xor (which seems to be better)
2022-06-19Remove argument option for the `remove_animation` that no longer existsHaoyu Qiu
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-06-11Add suffixes to all nodes and resourcesFireForge
2022-06-08Fix ObjectDB instances leaked on state machine when editor closesGuilherme Felipe de C. G. da Silva
2022-05-24Remove configuration warning from AnimationPlayerSnailRhymer
Remove warning about animations in different libraries having the same name, since shared names are fine. Also fix missing vformat argument when setting the name of an animation to one that does conflict with an animation in the same library.
2022-05-24Merge pull request #61106 from snailrhymer/animation-library-fixesRémi Verschelde
Fix errors and improve UX relating to new animation libraries
2022-05-23Fix typos with codespellRémi Verschelde
Using codespell 2.2-dev from current git.
2022-05-20Add a new HashSet templatereduz
* Intended to replace RBSet in most cases. * Optimized for iteration speed
2022-05-19Use range iterators for RBSet in most casesAaron Record
2022-05-19Add dedicated macros for property name extractionHaoyu Qiu
* Replace case-by-case extraction with PNAME & GNAME * Fix group handling when group hint begins with property name * Exclude properties that are PROPERTY_USAGE_NO_EDITOR * Extract missing ADD_ARRAY*, ADD_SUBGROUP* macros
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-17Fix errors and improve UX relating to new animation librariesSnailRhymer
- Fix a bug causing an error message when a scene containing an AnimationPlayer with a reset track is saved, by correctly referencing the temporary "default" library. - Make library dropdown in new animation window assign correct library when creating an animation. - Similarly allow choice of library when duplicating animation. - Make library dropdown default to library of currently selected animation. - Make library dropdown show when exactly one library exists, and it isn't [Global]. Include [Global] on the dropdown in this case (will be newly created if dialog is confirmed). - When appending (x) to avoid New Anim name collisions, correctly check target library instead of [Global]. - Add parentheses when appending x when duplicating animations in the library editor, for consistency. - Change titles and prompts to be distinct in name/rename/duplicate dialiogs. - Fix bug in OprionButton.get_selectable_item(true) when last is not selectable. - Fix issues where animation wasn't found on deletion/rename by correctly prepending library name. - Remove an extraneous print_line from animation_track_editor. - Add messages to errors when an animation isn't found.
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-05Fix error spam when tweened node leaves treekobewi
2022-05-03Merge pull request #60627 from aaronfranke/rename-elementsRémi Verschelde
Rename Transform2D and Basis `elements` to `columns` and `rows` respectively
2022-05-03Merge pull request #60714 from Calinou/typedef-remove-refRémi Verschelde
Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`
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-05-02Improvements of state machineGuilherme Felipe
- Open the menu to add new animation nodes by dragging the transitions to empty areas and automatically connecting them. - Adds box selection to the state machine. - Add feature to group/ungroup selected nodes in a "sub" state machine. - Add start/end node by default. In addition, add new color to these nodes to differentiate then. - Add tooltip for transitions to show the connection "from -> to". - Add new "type" of transition line when multiple transitions are grouped. - Add popup to connect nodes in sub state machine. - Add dialog to select which nodes can be deleted when they are grouped. - Add classes: AnimationNodeStartState AnimationNodeEndState EditorAnimationMultiTransitionEdit - Implements disabled transition API Changes: - Now it's posible to add transitions between state machines, `AnimationNodeStateMachine::add_transition` will works with relative path, this means you can use it like this `add_transition("Idle", "Walk", tr)` or `add_transition("Idle", "StateMachine/Shoot)`.
2022-05-01Improve Tween infinite loop detectionkobewi
2022-04-30Simplify Callable error text methodskobewi
2022-04-29Rename Basis "elements" to "rows"Aaron Franke
2022-04-29Rename Transform2D "elements" to "columns"Aaron Franke
2022-04-28Merge pull request #60247 from ScottVMariotte/AnimationTree_atEndFixRémi Verschelde
Replaced `loops_current` with `end_loop` in `AnimationNodeStateMachinePlayback`
2022-04-28Miscellaneous Tween fixesHaoyu Qiu
2022-04-27Merge pull request #60331 from KoBeWi/tween_static()Rémi Verschelde
2022-04-27Merge pull request #60349 from TokageItLab/fix-rotated-root-motion-viewRémi Verschelde
2022-04-27Merge pull request #60440 from ↵Rémi Verschelde
KoBeWi/Ȑ̶̛̘̻̹̪͙̇̍̔͐̊̆̏̏̓̈́̉͌͘Ȩ̸͉̳̘̬̣̩̽̈́́̅̈́̕͝ͅS̷͓̮̙̪̪̺̭̰̓̎̌́͗͆͌̈́̒͋͊͘Ë̷̡̨͔̻͈̺͓̘͉́̏̍̓͋̋͠T̶̠̙͍̱̠̱̟͎͇̬̥̞̘͛̔̄̏̆̽̄̌̅͝ͅ
2022-04-24fixed rotated RootMotionView grid glitchSilc 'Tokage' Renew
2022-04-22Fix RESET animation not being createdkobewi
2022-04-18fixed init value in root motion rotationSilc 'Tokage' Renew
2022-04-17Make Tween.interpolate_value() statickobewi
2022-04-17Discontinue exp map in blendingSilc 'Tokage' Renew
2022-04-14Replaced loops_current with end_loopScottVMariotte
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-11Implement Animation Librariesreduz
* Instead of containing single animations, AnimationPlayer now contains libraries. * Libraries, in turn, contain the animations. This paves the way for implementing the possibility of importing scenes as animation libraries, finally allowing to import animations separate from the 3D models. Missing (will be done on separate PRs): * Make it possible to import scenes (dae/fbx/gltf) as animation libraries. * Make it possible for AnimationTree to import animation libraries on its own, so it does not rely on AnimationPlayer for everything.
2022-04-10Make blend animation to use ResetTrack as default valueSilc 'Tokage' Renew
2022-04-02Merge pull request #59415 from KoBeWi/tween_time()Rémi Verschelde
2022-03-29Add get_total_elapsed_time() to Tweenkobewi