738 Commits

Author SHA1 Message Date
daren cheng
9290f2859b [Backout] - CL36474486
Requested backout by Thomas due to CL36699932 backout.

[FYI] Thomas.Sarkanen
Original CL Desc
-----------------------------------------------------------------
Fixed rewiring animation blueprint nodes occasionally not picking up changes correctly

When rewiring nodes of the same type (say two sequence players each playing different animations), depending on the combination of default values and the current value in the running instance, re-instancing could potentially end up not giving the user what they expect (say, playing a different animation). This is because nodes are given numeric property names during compilation, and distinct nodes can be considered 'the same' depending on how nodes are rewired and processed. When it comes to reinstancing, the state of the node in the existing instance can end up 'winning', despite the node's info coming from a different source.

The solution to this is to uniquely name each node in an invariant way according to the source UEdGraphNode that they come from. In this case, to preserve name table size, I've chosen to use the hash of the node's GUID so the resulting FName can continue to just use a numeric extension rather than a whole new entry.

#jira UE-221734
[RN] Fixed rewiring animation blueprint nodes occasionally not picking up changes correctly
#rb Nicholas.Frechette
#tests PIE, Anim BP Compile

[CL 36766134 by daren cheng in 5.5 branch]
2024-10-01 21:03:16 -04:00
daren cheng
0d41d8058c [Backout] - CL36699932
Causes issues in motion matching samples with parameters not updating correctly. Possibly due to blend stack graphs with same name.

[FYI] Thomas.Sarkanen
Original CL Desc
-----------------------------------------------------------------
Fixed compilation non-determinism in animation blueprints

Name-generation code in UAnimGraphNode_Base::GetDescriptiveCompiledName is taking the hash of a node's GUID, expecting it to be stable, but the calling code was passing the duplicated node, not the original, so the GUID varied each time. This fix passes the 'source' node instead for stability. Any additional duplicates are then handled as before by the NetNameMap incrementing the name's number.

#jira UE-226025
#rb Nicholas.Frechette, samuele.rigamonti
#rnx
#tests PIE, Anim BP Compile

[CL 36766127 by daren cheng in 5.5 branch]
2024-10-01 21:03:10 -04:00
thomas sarkanen
109064b52e Fixed compilation non-determinism in animation blueprints
Name-generation code in UAnimGraphNode_Base::GetDescriptiveCompiledName is taking the hash of a node's GUID, expecting it to be stable, but the calling code was passing the duplicated node, not the original, so the GUID varied each time. This fix passes the 'source' node instead for stability. Any additional duplicates are then handled as before by the NetNameMap incrementing the name's number.

#jira UE-226025
#rb Jurre.deBaare
#rnx

[CL 36764471 by thomas sarkanen in 5.5 branch]
2024-10-01 20:42:36 -04:00
thomas sarkanen
aac5cc6685 Fix crash in 'call function from anim graph' node BP menu population
Also fix double-entry in the context menu coming from parent/child classes

#jira UE-219402
#rb Jurre.deBaare
[RN] Fix crash in 'call function from anim graph' node BP menu population

[CL 36757252 by thomas sarkanen in 5.5 branch]
2024-10-01 19:28:10 -04:00
lucas dower
802d981977 Fix copy-pasting shared transition rules not behaving correctly
* This fixes an issue where copy-pasting a shared transition rule will not display the graph in the 'My Blueprint' tab and will result in operations such as Find References not taking into account all graphs.

#jira UE-215302
#rb Thomas.Sarkanen

[CL 36757223 by lucas dower in 5.5 branch]
2024-10-01 19:27:42 -04:00
thomas sarkanen
47fb8991c6 Fixed rewiring animation blueprint nodes occasionally not picking up changes correctly
When rewiring nodes of the same type (say two sequence players each playing different animations), depending on the combination of default values and the current value in the running instance, re-instancing could potentially end up not giving the user what they expect (say, playing a different animation). This is because nodes are given numeric property names during compilation, and distinct nodes can be considered 'the same' depending on how nodes are rewired and processed. When it comes to reinstancing, the state of the node in the existing instance can end up 'winning', despite the node's info coming from a different source.

