Commit Graph

33 Commits

Author SHA1 Message Date
thomas sarkanen
7e78d26a86 Fix GC crash with Sequencer anim instance proxies
Proxy was not reporting its references to GC

#jira UE-201956
#rb Mike.Zyracki

[CL 30765008 by thomas sarkanen in ue5-main branch]
2024-01-22 05:07:03 -05:00
Mike Zyracki
891737c14e Manual Merge of Sequencer: NLA Fixes. Default to transform the start transform offset in local bone space and not in root space, this will make the manipulation of the offset much more predictible, changed the edit mode to handle this coordinate space change.
When use the first child option we now find the first child with animation, FN rigs and 3rd party rigs may not have the animation on the first child of the root.
Don't draw virtual bones when drawing skeleton and use default bone rendering.
Just dirty root motion cache on changes.
Passing in the PreviousTransform to the anim proxy, this is just wip for the refactor to remove the root motion caching.
#jira UE-167374
#jira UE-167371
#jira UE-167991
#preflight 63603b41d13ad22d722ee5b4
#rb max.chen

[CL 22889771 by Mike Zyracki in ue5-main branch]
2022-11-01 15:48:30 -04:00
henrik karlsson
b5b86c796c This change is a strategical submit for a coming change that removes lots of includes in headers that are included by many files. This change contains adding of includes in files that previously got those includes transitively from other inclkudes
#preflight 6355d4940313c24974b2107b
#rb none

[CL 22783162 by henrik karlsson in ue5-main branch]
2022-10-26 12:57:32 -04:00
marc audy
311f7464bf Updated ../Engine/Source/Runtime/... to inline gen.cpp files
Before:
3648 unity files
Total CPU Time: 47886.140625 s
Total time in Parallel executor: 498.81 seconds

After:
3548 unity files
Total CPU Time: 46643.828125 s
Total time in Parallel executor: 486.06 seconds

#jira
#preflight

[CL 22173263 by marc audy in ue5-main branch]
2022-09-24 13:57:58 -04:00
ennorehling
664320eb6b PR #9375: Common typo: doens't -> doesn't (Contributed by ennorehling)
#preflight 62f27e1a0264595302eefa12
#jira UE-158763
#rb trivial

[CL 21292281 by ennorehling in ue5-main branch]
2022-08-09 13:21:24 -04:00
Max Chen
e26088ad53 Sequencer: Swap Root Bone with Component Root, Actor Root to put the root motion on the skeletal mesh component or the actor's root component.
#jira UE-113072
#preflight 626f2adf42539d7264367825
#rb mike.zyracki

[CL 20010505 by Max Chen in ue5-main branch]
2022-05-02 12:35:36 -04:00
Max Chen
513caaf507 Sequencer: Added a new option, "Swap Root Bone With Component Root", to put the root motion on the skeletal mesh component.
When this option is enabled, the root bone is evaluated as usual, cached and then set to 0. The cached root bone transform is then set on the skeletal mesh component in FAnimSequencerInstanceProxy::PostEvaluate. If there is an existing transform track on the skeletal mesh component, however, the cached root bone transform is applied additively to that. Without this, the skeletal mesh wouldn't be able to be globally transformed by Sequencer.

Deprecated UpdateAnimTrackWithRootMotion so that it now takes FAnimSequencerData instead of each individual parameter separately.

#jira UE-113072
#preflight 6261a7a67d162829ae87670e
#rb mike.zyracki

[CL 19872424 by Max Chen in ue5-main branch]
2022-04-22 16:32:06 -04:00
timothy daoust
7892940082 Fixes for Mirror Node
- remove optimization that can introduce bugs in circumstances with identical joint counts but diferent indexes
  - added constant folding.

#rb thomas.sarkanen
#jira UE-133136
#preflight 618e9b59c83214302dd44368

#ROBOMERGE-AUTHOR: timothy.daoust
#ROBOMERGE-SOURCE: CL 18171394 in //UE5/Release-5.0/... via CL 18179777
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v894-18169371)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18179861 by timothy daoust in ue5-release-engine-test branch]
2021-11-13 12:57:14 -05:00
timothy daoust
99a22c9539 Added animation mirroring to sequencer
#jira UE-115623
#rb thomas.sarkanen, max.chen, mike.zyracki

[CL 16393391 by timothy daoust in ue5-main branch]
2021-05-19 17:50:40 -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
Mike Zyracki
232b5b5868 Sequencer: NLA fix for child bone rotations
#jira UE-102043
#rb max.chen

