Commit Graph

646 Commits

Author SHA1 Message Date
thomas sarkanen
1f669663eb Fix stack corruption caused by calling an anim node function with an altered signature
Adds compiler checks to alert content creators to fix their content
Adds runtime parameter size checks to ensure we dont call functions with an incorrect sized set of parameters

#rb Nicholas.Frechette
#preflight 640200923206d45d2018d411

[CL 24499844 by thomas sarkanen in ue5-main branch]
2023-03-03 11:26:14 -05:00
Thomas Sarkanen
c4f3774fe9 Fixup conflicting duplicate LOCTEXT keys
#jira none
#rb Jurre.deBaare
#preflight 6400708ef43e53f681a15387

[CL 24478472 by Thomas Sarkanen in ue5-main branch]
2023-03-02 05:02:12 -05:00
Thomas Sarkanen
502797ca50 Animation Curve Runtime & Editor Improvements
Runtime notes:
- Removes 'smart name' usage across the animation systems.
- Changed curve blending from a uniform array (sized per skeleton) to a sparse array of sorted named values. Blends and other combiners are performed using a dual iteration 'tape merge'.
- Skeleton curves are no longer guaranteed to cover all curve names that can be found at runtime.

Editor notes:
- Curve metadata (flags, bone links etc.) is still present on the skeleton, but can also now exist on a skeletal mesh
- Curve metadata (for morph targets) is still populated on import
- Curves can now be used arbitrarily at runtime

New features:
- New Find/Replace dialog that allows for batch-replacing curves and notifies across all of a project's assets
- New curve debugger tab in various Persona editors that allows for viewing curve values live. This also now allows viewing curves for specific pose watches.
- Pose watches now output curve tracks to the Rewind Debugger

#rb Jurre.deBaare,Nicholas.Frechette,Sara.Schvartzman,Helge.Mathee,Kiaran.Ritchie,Jaime.Cifuentes,Martin.Wilson,Keith.Yerex,Andrean.Franc (and more!)
#jira UE-167776
#jira UE-173716
#jira UE-110407
#preflight 63fc98c81206d91a2bc3ab90
#preflight 63f3ad4f81646f1f24c240c2

[CL 24421496 by Thomas Sarkanen in ue5-main branch]
2023-02-27 07:20:58 -05:00
halfdan ingvarsson
6b43bffa1d After five years, it's probably time to remove the 'experimental' flag from the Constraint anim node.
#rnx

[CL 24253438 by halfdan ingvarsson in ue5-main branch]
2023-02-16 04:18:31 -05:00
thomas sarkanen
0fec6da89d Fix crash right-clicking a modify curve node in a template animation blueprint
Lack of modify curve node's utility in template anim BPs will only be fixed with the 5.3 curve refactor

#jira UE-174296
#rb Jurre.deBaare
#preflight 63e3b171b923ed4bdd3e5508

[CL 24075495 by thomas sarkanen in ue5-main branch]
2023-02-08 12:34:17 -05:00
euan carmichael
ce463c014f AimOffsetLookAt and RotationOffset blendspaces now correctly validate for dynamic properties
#UE-174019
#rb Thomas.Sarkanen
#preflight 63c5a08cb065224750bed8b9

[CL 23731746 by euan carmichael in ue5-main branch]
2023-01-16 14:25:46 -05:00
Thomas Sarkanen
598af39d50 Additional fixup for UE-168246 to ensure that function GUID gets set up correctly in all circumstances
#jira UE-168246
#rb Jurre.deBaare
#preflight 63c551ba2a6acaf1623bff5c

[CL 23728781 by Thomas Sarkanen in ue5-main branch]
2023-01-16 08:46:32 -05:00
Jurre deBaare
56c5745d9c //UE5/Main - UE.EditorAutomation(RunTest=Editor) Mac - Several tests exited prematurely due to critical failure
#jira UE-173253
#fix Added new override point OnResetSkeleton, which allows UAnimSequence to wait for any in-flight compression tasks to finish before swapping out the skeleton
#rb Thomas.Sarkanen
#preflight 63b85298e26e31879b0d500f

[CL 23599655 by Jurre deBaare in ue5-main branch]
2023-01-06 12:32:14 -05:00
jaime cifuentes
a20a6e0027 Added validation and visual error functionality to AnimNode_SkeletalControlBase, which can be used to check referenced bones and show errors on the AnimGraph nodes that use them (so it is clear if the setup does not work due to a bone missing)
#rb thomas.sarkanen
#jira UE-160111
#preflight 63b85453c927e34482895de4

