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]
The changes to always process 'most up to date' classes broke property accesses on many of Lyra's accesses. This was because the runtime functions/properties ended up being accessed on empty skeleton classes.
This change restricts the path resolution via 'most up to date' classes to only where it is needed for this use case: renaming/referencing variables and functions.
#jira UE-204823
#rb jaime.cifuentes
[CL 31430030 by thomas sarkanen in ue5-main branch]
- and more generally when nothing is transformed in the viewport
NOTE: this is not a fix for this jira, but the problem has been highlighted by it.
#jira UE-206571
#rb thomas.sarkanen
#rnx
[CL 31421493 by benoit gadreau in ue5-main branch]
Implement function BP rename handling on a per-node basis, similar to existing variable rename handing
Move to using FBlueprintEditorUtils::GetMostUpToDateClass for property access in-editor. This ensures that any local renames are picked up prior to recompilation.
#jira UE-204823
#rb jaime.cifuentes, Phillip.Kavan
#changelist validated
#virtualized
[CL 31251596 by thomas sarkanen in ue5-main branch]
Also fix copy-pasted code in AnimNext
Also fix crash when compiling a template anim BP without a preview instance (found while attempting repro)
#jira UE-192978
#rb jaime.cifuentes
[CL 30969455 by thomas sarkanen in ue5-main branch]