Commit Graph

434 Commits

Author SHA1 Message Date
Marc Audy
3cfedaade8 Fix PVS warning V502 when comparing against NAME_None in a trinary
[CL 16137741 by Marc Audy in ue5-main branch]
2021-04-28 01:58:36 -04:00
Thomas Sarkanen
c9a92f12c2 Fix anim BP internal structs showing up in the content browser
#jira none
#rb Jurre.deBaare

[CL 16112747 by Thomas Sarkanen in ue5-main branch]
2021-04-26 06:37:16 -04:00
Thomas Sarkanen
27a6f84b12 Fix crash in cooked games with standalone asset players
Also fix blendspace sync groups not working correctly

#rb Timothy.Daoust
#jira FROST-2365

[CL 16105948 by Thomas Sarkanen in ue5-main branch]
2021-04-23 15:31:02 -04:00
Thomas Sarkanen
e07d421df9 Fix crash in debug where delegate self-unregistration removed lambda underneath itself
#rb Koray.Hagen

[CL 16097046 by Thomas Sarkanen in ue5-main branch]
2021-04-22 15:39:05 -04:00
Thomas Sarkanen
16eee0289d Anim node data/compiler refactor
Per-node constant data is now held on a generated struct as part of sparse class data.
Per-node mutable data (i.e. pin links/property access mappings) is now held on a generated 'mutable data' struct that is compiled as part of the generated class.

The anim BP compiler is now extended more conventionally using UAnimBlueprintExtension, derived from UBlueprintExtension. This directly replaces the older 'compiler handler' pattern that was added in an emergency fashion for 4.26. Anim graph nodes now request their required extensions and these are held on the UAnimBlueprint in the UBlueprint::Extensions array. The Extensions array is potentially refreshed with any node addition or removal. The Extensions array is force-refreshed each time an anim BP is compiled for the first time to deal with newly added or removed requirements.

Const-corrected a bunch of UAnimInstance/FAnimInstanceProxy APIs that rely on (now truly) const data.
Added a split state/constant version of FInputScaleBiasClamp to allow some of its data to be split into constants.
Tweaked alignment/ordering of FPoseLinkBase to save a few bytes per pose link.
Deprecated FAnimNode_Base::OverrideAsset in favor of a more UAnimGraphNode_Base-based approach. Individual nodes can still have runtime overrides via specific accessors. The new approach will also give us the oppurtunity to override multiple assets per node if required in the future.

Moved property access into Engine module & removed event support from it - this was never used.
Reworked property access compilation API a little - construction/lifetime was a bit confusing previously.

Optimized path used to create UK2Node_StructMemberSet nodes in per-node custom events. When using mutable data, the structure used is large and very sparsely connected (i.e. only a few properties are written) so we only create pins that are actually going to be used, rather than creating all of them and conly connecting a few.

Patched the following nodes to use the new data approach:

- Asset players (sequences, blendspaces, aim offsets)
- Blend lists
- Ref poses
- Roots

#rb Jurre.deBaare, Martin.Wilson, Keith.Yerex

[CL 16090510 by Thomas Sarkanen in ue5-main branch]
2021-04-22 04:57:09 -04:00
Thomas Sarkanen
5364bab827 Backing out CL 16071104
[CL 16071592 by Thomas Sarkanen in ue5-main branch]
2021-04-21 08:01:44 -04:00
Thomas Sarkanen
0ddbfb9894 Anim node data/compiler refactor
Per-node constant data is now held on a generated struct as part of sparse class data.
Per-node mutable data (i.e. pin links/property access mappings) is now held on a generated 'mutable data' struct that is compiled as part of the generated class.

The anim BP compiler is now extended more conventionally using UAnimBlueprintExtension, derived from UBlueprintExtension. This directly replaces the older 'compiler handler' pattern that was added in an emergency fashion for 4.26. Anim graph nodes now request their required extensions and these are held on the UAnimBlueprint in the UBlueprint::Extensions array. The Extensions array is potentially refreshed with any node addition or removal. The Extensions array is force-refreshed each time an anim BP is compiled for the first time to deal with newly added or removed requirements.

