Commit Graph

149 Commits

Author SHA1 Message Date
jaime cifuentes
e71560bdff Added compiler note and visual warnings to state machine transitions if the transition rule has logic but the flag for automatic rule based condition is set
#jira UE-170338
#rb jose.villarroel

[CL 26665714 by jaime cifuentes in ue5-main branch]
2023-07-28 03:19:20 -04:00
thomas sarkanen
a3f5998775 Fix node bindings not being present for nodes that are drag-dropped
#jira UE-190695
#rb jose.villarroel

[CL 26568590 by thomas sarkanen in ue5-main branch]
2023-07-25 06:18:59 -04:00
jose villarroel
6dc26fd3fb Added "Update If Active" flag to property access, to allow freezing specific properties during blend out.
[REVIEW] [at]Thomas.Sarkanen

[CL 26478895 by jose villarroel in ue5-main branch]
2023-07-19 21:32:37 -04:00
thomas sarkanen
57122faf0a AnimNext params in Anim BPs
Added a new anim node: AnimNext Parameters. This injects parameters into the AnimNext stack for all leafwards nodes.

Added a new way of binding to parameters on anim nodes.
- Added indirection to UAnimGraphNode_Base to allow different 'binding types' to be authored by deriving from UAnimGraphNodeBinding
- Added new binding type for AnimNext parameters
- Moved existing binding code (inc UI widget creation) into UAnimGraphNodeBinding_Base
- Binding types can be selected on a per-node or per-anim BP basis

Reworked FParamStack API a little
- Allow for better error checking when pushing/popping stack layers. Pushed layers can now only be subsequently popped by passing in the handle of the pushed layer.
- Standalone layers are now wrapped in an opaque handle rather than returning a unique ptr
- GetParamData APIs now perform more involved type checking, allowing derived object types & type conversions to be implemented

Improved parameter type sandboxing for automated tests. If running low-level type tests while execution was happening on another thread, the editor could crash because of invalidating already-existing types.

Lots of other small fixes to get workflows nicer and end-to-end functionality working

#rb Nicholas.Frechette,Jaime.Cifuentes,Jurre.deBaare

[CL 26455905 by thomas sarkanen in ue5-main branch]
2023-07-19 04:36:34 -04:00
jose villarroel
0403d0b457 Blend Stack:
-Added initial support for blend stack graphs.
-Changed Max Active Blends to be a compile time fixed value for blend stack.
-review-25906631 [at]Aaron.Cox, [at]Thomas.Sarkanen, [at]Samuele.Rigamonti

[CL 26167901 by jose villarroel in ue5-main branch]
2023-06-21 18:41:47 -04:00
roland munguia
93720bd718 Fixes for automatic transitions rules and added the feature to manually set their trigger time.
- Added support for explicitly specifying the transitions trigger time when using state machine automatic transition rules.
- Fixed state machine automatic transitions rules not triggering from a looping animation.
- Fixed state machine automatic transitions rules that have their next state as a conduit state triggering before reaching the end of the animation.
- Consolidate all the ways to check if asset in asset player is looping into a single api call, IsLooping().
- Added getter for a AssetPlayer's DeltaTimeRecord.
- Added warning when a asset player is using looping animations with automatic rule based transitions.

#jira UE-171299, UE-180844, UE-185174

[CL 25877647 by roland munguia in ue5-main branch]
2023-06-08 14:19:19 -04:00
roland munguia
7dc3bb57a2 State machine entry, exit, fully blended in, and fully blended out anim node functions.
Additional changes:
- Added warnings for users using anim state events since we want to push towards using the state node functions.
- Added support for anim nodes to show any bound functions and not have them hardcoded.
- Added base context type for FAnimExecutionContext.
- Now users can specify the string for the default binding name of a function member reference in a BP by using the "DefaultBindingName" metadata tag. This will give the functionality to avoid having the default binding name be "NewFunction" and instead use the input string from the metadata tag.

#jira UE-184572
#rb Thomas.Sarkanen, jose.villarroel, aaron.cox
#preflight 646e6a836c2a2532b1f91efd

[CL 25631664 by roland munguia in ue5-main branch]
2023-05-25 18:06:26 -04:00
daniel holden
6ccf5e03c5 Added experimental DeadBlending animation graph node.
#jira UE-184569
#rb keith.yerek
#rb danny.champman
#preflight 646e0593f85111e06c8ff205

