Commit Graph

29 Commits

Author SHA1 Message Date
thomas sarkanen
aa58e3e999 Updated categories of animation nodes & functions
Reorganized and consolidated for easier navigation

#rb Jurre.deBaare,Lucas.Dower
#jira UE-156715
#preflight 62a9ac0f13004691f97cd9da

#ROBOMERGE-OWNER: thomas.sarkanen
#ROBOMERGE-AUTHOR: thomas.sarkanen
#ROBOMERGE-SOURCE: CL 20667777 via CL 20668358 via CL 20668456 via CL 20668474
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20669758 by thomas sarkanen in ue5-main branch]
2022-06-15 10:37:36 -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
Thomas Sarkanen
fd93856fc9 Double-clicking a Use Cached Pose node now goes to the Save Cached Pose node it references, if any exists
#jira none
#rb Jurre.deBaare

[CL 15389448 by Thomas Sarkanen in ue5-main branch]
2021-02-11 13:46:17 -04:00
Thomas Sarkanen
8b3709fb28 Restricted anim BP compiler subsystem APIs
Removed direct access to currently compiling BP class to restrict unguarded mutation.
Const-corrected various accessors and overrides.
Moved UObject-based compiler subsystems to 'handlers' and removed UObject dependency.
Moved from set of virtual functions on subsystems/handlers to a restricted set of contexts passed to specific multicast delegates that handlers subscribe to.
Removed anim class subsystems.
Moved property access code to engine module (editor code is still in a plugin).
Fixed nativized builds where anim BPs have nativized/non-nativized classes in the hierarchy

#rb Dan.OConnor
#jira none

[CL 14278258 by Thomas Sarkanen in ue5-main branch]
2020-09-09 08:32:25 -04:00
Marc Audy
7379fa99c5 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14229157
[CL 14233282 by Marc Audy in ue5-main branch]
2020-09-01 14:07:48 -04:00
ryan durand
627baf970a Updating copyright for Engine Editor.
#rnx
#rb none


#ROBOMERGE-SOURCE: CL 10869241 via CL 10869527 via CL 10869904
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870586 by ryan durand in Main branch]
2019-12-26 15:33:43 -05:00
jurre debaare
7ae1960c8e Unable to use cached poses in animation states
#fix Make sure we keeping traversing the outer chain rather than early out if we come across something other than a EdGraph
#rb Martin.Wilson


#ROBOMERGE-SOURCE: CL 6653027 via CL 6653606
#ROBOMERGE-BOT: (vundefined-6654089)

[CL 6654557 by jurre debaare in Main branch]
2019-05-28 13:40:49 -04:00
thomas sarkanen
bc40812f7a Copying //Tasks/Fortnite/Dev-AnimSubInstances to Main (//Fortnite/Main)
Adds:
- New sub-instance functionality (dynamic setting, inline evaluation)
- Animation layers (experimental)

#rb Jurre.deBaare
[FYI] Laurent.Delayen
#rnx


#ROBOMERGE-SOURCE: CL 6604742 via CL 6605911
#ROBOMERGE-BOT: (v356-6605775)

[CL 6605970 by thomas sarkanen in Main branch]
2019-05-22 12:00:20 -04:00
Ben Marsh
7598af0532 Update copyright notices to 2019.
#rb none
#lockdown Nick.Penwarden

[CL 4662404 by Ben Marsh in Main branch]
2018-12-14 13:41:00 -05:00
Ben Marsh
13d012685f Merging copyright update from 4.19 branch.
#rb none
#rnx
#jira

[CL 3818977 by Ben Marsh in Staging-4.19 branch]
2018-01-02 15:30:26 -05:00
Ben Marsh
20bf0eb6a1 Updating copyright notices to 2017 (copying from //Tasks/UE4/Dev-Copyright-2017).
#rb none
#lockdown Nick.Penwarden

[CL 3226823 by Ben Marsh in Main branch]
2016-12-08 08:52:44 -05:00
Ben Marsh
4ba423868f Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none

==========================
MAJOR FEATURES + CHANGES
==========================

Change 3209340 on 2016/11/23 by Ben.Marsh

	Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.

	Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.

	  * Every header now includes everything it needs to compile.
	        * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
	        * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
	  * Every .cpp file includes its matching .h file first.
	        * This helps validate that each header is including everything it needs to compile.
	  * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
	        * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
	        * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
	  * No engine code explicitly includes a precompiled header any more.
	        * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
	        * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.

	Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.

[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
Matthew Griffin
bb70b349ce Merging CL 2804086 from //UE4/Release-4.11 to Dev-Main (//UE4/Dev-Main) to isolate copyright update
#lockdown Nick.Penwarden

[CL 2819020 by Matthew Griffin in Main branch]
2016-01-07 08:17:16 -05:00
Michael Schoell
63b7360ae0 Removed the Blueprint Editor's legacy node menu system.
#jira UE-13391 - Delete old BP menu system (is causing confusion)

#codereview Mike.Beach

[CL 2514361 by Michael Schoell in Main branch]
2015-04-16 11:47:54 -04:00
Lina Halper
4770fc4c22 #Anim : Fixed save cached pose node warning message
- We now don't check verification on skeleton class
- Moved Validation to EarlyValidation

#lockdown  Zachary.EdgertonJones

[CL 2390497 by Lina Halper in Main branch]
2014-12-16 17:44:46 -05:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Jaroslaw Palczynski
7c41927cf4 Rename FPostConstructInitializeProperties to something simpler
Changed it with FObjectInitializer.

UECORE-7

[CL 2328384 by Jaroslaw Palczynski in Main branch]
2014-10-14 10:29:11 -04:00
Michael Schoell
7375f42458 Fixes for UseCachedPose node so that it can better find it's SaveCachedPose node and upgrade from the old system.
[CL 2317826 by Michael Schoell in Main branch]
2014-10-02 16:48:56 -04:00
Michael Schoell
02f9088995 "Use Cached Pose" works with the new Blueprint context menu system.
No longer has issues with renaming the "Save Cached Pose" node.

Fixed up the details panel to not show unneeded data.

[CL 2312895 by Michael Schoell in Main branch]
2014-09-29 10:35:16 -04:00
Mike Beach
7b8425fc04 Reverting some perf optimizations that were resulting in stale node text (have to figure out when to clear the cached text).
TTP #346788

[CL 2308590 by Mike Beach in Main branch]
2014-09-24 14:15:13 -04:00
Mike Beach
2d8a0fc54a Caching more node titles for various blueprint nodes (to optimize the new BP menu system).
[CL 2284594 by Mike Beach in Main branch]
2014-09-04 11:25:05 -04:00
Mike Beach
1b87f7d3ee Deprecating EdGraphNode's GetTooltip() (in exchange for one that returns FText over FString).
[CL 2283396 by Mike Beach in Main branch]
2014-09-03 18:14:09 -04:00
Michael Schoell
788de6f349 Removed GetNodeNativeTitle from the editor entirely, now uses BuildSourceString to obtain the source string in a more reliable way.
#codereview Justin.Sargent

[CL 2114371 by Michael Schoell in Main branch]
2014-06-23 15:36:50 -04:00