[CL 14594328 by Mike Zyracki in ue5-main branch]
2020-10-27 19:09:18 -04:00
Marcus Wassmer
3b81cf8201 Merging using //UE5/Main_to_//UE5/Release-Engine-Staging @14384769
autoresolved files
#rb none

[CL 14384911 by Marcus Wassmer in ue5-main branch]
2020-09-24 00:43:27 -04:00
Michal Valient
95d19f95b1 [REVERB] Merging //UE4/Private-Reverb-Development@13832732
#rb graham.wihlidal, rune.stubbe, brian.karis, andrew.lauritzen, jeff.farris

[CL 13834854 by Michal Valient in ue5-main branch]
2020-07-06 18:58:26 -04:00
mike zyracki
9833a94abd Sequencer: Need to make sure we re-Construct the Animation Sequence Nodes when entering a section since it may have been changed to a pose snapshot node. Also made sure ConstructNodes really just sets them up lightly since it's used by both SequencerInst/ControlRigInst.
#jira UE-87806
#rb max.chen

#ROBOMERGE-SOURCE: CL 11446379 in //UE4/Release-4.25/...
#ROBOMERGE-BOT: RELEASE (Release-4.25 -> Release-4.25Plus) (v654-11333218)

[CL 11446390 by mike zyracki in 4.25-Plus branch]
2020-02-14 13:57:22 -05:00
ryan durand
0f0464a30e Updating copyright for Engine Runtime.
#rnx
#rb none


#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870549 by ryan durand in Main branch]
2019-12-26 14:45:42 -05:00
Lina Halper
3fd7f76532 Copying //UE4/Dev-Anim to Dev-Main (//UE4/Dev-Main)
#fyi: Laurent.Delayn, Marc.Audy
#rb: none

[CL 9321182 by Lina Halper in Main branch]
2019-10-01 16:59:31 -04:00
marc audy
328da8f207 Fix weight propgation over sub-instance boundaries
New Update* API now passes through context from a higher level. Old API calls deprecated & fixed up.
We were previously doing the right thing with regards weights on the way *out* of a linked graph (via a linked input pose). This addresses the way *into* a linked graph.

#rb Jurre.deBaare


#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: thomas.sarkanen
#ROBOMERGE-SOURCE: CL 9036155 via CL 9043727 via CL 9043933
#ROBOMERGE-BOT: (v443-9013191)

Resolution in AnimInstanceProxy.cpp stomps Dev-Anim changes. Jira to be filed to revisit the consequences to inertial blending.
#codereview Thomas.Sarkanen, Braeden.Shosa

[CL 9046911 by marc audy in Main branch]
2019-09-24 14:10:35 -04:00
Chris Gagnon
2e87118a18 Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) Interim 4.24.
#rb none

[CL 8614014 by Chris Gagnon in Main branch]
2019-09-10 11:35:20 -04:00
Max Chen
58ed55be26 Merging //UE4/Dev-Main to Dev-Sequencer (//UE4/Dev-Sequencer)
#rb none
#lockdown nick.penwarden

[CL 6863746 by Max Chen in Dev-Sequencer branch]
2019-06-06 13:46:20 -04:00
Mike Zyracki
f7bfe3dc0f Fix to get back to the previous pose that a SkeletalMesh has before getting evaluated.
Added a PoseNode to the AnimInstanceProxy that we save a pose to right when we initialize the seuqencer proxy and then in RestoreState in the template we then link that anim pose to use that stored pose and then  force an evaluation.

#jira UE-70665

#rb max.chen, lina.halper

[CL 5767595 by Mike Zyracki in Dev-Sequencer branch]
2019-04-05 15:18:36 -04:00
Chris Gagnon
8fc25ea18e Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor)
#rb none

[CL 4676797 by Chris Gagnon in Dev-Editor branch]
2019-01-02 14:54:39 -05:00
Max Chen
edcab9950f Merging //UE4/Dev-Main to Dev-Sequencer (//UE4/Dev-Sequencer)
#rb none

[CL 4664858 by Max Chen in Dev-Sequencer branch]
2018-12-15 23:56:00 -05:00
Max Chen
1c2dda3cf2 Merging //UE4/Dev-Main to Dev-Sequencer (//UE4/Dev-Sequencer)
#rb none

[CL 4063505 by Max Chen in Dev-Sequencer branch]
2018-05-10 02:48:03 -04:00