The solution to this is to uniquely name each node in an invariant way according to the source UEdGraphNode that they come from. In this case, to preserve name table size, I've chosen to use the hash of the node's GUID so the resulting FName can continue to just use a numeric extension rather than a whole new entry.

#jira UE-221734
[RN] Fixed rewiring animation blueprint nodes occasionally not picking up changes correctly
#rb Nicholas.Frechette

[CL 36747294 by thomas sarkanen in 5.5 branch]
2024-10-01 17:42:47 -04:00
lucas dower
010c223b99 Fix K2Node_AnimGetter title not updating on state rename
#jira UE-208531
#rb thomas.sarkanen

[CL 36746631 by lucas dower in 5.5 branch]
2024-10-01 17:37:24 -04:00
danny chapman
39d6f44261 Hide the PhysicsControlViewer behind a CVar p.RigidBodyWithControl.EnableControlSetViewer which is disable by default. This also renames the relevant classes to clarify that this is a viewer, not an editor, and also to avoid duplicating relevant modular feature names through the code.
#rb nick.brett
#jira UE-203507

[CL 36424385 by danny chapman in 5.5 branch]
2024-09-19 05:22:38 -04:00
jaime cifuentes
85aef43130 Fix for animation blueprints incorrectly showing animation graphs using animation layers default shared group in my blueprint.
#rb Thomas.Sarkanen
#jira UE-222911

[CL 36329986 by jaime cifuentes in 5.5 branch]
2024-09-17 06:21:40 -04:00
jose villarroel
6fbf2c7fe4 Added sorting of Anim Graph Node input pins based on Display Priority
[REVIEW] [at]thomas.sarkanen, [at]samuele.rigamonti
[FYI] Paddy.Walker
#rb Thomas.Sarkanen

[CL 36324123 by jose villarroel in 5.5 branch]
2024-09-16 21:20:10 -04:00
jose villarroel
1c1abaaa7a [Backout] - CL36313777
[FYI] jose.villarroel
Original CL Desc
-----------------------------------------------------------------
Added sorting of Anim Graph Node input pins based on Display Priority
[REVIEW] [at]thomas.sarkanen, [at]samuele.rigamonti
[FYI] Paddy.Walker
#rb Thomas.Sarkanen

[CL 36314167 by jose villarroel in 5.5 branch]
2024-09-16 16:02:08 -04:00
jose villarroel
1ce748951b Added sorting of Anim Graph Node input pins based on Display Priority
[REVIEW] [at]thomas.sarkanen, [at]samuele.rigamonti
[FYI] Paddy.Walker
#rb Thomas.Sarkanen

[CL 36313792 by jose villarroel in 5.5 branch]
2024-09-16 15:52:25 -04:00
lucas dower
cd359e7a41 Add editor option to hide long list of enum blueprint actions in the ABP editor.
* Replaced with a single "Blend poses by enum" node that has an unbound enum.
* The property window now shows the bound enum and can be modified

#jira UE-222969
#rb Thomas.Sarkanen

[CL 36298004 by lucas dower in 5.5 branch]
2024-09-16 06:57:32 -04:00
dave jones2
c4107f5283 UE-196156 - Add exec toggle for pure nodes
Blueprint pure nodes were initially intended to be similar to "functional pure". In other words, they're deterministic and produce no side effects (eg: doesn't mutate state). However, pure nodes have violated both conditions for a while now.

Instead, pure nodes are simply function nodes with output values and no visible exec pins. While this can be convenient, they come with a downside: the pure node is evaluated for each connected output. This can lead to unexpected performance issues if the node is expensive to evaluate. In the case of non-deterministic nodes, this can lead to unexpected behavior. In both cases, the user often needs to cull multiple outputs of a pure node and cache the result manually.