[CL 23599353 by jaime cifuentes in ue5-main branch]
2023-01-06 12:16:12 -05:00
Jurre deBaare
3604354e05 [Backout] - CL23596938
Original CL Desc
-----------------------------------------------------------------
//UE5/Main - UE.EditorAutomation(RunTest=Editor) Mac - Several tests exited prematurely due to critical failure
#jira UE-173253
#fix Added new override point OnResetSkeleton, which allows UAnimSequence to wait for any in-flight compression tasks to finish before swapping out the skeleton
#rb Thomas.Sarkanen
#preflight 63b80ff9577437afe6c5d290

[CL 23597241 by Jurre deBaare in ue5-main branch]
2023-01-06 09:23:48 -05:00
Jurre deBaare
d31a7f8252 //UE5/Main - UE.EditorAutomation(RunTest=Editor) Mac - Several tests exited prematurely due to critical failure
#jira UE-173253
#fix Added new override point OnResetSkeleton, which allows UAnimSequence to wait for any in-flight compression tasks to finish before swapping out the skeleton
#rb Thomas.Sarkanen
#preflight 63b80ff9577437afe6c5d290

[CL 23596938 by Jurre deBaare in ue5-main branch]
2023-01-06 08:27:05 -05:00
benoit gadreau
86507e1f96 trigger property reset to default to invalidate the target list infos
#jira UE-167518
#rb halfdan.ingvarsson
#preflight 63b543bf2960b7322087872c

[CL 23580357 by benoit gadreau in ue5-main branch]
2023-01-04 15:52:14 -05:00
dave jones2
9bab3a527e Misc Blueprint changes:
* Added overloads for FindSpecializedConversionNode and SearchForAutocastFunction that don't use output parameters. There are several instances in the engine where dummy variables are used to get around this.
* Updated the Message_ functions to use template parameter packing. The arguments are forwarded to the underlying FCompilerResultsLog, if one exists. This allows us to use tokenized messages.
* Changed several functions in FCompilerResultsLog to use the coding standard's naming convention. Specifically, arguments need to start with an uppercase letter.

#jira none
#preflight 639778dc2960b732208492ae
#rb phillip.kavan

[CL 23482483 by dave jones2 in ue5-main branch]
2022-12-12 15:50:51 -05:00
thomas sarkanen
caad3403d5 Fix sparse class data crash in the presence of circular dependencies
This ensures that 'old' sparse class data (that may be regenerated by a compilation) is always stashed when beginning a compilation pass. This is needed because when sparse class data is cleared, all (loaded) child classes are also cleared, so when they also come to be compiled, their sparse class data will already be null and there will be a dangling reference to it in the package's export table (despite it being moved into the transient package). The dangling reference will then cause any subsequent loads (e.g. further children) to reference an invalid structure.

#jira UE-171639
#rb Jurre.daBaare
#preflight 63906af667018b14b5fe96be

[CL 23431859 by thomas sarkanen in ue5-main branch]
2022-12-07 13:44:19 -05:00
Bryan sefcik
80f80e7a25 Updated the underlying types for regular and namespaced enums.
#jira
#preflight 638e6d479549ddaa2822be9a

[CL 23421568 by Bryan sefcik in ue5-main branch]
2022-12-06 19:43:59 -05:00
thomas sarkanen
8cfaba6f00 Fix crash using property access node with PinHiddenByDefault properties
#jira UE-169417
#rb Jurre.deBaare
#preflight 63861eee766a2aeed20196aa

[CL 23315685 by thomas sarkanen in ue5-main branch]
2022-11-29 14:58:44 -05:00
thomas sarkanen
7aae2402bb Fix being unable to choose another self anim layer after choosing a linked anim layer
Due to reconstruction on edit, the member reference GUID was always conforming back to the original layer node once it was set. This fix ensures that the GUID is appropriately set each time the member reference is updated.

#jira UE-168246
#preflight 6385ff577b4bd3f057796ae4
#rb Jurre.deBaare

[CL 23312441 by thomas sarkanen in ue5-main branch]
2022-11-29 12:34:49 -05:00
thomas sarkanen
a8028b1658 Fixed inability to spawn external linked anim layer nodes
Also fixes ensure on linked anim layer node spawn