Const-corrected a bunch of UAnimInstance/FAnimInstanceProxy APIs that rely on (now truly) const data.
Added a split state/constant version of FInputScaleBiasClamp to allow some of its data to be split into constants.
Tweaked alignment/ordering of FPoseLinkBase to save a few bytes per pose link.
Deprecated FAnimNode_Base::OverrideAsset in favor of a more UAnimGraphNode_Base-based approach. Individual nodes can still have runtime overrides via specific accessors. The new approach will also give us the oppurtunity to override multiple assets per node if required in the future.

Moved property access into Engine module & removed event support from it - this was never used.
Includes a thread-safety fix for 4.26 that hasnt made it over to 5.0 yet.
Reworked property access compilation API a little - construction/lifetime was a bit confusing previously.

Optimized path used to create UK2Node_StructMemberSet nodes in per-node custom events. When using mutable data, the structure used is large and very sparsely connected (i.e. only a few properties are written) so we only create pins that are actually going to be used, rather than creating all of them and conly connecting a few.

Patched the following nodes to use the new data approach:

- Asset players (sequences, blendspaces, aim offsets)
- Blend lists
- Ref poses
- Roots

#rb Jurre.deBaare, Martin.Wilson, Keith.Yerex

[CL 16071104 by Thomas Sarkanen in ue5-main branch]
2021-04-21 07:09:28 -04:00
danny chapman
0fba84358e Fix Invalid use of pointer in warning output
#jira UE-113834
#rb thomas.sarkanen

[CL 16060917 by danny chapman in ue5-main branch]
2021-04-20 10:15:49 -04:00
Tim Smith
ff1048a3a7 Added new ReloadEnum method to the NodeDependingOnEnumInterface which will be utilized by the reload system to notify the node that the enumeration has been reloaded and that the given enum is the new address of the enum.
#rb phillip.kavan
#rnx
#preflight 6075cfa00a49b700011f10a3

[CL 15992752 by Tim Smith in ue5-main branch]
2021-04-13 14:52:21 -04:00
Marc Audy
01b7c9f4f5 Merge UE5/RES @ 15958325 to UE5/Main
This represents UE4/Main @ 15913390 and Dev-PerfTest @ 15913304

[CL 15958515 by Marc Audy in ue5-main branch]
2021-04-08 14:32:07 -04:00
mark lintott
7da621dd70 Non-unity fixes
#rb trivial
#preflight 60632f8db4299e0001dbe61c

[CL 15862677 by mark lintott in ue5-main branch]
2021-03-30 11:06:15 -04:00
mark lintott
11a12136ce #jira UE-111647
#rb johan.torp
GetLinkerUE4Version renamed to GetLinkerUEVersion

#ROBOMERGE-SOURCE: CL 15859222 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)

[CL 15859586 by mark lintott in ue5-main branch]
2021-03-30 06:44:49 -04:00
Jurre deBaare
d498271275 UStruct property default initializations
//UE5/Main - UE.EditorAutomation(RunTest=Editor) Win64 - Uninitialized script struct members found AnimGraphAttributes.h and other anim files
#jira UE-110793

//UE5/Main - UE.EditorAutomation(RunTest=Editor) Win64 - Uninitialized script struct members found DataSourceFiltering.h
#jira UE-110804

Fix BlendSpace errors in ShooterGame
#jira UE-111352

#rb Thomas.Sarkanen

[CL 15758350 by Jurre deBaare in ue5-main branch]
2021-03-22 07:53:36 -04:00
jose villarroel
23f73d1dc7 Added state aliasing for the anim graph state machine.
#review-15715574 @Thomas.Sarkanen, @Aaron.Cox
#preflight 6054c8f5c27ab80001b00547

[CL 15749554 by jose villarroel in ue5-main branch]
2021-03-19 14:32:13 -04:00
jose villarroel
d05319a7e9 Fix for crash when opening anim layer interfaces
#review-15712246 @john.vanderburg
#rnx

[CL 15712996 by jose villarroel in ue5-main branch]
2021-03-16 13:25:23 -04:00
timothy daoust
1d2811e0c0 New Animation Mirroring System:
+ UMirrorDataTable stores the bones / notifies / curves to mirror
	* Generates table based on FMirrorFindReplaceExpression in project settings
	* Can be used in any Animation Blueprint with a compatible skeleton
	* Support for self mirroring
	* Shared mirror axis