The solution here is to add support for toggling purity at the call site. When a function node is placed, right-clicking on it and selecting either "Hide Exec pins" or "Show Exec Pins" will toggle purity. Additionally, the meaning of BlueprintPure and the "Pure" check box changes slightly: it now means that the function node _defaults_ to a pure state when placed in a graph. However, it can be toggled to show its exec pins.

In future changes, we'll also reevaluate which common library functions should continue to default as pure.

#jira UE-196156
#rb dan.oconnor, jodon.karlik, ben.zeigler

[CL 35309072 by dave jones2 in ue5-main branch]
2024-08-05 11:58:15 -04:00
roland munguia
3fef52ce55 [Motion Matching] - Added sync group support.
Allows Motion Matching node to be part of a named sync group as an leader, no follower roles are allowed since that would break the pose matching already done. Lastly, only the most recent sample in the blend stack has sync marker information and is the leader for other asset players to follow, the rest of the other blend stack samples do not sync.

Added flag to stomp previous leader info (bOverwriteLeaderPosition) and a new role (ExclusiveLeader) which will make a tick record tick as ungrouped if it fails to be a leader.

[RN] minor
#rb jose.villarroel, samuele.rigamonti, Thomas.Sarkanen

[CL 35220078 by roland munguia in ue5-main branch]
2024-07-31 13:54:52 -04:00
george rolfe
f319ed5c85 [UnrealEd] Moved several UFunction editor utilities from BlueprintGraph UK2Node_CallFunction to ObjectTools
#rb dave.jones2
#rnx

[CL 34729180 by george rolfe in ue5-main branch]
2024-06-27 20:20:20 -04:00
steve robb
fb340035de Fixed constness of FProperty* in TPropertyValueIterator.
#rb robert.manuszewski

[CL 33764714 by steve robb in ue5-main branch]
2024-05-20 08:39:22 -04:00
frederick lupien
879146c0cc Fix GCC error that won't allow a nested struct to share a variable name with the class its nested in...
#rnx

[CL 33666113 by frederick lupien in ue5-main branch]
2024-05-15 15:03:12 -04:00
frederick lupien
dd7509a958 Add a compile time flag to FAnimNode_LinkedInputPose to know if they are connected to the graph's root
[FYI] Paul.McLaurin
review-33657663 [at]Thomas.Sarkanen

[CL 33664929 by frederick lupien in ue5-main branch]
2024-05-15 14:15:59 -04:00
euan carmichael
274926c98d Fix issue with byte properties containing enums where default pin values weren't being set
#jira UE-214439
#rb Keith.Yerex

[CL 33528687 by euan carmichael in ue5-main branch]
2024-05-08 17:15:00 -04:00
daniel holden
3b228b5e94 Moved DeadBlending AnimNode out of Experimental.
[CL 33464314 by daniel holden in ue5-main branch]
2024-05-06 14:36:30 -04:00
keith yerex
5a67a7d711 Fix for anim graph nodes which have an enum property bound to a property access function, and other properties connected to input pins.
#rb Thomas.Sarkanen

[CL 33282729 by keith yerex in ue5-main branch]
2024-04-26 18:41:06 -04:00
thomas sarkanen
db08ac38ec Fix crash when destroying nodes that have no outer animation blueprint
#rb Jurre.deBaare

[CL 32979385 by thomas sarkanen in ue5-main branch]
2024-04-15 19:24:31 -04:00
benoit gadreau
e8597ad9e9 New TRS Gizmo: implement BeginTransform & EndTransform for PhysicsAssetEditor and AnimNode edit modes
#jira UE-212177
#rb brooke.hubert
#rnx

[CL 32968394 by benoit gadreau in ue5-main branch]
2024-04-15 07:11:58 -04:00
lucas dower
f940d8f51a Fix for anim getters that require no parameters returning an error for a nullptr node on compilation
* Specifically the WasAnimNotifyTriggeredInAnyState and WasAnimNotifyNameTriggeredInAnyState

#jira UE-210491
#rb Thomas.Sarkanen

[CL 32712236 by lucas dower in ue5-main branch]
2024-04-03 17:36:15 -04:00