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]
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]
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]
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]
* 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]
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]
[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]
* 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]
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]
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]
* Specifically the WasAnimNotifyTriggeredInAnyState and WasAnimNotifyNameTriggeredInAnyState
#jira UE-210491
#rb Thomas.Sarkanen
[CL 32712236 by lucas dower in ue5-main branch]