summaryrefslogtreecommitdiff
path: root/scene/animation
AgeCommit message (Collapse)Author
2022-07-25Code quality: Fix header guards consistencyRémi Verschelde
Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
2022-07-25Merge pull request #63219 from reduz/implement-vector4-projectionRémi Verschelde
2022-07-23Implement Vector4, Vector4i, Projectionreduz
Implement built-in classes Vector4, Vector4i and Projection. * Two versions of Vector4 (float and integer). * A Projection class, which is a 4x4 matrix specialized in projection types. These types have been requested for a long time, but given they were very corner case they were not added before. Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity. **Q**: Why Projection and not Matrix4? **A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
2022-07-21Fix incorrect expression base in ↵João Pedro São Gregorio Silva
`AnimationNodeStateMachinePlayback::_check_advance_condition`
2022-07-16refactor sync in AnimationTreeSilc Renew
2022-06-29Merge pull request #62510 from MinusKube/animation-reset-crashRémi Verschelde
Fix animation player crashing when caching disabled tracks
2022-06-29Fix animation player crashing when caching disabled tracksMinusKube
2022-06-29fixed Pingpong animation get snaging on the edge 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-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