Commit Graph

457 Commits

Author SHA1 Message Date
timothy daoust
13583ddc3c Added the ability to drag layers to create a linked anim layer node
#jira UE-81805

#rb thomas.sarkanen

#ROBOMERGE-SOURCE: CL 16594838 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16594859 by timothy daoust in ue5-release-engine-test branch]
2021-06-08 17:58:38 -04:00
timothy daoust
0d26966f09 Fix Non Unity compile errors caused by changes to AnimStateNodeBase
#rb aaron.cox

[CL 16553194 by timothy daoust in ue5-main branch]
2021-06-03 17:05:43 -04:00
timothy daoust
d6ca80a2e5 Fixed a bug where state naming was not validating against sub-graphs
#jira UE-114207

#rb jurre.debaare

[CL 16536792 by timothy daoust in ue5-main branch]
2021-06-02 13:46:46 -04:00
Thomas Sarkanen
6adfe86822 Fix crashes, inconsistencies and performance issues with layered blend per bone node
Introduces a serial number to FBoneContainer that allows easier refreshing of bone-relative data. Eventually the overall CacheBones path could be superseded with lazy-update systems based on this serial number.

#jira UE-116464 - Layered blend per bone crash
#rb Jurre.deBaare

[CL 16466917 by Thomas Sarkanen in ue5-main branch]
2021-05-26 07:55:41 -04:00
Thomas Sarkanen
ebc803bd83 Unify titles of asset players to use a common format
Use correct title for asset players when asset is bound to property access

#jira UE-116472 - Asset players bound via property access incorrectly report that they use asset 'None'
#rb Jurre.deBaare

[CL 16466900 by Thomas Sarkanen in ue5-main branch]
2021-05-26 07:53:28 -04:00
Thomas Sarkanen
56b3ba9d79 Move anim node pin binding to pin context menu
Binding workflow is now common with control rig
Bindings still show up on pins when bound, but the binding combobox is not displayed until bound

#rb Jurre.deBaare

[CL 16465796 by Thomas Sarkanen in ue5-main branch]
2021-05-26 05:12:26 -04:00
Thomas Sarkanen
ef85f31796 Fix 'expose as pin' menu item not appearing
Menu extender wasnt being correctly combined with a last minute change to fix a CIS issue.

#rb Jurre.deBaare

[CL 16445600 by Thomas Sarkanen in ue5-main branch]
2021-05-25 05:16:56 -04:00
Thomas Sarkanen
50c6861a06 Fix for structure accesses from property access nodes not linking their expanded nodes correctly
#rn Jurre.deBaare

[CL 16445489 by Thomas Sarkanen in ue5-main branch]
2021-05-25 04:35:25 -04:00
Thomas Sarkanen
50961d34d4 Fixed property access binding copies being skipped if a node uses BP
Fast path copies were unaffected as they defaulted to their generated BP logic, despite the fast path not being generated.

#jira UE-116370 - Property Access failing to bind under specific conditions
#rb Jurre.deBaare,Koray.Hagen

[CL 16445486 by Thomas Sarkanen in ue5-main branch]
2021-05-25 04:34:31 -04:00
Thomas Sarkanen
0f8ecdb48d Fix static analysis warning
#rb Jurre.deBaare

[CL 16435879 by Thomas Sarkanen in ue5-main branch]
2021-05-24 11:20:41 -04:00
Thomas Sarkanen
589c8f6ad0 Linked anim graphs/layers now appear in the "my blueprint" outline and context menu
Titles & icons tweaked to emphasise the linked content, not the type of the node.
Also fixes bounding box init issue when spawning new input pose nodes in linked anim graphs
Added the ability to override the tag checked when vierufying skeleton compatibility by FAssetData. This allows anim BPs to use the functionality as they have a "TargetSkeleton" tag vs. other assets with a "Skeleton" tag.

#rb Jurre.deBaare

[CL 16434383 by Thomas Sarkanen in ue5-main branch]
2021-05-24 06:55:32 -04:00
Thomas Sarkanen
d411e1b010 Fixed unloaded assets in asset players not showing up in anim BP context menus
Unified the approach to gathering assets and spawning nodes from them. Previously each had its own slightly unique code doing similar things.
Note that with this change it is now possible to directly spawn 'evaluator' style nodes from the context menu instead of relying on a context menu conversion step.
Also tweaked icons, tooltips and titles for consistency

#rb Jurre.deBaare

[CL 16434364 by Thomas Sarkanen in ue5-main branch]
2021-05-24 06:45:16 -04:00
Thomas Sarkanen
3e92b56aa0 Animation: thread-safe execution and property access improvements
"Call function" anim node:
- Adds the ability to call functions at different points in the anim graph execution (and under different conditions, e.g. when a branch has started blending in). Only thread-safe functions are allowed to be called.
- Adds a thread-safe override point BlueprintThreadSafeUpdateAnimation, called on worker threads for the main instance and for linked instances when they are relevant in the graph (only one call per frame for linked layer instances).

Subsystems:
- Added new override points pre/post event graph(s) (moved override point for worker thread work to around the thread safe update function call).

Improves property access integration:
- Property access now shows (and allows the user to override) the call site of accesses. This is to allow users to see when their property access calls will be made, hopefully making its use less confusing for power users.
- Tweaked UX for property access nodes and dropdowns.
- Anim node pins now have property access bindings in-line on the pin.

Also adds the abilility for the anim graph to opt-in (via a config flag) to more stringent thread safety checks. Disabled by default for now as this requires content fixup.