[CL 25601022 by daniel holden in ue5-main branch]
2023-05-24 09:01:31 -04:00
daniel holden
63ba9cb8d7 [Backout] - CL25578176
[FYI] daniel.holden
Original CL Desc
-----------------------------------------------------------------
Added experimental DeadBlending animation graph node.

#preflight 646c76414422ba05f47337a2
#rb keith.yerek, danny.chapman
#jira UE-184569

[CL 25579640 by daniel holden in ue5-main branch]
2023-05-23 07:48:35 -04:00
daniel holden
e4e1a07f7d Added experimental DeadBlending animation graph node.
#preflight 646c76414422ba05f47337a2
#rb keith.yerek, danny.chapman
#jira UE-184569

[CL 25579599 by daniel holden in ue5-main branch]
2023-05-23 07:47:40 -04:00
roland munguia
215a63cdc8 Disabled option to duplicate a state from the tree view.
This option is being disabled for now since it has never worked properly and it causes a engine crash.

#jira UE-185146
#preflight 6465161f2d446eac96e858f2

[CL 25512536 by roland munguia in ue5-main branch]
2023-05-17 14:09:37 -04:00
kirill zorin
de8db5ff76 Converting ARO-facing raw pointers to TObjectPtr ahead of raw pointer ARO API deprecation.
#rb zousar.shaker
#rb markus.breyer
#rb robert.manuszewski

#preflight 646391406b1406b54ab15460

[CL 25489627 by kirill zorin in ue5-main branch]
2023-05-16 10:52:49 -04:00
aaron cox
4c630fd4e5 Output warnings when the LegIK node is missing definitions or contains references to invalid bones.
[REVIEW] [at]Jose.Villarroel
#jira UE-184701
#preflight 6453f383023fe5d3ad3b0560

[CL 25363353 by aaron cox in ue5-main branch]
2023-05-05 21:38:18 -04:00
David Corral
70e2623a31 [PoseDriver]
- Removed bOnlyDriveSelectedBones bool. Now checks if OnlyDriveBones list has items.
- Fixed issue with OnlyDriveBones with None entry.
- Fixed indentations and improved comments.
#preflight 642b43731d19c0312a6d301c

[CL 24901507 by David Corral in ue5-main branch]
2023-04-03 17:36:03 -04:00
David Corral
dac5a5fa27 [PoseDriver]
- Added EditConditions for OnlyDriveBones, bOnlyDriveSelectedBones and Median properties.
- Rearranged Properties

#jira UE-181415, UE-181411
#preflight 64231547051bec41cda13799

[CL 24821515 by David Corral in ue5-main branch]
2023-03-28 12:49:06 -04:00
Thomas Sarkanen
502797ca50 Animation Curve Runtime & Editor Improvements
Runtime notes:
- Removes 'smart name' usage across the animation systems.
- Changed curve blending from a uniform array (sized per skeleton) to a sparse array of sorted named values. Blends and other combiners are performed using a dual iteration 'tape merge'.
- Skeleton curves are no longer guaranteed to cover all curve names that can be found at runtime.

Editor notes:
- Curve metadata (flags, bone links etc.) is still present on the skeleton, but can also now exist on a skeletal mesh
- Curve metadata (for morph targets) is still populated on import
- Curves can now be used arbitrarily at runtime

New features:
- New Find/Replace dialog that allows for batch-replacing curves and notifies across all of a project's assets
- New curve debugger tab in various Persona editors that allows for viewing curve values live. This also now allows viewing curves for specific pose watches.
- Pose watches now output curve tracks to the Rewind Debugger

#rb Jurre.deBaare,Nicholas.Frechette,Sara.Schvartzman,Helge.Mathee,Kiaran.Ritchie,Jaime.Cifuentes,Martin.Wilson,Keith.Yerex,Andrean.Franc (and more!)
#jira UE-167776
#jira UE-173716
#jira UE-110407
#preflight 63fc98c81206d91a2bc3ab90
#preflight 63f3ad4f81646f1f24c240c2

[CL 24421496 by Thomas Sarkanen in ue5-main branch]
2023-02-27 07:20:58 -05:00
halfdan ingvarsson
6b43bffa1d After five years, it's probably time to remove the 'experimental' flag from the Constraint anim node.
#rnx

[CL 24253438 by halfdan ingvarsson in ue5-main branch]
2023-02-16 04:18:31 -05:00
jaime cifuentes
a20a6e0027 Added validation and visual error functionality to AnimNode_SkeletalControlBase, which can be used to check referenced bones and show errors on the AnimGraph nodes that use them (so it is clear if the setup does not work due to a bone missing)
#rb thomas.sarkanen
#jira UE-160111
#preflight 63b85453c927e34482895de4