#jira UE-168234
#jira UE-168356
#jira UE-170967
#rb Jurre.deBaare
#preflight 6385f54a4004f73f62bbfcc2

[CL 23312397 by thomas sarkanen in ue5-main branch]
2022-11-29 12:34:18 -05:00
phillip kavan
9040d27ac5 Fix redundant node spawner actions being registered for every loaded Animation Blueprint asset context in the editor.
#jira UE-169755
#rb Thomas.Sarkanen
#preflight 6377af6f815e4b9b7550e92d

[CL 23250813 by phillip kavan in ue5-main branch]
2022-11-23 11:58:11 -05:00
benjamin jillich
bbeed383e4 [UE-168454] Some Watch Pins Show Incorrect Values in the Player AnimBP
The source of the issue was that the key of the mapping between the original and the folded property was not able to distinguish between the instance of the node. This means that e.g. when we had several blend nodes in the graph, only one of the properties was in the map and thus all pin watches were watching the single folded property that the map contains.

This is now solved by using a graph pin as key for the map, which is unique per node instance.

An additional issue was that nodes like get variable were not compiled by the blueprint compiler and thus their pins were not part of the map as well. This got fixed by adding linked pins to the map as well.

The fix got verified in game as well. Please make sure to reload/recompile the "avg_player" and "sourcepose" anim bp before verifying.

#jira https://jira.it.epicgames.com/browse/UE-168454
#preflight 637e36baf514e1ded9722abe

[CL 23249548 by benjamin jillich in ue5-main branch]
2022-11-23 10:21:39 -05:00
henrik karlsson
b5164ac775 Fixes to make modules compile with IWYU. We've added to IWYU toolchain so it compiles "orphaned" headers which does not have a owning cpp file. This identified lots of headers that couldn't be compiled by themselves (or if they were to included first)
Change consist of only forward declaration and additional includes

#preflight 63789c1de30d438849c48188
#rb none

[CL 23218412 by henrik karlsson in ue5-main branch]
2022-11-21 03:22:23 -05:00
Nicholas Frechette
230e9f42b3 Add missing anim BP template features now that skeleton compatibility has been relaxed
#jira UE-168846
#rb Thomas.Sarkanen
#preflight 63752a6c1c114bec050b9127

[CL 23157954 by Nicholas Frechette in ue5-main branch]
2022-11-16 13:30:40 -05:00
samuele rigamonti
22bd7b7dc3 motion matching - deprecating UPoseSearchSequenceMetaData
#review-23144984 @aaron.cox
#preflight 63751be40c74adb48b0264ba
#preflight 63751f883248425305884639

[CL 23157119 by samuele rigamonti in ue5-main branch]
2022-11-16 12:46:06 -05:00
benjamin jillich
086e1961b4 [UE-82098] Shared Transitions are not usable by separate state machines within the same ABP
#preflight 6374f04f953c19d435f78e29

[CL 23153486 by benjamin jillich in ue5-main branch]
2022-11-16 09:26:50 -05:00
thomas sarkanen
a897f0439a Skeleton compatibility improvements
Skeleton compatibility is now bi-directional. Specifying a compatible skeleton A -> B now implies B -> A.
Skeleton compatibility is now an editor-only concern. The runtime will attempt to do the 'best it can' via name -> name mappings. Only the editor will prevent assigning incompatible skeletons in (e.g.) asset pickers etc.
Skeleton compatibility checks in editor can now be disabled in the editor preferences (and each asset picker now has a checkbox option in its view settings that allows for quick access to this).

Moves FSkeletonRemapping to its own file (which is now private).
Skeleton remappings are now generated on demand on worker threads just before animation decompression and stored in a registry, guarded by FRWScopeLock for thread-safety.

Fixed some anim BP compiler edge cases where asset references on pins were not getting preloaded correctly, causing skeletons to be erroneously reported as missing.

Exposed the current asset registry filter in SAssetView so that menu extensions can access it (and use it to provide context)

#jira UE-166054
#jira UE-167355
#rb Jurre.deBaare,John.vanderBerg
#preflight 635902602e6690262afa86f9
#preflight 6372ad7a0c74adb48b472b38
#p4v-cherrypick 22878911
#preflight 6374b3c51d25fe8b931b8d7b

[CL 23152671 by thomas sarkanen in ue5-main branch]
2022-11-16 07:21:38 -05:00