#jira UE-115745 - Anim Blueprint Encapsulation
#rb Jurre.deBaare

[CL 16434092 by Thomas Sarkanen in ue5-main branch]
2021-05-24 04:47:52 -04:00
Thomas Sarkanen
ddb9eeedd2 Fixed crash deleting, undoing then compiling a blend space graph
#jira UE-115449 - Crash occurs when deleting, undoing, and recompiling a Blend Space Graph node
#rb Jurre.deBaare

[CL 16420036 by Thomas Sarkanen in ue5-main branch]
2021-05-21 12:03:06 -04:00
thomas sarkanen
659801cd66 Fix internal blendspaces not being saved/copied in certain circumstances
As the blendspace was duplicated from a previously duplicated node, it was marked as transient and hence was not saved along with the class. This is not a problem in the editor as the blend space is always regenerated on load, but in cooked games the blendspace was never saved in the cook and thus not present at runtime.

#jira FROST-2756
#rb Jurre.deBaare,Danny.Chapman

#ROBOMERGE-SOURCE: CL 16416162 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v811-16416015)

[CL 16416163 by thomas sarkanen in ue5-main branch]
2021-05-21 07:50:50 -04:00
danny chapman
e54fad360e Analysis for BlendSpace. Also includes:
Tweaks to the rendering of blendspaces, including separating the graph from the buttons
Context menu changes for the sample details
Changes to AnimationBlueprintLibrary and AnimPose from Jurre to help get the poses during analysis

#jira UE-114512
#rb thomas.sarkanen

[CL 16356830 by danny chapman in ue5-main branch]
2021-05-17 15:03:56 -04:00
Thomas Sarkanen
e485a55acb Fix various issues with child anim BPs
If a child anim BP is made and is saved without saving its parent, then when the class is reloaded later it will not be able to find the parent's sparse class data in the linker (as it will have been generated again from scratch on load, which doesnt patch the linker until the asset is resaved). This leads to serialization size mismatches.
To address this (and because the sparse class data will always be regenerated as part of compile-on-load), we skip the portion of the CDO's archive that represents the serialized sparse class data if it is null after serialization. It can of course be legitimately null in a lot of cases (say a regular actor Blueprint), but this should have no ill effects and effectively be a seek to the current archive offset.

This CL also fixes a number of child anim BP-related issues. First of all it prevents a crash when accessing out-of-bounds AnimNodeData by ensuring it is correctly duplicated in all circumstances. It also correctly propogates values from root->child sparse class data (in the same manner that anim node data used to be propogated before). This deals with compile-on-load issues where the child classes sparse class data is regenerated without serializing the parent classes sparse class data (see crash fix above).

#jira UE-114674 - Creating a new child anim BP crashes
#rb Fred.Kimberley,Phillip.Kavan,Jurre.deBaare

[CL 16313070 by Thomas Sarkanen in ue5-main branch]
2021-05-13 10:56:35 -04:00
timothy daoust
3b0a5acd3a Fix a mirror node compilation error encountered with the mirror data table is not yet loaded
#jira UE-114952

#rb thomas.sarkanen

[CL 16247196 by timothy daoust in ue5-main branch]
2021-05-10 07:31:57 -04:00
jose villarroel
a0cad3df75 Fix for double click not working with shared transition rules
#review-16199518 @Thomas.Sarkanen
#fyi Caleb.Longmire, Fernando.Coello
#jira none
#rnx

[CL 16209390 by jose villarroel in ue5-main branch]
2021-05-05 13:03:32 -04:00
koray hagen
26af906499 Graph-driven pose warping, with root motion delta flow:
1) Root motion delta flow supported through all anim nodes deriving from FAnimNode_AssetPlayerBase and montages.
2) Stride/Orientation warping feature graph-driven evaluation modes which leverage root motion delta flow (graph-driven slope warping currently disabled).
3) Root motion flow connected to the Animation Warping plugin.
4) Pose Warping test map featuring various motion "styles" connected to pose warping (Motion Matching, Blend Space Graphs/Assets, Sequence Players, Evaluators).

#preflight 6092380a58c4790001a3e9b6
#rb aaron.cox, braeden.shosa, thomas.sarkanen
#jira none
#fyi laurent.delayen

[CL 16208667 by koray hagen in ue5-main branch]
2021-05-05 12:18:35 -04:00
Brandon Schaefer
ec9f8e23d9 Fix reference possibly being invalidated in while loop
#jira none
#rb none
#fyi Thomas.Sarkanen

[CL 16196527 by Brandon Schaefer in ue5-main branch]
2021-05-04 14:01:51 -04:00
timothy daoust
380a6e3e51 Warn if MirrorDataTable used in a MirrorNode is not compatible with the current skeleton
#jira UE-114427

#rb thomas.sarkanen

[CL 16170635 by timothy daoust in ue5-main branch]
2021-04-30 13:45:03 -04:00
Thomas Sarkanen
e3e68d14d4 Fix for renaming issues with animation blueprints
Switches generated structs to be subobjects of the generated class.
Key to this is supporting re-instancing via re-linking the mutable struct before the generated class is linked to allow the correct class layout to be used by serializers. This is because the property links are not preserved with StaticDuplicateObject.

#jira UE-114456 - Crash on loading Animation Blueprint asset that was renamed twice prior to that
#jira UE-114457 - A duplicate is created for an Animation Blueprint asset after its renaming
#rb Jurre.deBaare
#fyi Benn.Gallagher

[CL 16166745 by Thomas Sarkanen in ue5-main branch]
2021-04-30 05:41:57 -04:00
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