[CL 23599353 by jaime cifuentes in ue5-main branch]
2023-01-06 12:16:12 -05:00
dave jones2
9bab3a527e Misc Blueprint changes:
* Added overloads for FindSpecializedConversionNode and SearchForAutocastFunction that don't use output parameters. There are several instances in the engine where dummy variables are used to get around this.
* Updated the Message_ functions to use template parameter packing. The arguments are forwarded to the underlying FCompilerResultsLog, if one exists. This allows us to use tokenized messages.
* Changed several functions in FCompilerResultsLog to use the coding standard's naming convention. Specifically, arguments need to start with an uppercase letter.

#jira none
#preflight 639778dc2960b732208492ae
#rb phillip.kavan

[CL 23482483 by dave jones2 in ue5-main branch]
2022-12-12 15:50:51 -05:00
Bryan sefcik
80f80e7a25 Updated the underlying types for regular and namespaced enums.
#jira
#preflight 638e6d479549ddaa2822be9a

[CL 23421568 by Bryan sefcik in ue5-main branch]
2022-12-06 19:43:59 -05:00
henrik karlsson
b5164ac775 Fixes to make modules compile with IWYU. We've added to IWYU toolchain so it compiles "orphaned" headers which does not have a owning cpp file. This identified lots of headers that couldn't be compiled by themselves (or if they were to included first)
Change consist of only forward declaration and additional includes

#preflight 63789c1de30d438849c48188
#rb none

[CL 23218412 by henrik karlsson in ue5-main branch]
2022-11-21 03:22:23 -05:00
samuele rigamonti
22bd7b7dc3 motion matching - deprecating UPoseSearchSequenceMetaData
#review-23144984 @aaron.cox
#preflight 63751be40c74adb48b0264ba
#preflight 63751f883248425305884639

[CL 23157119 by samuele rigamonti in ue5-main branch]
2022-11-16 12:46:06 -05:00
benjamin jillich
a6ef0d5b7f [UE-136096] Relinking transitions in anim graph state machines
[UE-168360] User can create a transition from a state into the entry state

* Relinking multiple transitions (transition nodes at once) when none of the transition nodes is selected.
* Selective relinking in case a subset of the transition nodes on a transitions are selected.
* Special case handling for transitions from entry state (they don't have a transition node connected).
* Drawing circle indicator around the arrow head in case the mouse cursor is approaching the transition.
* Hovering the arrow head of a transition highlights it by filling the circle with solid orange color and turning the arrow black.
* Ending the relink operation in empty space or the entry node will cancel the relink operation.
* Fixed bug that prevents creating new transitions ending in an entry state.

#jira https://jira.it.epicgames.com/browse/UE-136096
#jira https://jira.it.epicgames.com/browse/UE-168360
#preflight 636a169963037c10262bc421

[CL 23025287 by benjamin jillich in ue5-main branch]
2022-11-08 04:09:22 -05:00
Thomas Sarkanen
d9c2b172f7 Skeleton compatibility improvements
Skeleton compatibility is now bi-directional. Specifying a compatible skeleton A -> B now implies B -> A.
Skeleton compatibility is now an editor-only concern. The runtime will attempt to do the 'best it can' via name -> name mappings. Only the editor will prevent assigning incompatible skeletons in (e.g.) asset pickers etc.
Skeleton compatibility checks in editor can now be disabled in the editor preferences (and each asset picker now has a checkbox option in its view settings that allows for quick access to this).

Moves FSkeletonRemapping to its own file (which is now private).
Skeleton remappings are now generated on demand on worker threads just before animation decompression and stored in a registry, guarded by FRWScopeLock for thread-safety.

Fixed some anim BP compiler edge cases where asset references on pins were not getting preloaded correctly, causing skeletons to be erroneously reported as missing.

Exposed the current asset registry filter in SAssetView so that menu extensions can access it (and use it to provide context)

#jira UE-166054
#jira UE-167355
#rb Jurre.deBaare,John.vanderBerg
#preflight 635902602e6690262afa86f9

[CL 22878911 by Thomas Sarkanen in ue5-main branch]
2022-11-01 06:25:59 -04:00
henrik karlsson
b5b86c796c This change is a strategical submit for a coming change that removes lots of includes in headers that are included by many files. This change contains adding of includes in files that previously got those includes transitively from other inclkudes
#preflight 6355d4940313c24974b2107b
#rb none

[CL 22783162 by henrik karlsson in ue5-main branch]
2022-10-26 12:57:32 -04:00