+ Project Settings for Mirroring Find & Replace Strings
+ FMirrorFindReplaceExpression
	* Find the mirrored name based on a prefix, suffix, or regular expression match
+ FAnimNode_Mirror
	* Inertialization support for blending between mirroring / unmirrored states over a configurable duration
	* Support for different MirrorDataTables (to support partial / full body mirroring)
+ Deprecated old mirroring system (FBoneMirrorExport) in SkeletalMesh

#rb Thomas.Sarkanen

[CL 15580895 by timothy daoust in ue5-main branch]
2021-03-03 08:23:59 -04:00
jurre debaare
ae609d867c UE-77877
Automatically connect Anim node's out exec pin to the following node when placed within an execution chain

#ROBOMERGE-SOURCE: CL 15567924 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15567926 by jurre debaare in ue5-main branch]
2021-03-02 06:49:04 -04:00
thomas sarkanen
938f3b7c91 Fix non-unity CIS
#jira UE-109205 - //UE5/Release-5.0-EarlyAccess - NonUnity Compile UnrealEditor Win64 - BlendSpaceGraph.cpp(10): error C2027: use of undefined type 'UEdGraphSchema'
#rb trivial

#ROBOMERGE-SOURCE: CL 15512643 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15512651 by thomas sarkanen in ue5-main branch]
2021-02-24 05:55:50 -04:00
thomas sarkanen
81a352e02f Fix copy-paste error in fast-path detection code that ended up rejecting split pin access for structs with a native make function
#jira UE-108078 - //UE5/Main - Run Incremental EngineTest Editor Win64Editor - Unable to load AnimBlueprintClassSubsystem_PropertyAccess_1 with outer AnimBlueprintGeneratedClass
#rb Jurre.deBaare

#ROBOMERGE-SOURCE: CL 15489420 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15489441 by thomas sarkanen in ue5-main branch]
2021-02-22 11:00:00 -04:00
thomas sarkanen
5c2f4eb79c Keep blendspace parameters around when we have a blendspace graph document focused
#jira UE-107479 - BlendSpace loses the details panel on compilation
#rb Jurre.deBaare

#ROBOMERGE-SOURCE: CL 15470541 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15470551 by thomas sarkanen in ue5-main branch]
2021-02-19 05:08:15 -04:00
john vanderburg
398515a9d3 Initial support for skeletal remapping, which allows you to play animation assets from one skeleton onto the other.
[CL 15464346 by john vanderburg in ue5-main branch]
2021-02-18 18:42:00 -04:00
thomas sarkanen
02df6267fc Ensure that blend space graphs have the correct schema applied
Additional fix for cached poses in blend space graphs

#jira none
#rb Jurre.deBaare

#ROBOMERGE-SOURCE: CL 15432567 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15432568 by thomas sarkanen in ue5-main branch]
2021-02-17 05:12:29 -04:00
thomas sarkanen
dfb098d4ad Fixed cached poses not being usable nested inside blend space graphs
Re-submitting CL 15386468 as it was proved not to be causing issues.

#rb Jurre.deBaare
#jira none

#ROBOMERGE-SOURCE: CL 15432555 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15432563 by thomas sarkanen in ue5-main branch]
2021-02-17 05:10:10 -04:00
thomas sarkanen
74bb8c17ca Fix property access nodes creating and using an incorrect internal property type
Previously there was no checking to see whether a variable that was created actually exists already, which could cause collisions.
Also fixed issue where connecting to a wildcard pin would mean that the output pin always stayed a wildcard.

#jira UE-103473 - Assert using Property Access pitch and yaw AimRotationDelta float variables for AimOffset
#jira UE-103470 - AnimBP Property Access node compile error accessing different variable types
#rb Jurre.deBaare

#ROBOMERGE-SOURCE: CL 15406686 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15406701 by thomas sarkanen in ue5-main branch]
2021-02-15 10:47:36 -04:00
danny chapman
9a6d7ca014 Reworks BlendSpace to make UBlendSpace the main runtime class, which is able to handle 1 and 2 dimensions.
#jira UE-108155
#rb thomas.sarkanen

[CL 15406467 by danny chapman in ue5-main branch]
2021-02-15 10:12:58 -04:00