Commit Graph

572 Commits

Author SHA1 Message Date
jason hoerner
61ec1be384 Animation Memory: 17.7 MB savings in array slack.
* 14.3 MB:  Reserve space in CurvePoseSourceIndices members in AnimNode_BoneMask and AnimNode_LayeredBoneBlend based on the exact amount used.  Many nodes don't use this feature, so the array ends up empty, but in other cases, less than 5% of the reserve is used.
* 3.4 MB:  Eliminate Reserve for QueuedTransitionEvents member in AnimNode_StateMachine.  Reserve is wasteful because it's deleted anyway by a Shrink call in FAnimNode_StateMachine::Update_AnyThread for active state machines, and only ends up sticking around for inactive state machines, where it's irrelevant, so it doesn't affect performance to take this out.

#rnx
#rb thomas.sarkanen jose.villarroel

[CL 29601012 by jason hoerner in ue5-main branch]
2023-11-09 12:34:49 -05:00
roland munguia
b892ab41ed Make Two Way Blend's "Always Update Children" pinnable to allow gameplay state to modify it.
#rnx
#rb jose.villarroel

[CL 29442879 by roland munguia in ue5-main branch]
2023-11-03 22:24:09 -04:00
david bromberg
aa2abbfe24 Sequencer- Add a new 'SequencerAnimationOverride' interface for blueprint Anim Instances.
This allows custom anim blueprints to either:
a) Allow Sequencer to swap out their anim instance during playback (swapping it back after). This is similar to checking the 'Force Custom Mode' checkbox on a Skeletal Animation track section, but at the blueprint level without having to change anything in Sequencer.
b) Provide a list of valid Anim Slot names for the Sequencer Skeletal Animation track section UI to choose from. When provided by a blueprint with the interface, a valid slot will always be chosen when creating new skeletal animation sections.

These features will allow UEFN devs to better manage Sequencer takeover of pawn animation without the user having to edit a SlotName in the Sequencer UI. To use these features will require them editing their anim blueprints to use this interface.

I had considered as part of this change hiding the Slot Name UI entirely in UEFN when there is no choice to be made, but decided against it for less UEFN-specific code.

[REVIEW] [at]ue-sequencer [at]guillaume.guay
#jira UE-199199, UE-199200
#rb Max.Chen

[CL 29316313 by david bromberg in ue5-main branch]
2023-11-01 10:25:28 -04:00
mickael gilabert
c3df45d9f7 Fix OOB when accessing SkeletonBoneIndexToBodyIndex array with a negative index
[REVIEW] [at]nicholas.frechette
#rnx

[CL 29277618 by mickael gilabert in ue5-main branch]
2023-10-31 11:43:27 -04:00
nick brett
10231b385e [UE] AnimDynamics CVars to override the clamp on the component linear acceleration and set a global gravity scale
- Added p.AnimDynamics.ComponentAppliedLinearAccClampOverride CVar to override the clamp on the component linear acceleration applied to AnimDynamics simulation for all assets.
- Added p.AnimDynamics.GravityScale Cvar to set a gravity scale that is applied to the default gravity and the gravity override vector.
- Prior to this change, when the sim space was set to World, the gravity override vector was only applied on init. Now it will now be applied every update with any sim space setting.

[REVIEW] [at]Benn.Gallagher
[FYI] [at]Charles.Anderson

[CL 29146184 by nick brett in ue5-main branch]
2023-10-26 15:30:36 -04:00
benjamin jillich
3ddf102b31 Runtime switching override physics assets on rigid body animation node using function library
A few days ago I've added runtime switching for the override physics assets by exposing the override physics assets as a pin. To align better with the pattern we use with larger objects, I've now changed that to a function library.


#changelist validated

#virtualized

[CL 29127203 by benjamin jillich in ue5-main branch]
2023-10-26 05:08:54 -04:00
stan hormell
8c1ae5f6e9 [Backout] - CL29082994 - CIS Error
[FYI] benjamin.jillich
Original CL Desc
-----------------------------------------------------------------
Runtime switching override physics assets on rigid body animation node using function library

A few days ago I've added runtime switching for the override physics assets by exposing the override physics assets as a pin. To align better with the pattern we use with larger objects, I've now changed that to a function library.

[CL 29110798 by stan hormell in ue5-main branch]
2023-10-25 19:44:03 -04:00
benjamin jillich
21abf94281 Runtime switching override physics assets on rigid body animation node using function library
A few days ago I've added runtime switching for the override physics assets by exposing the override physics assets as a pin. To align better with the pattern we use with larger objects, I've now changed that to a function library.

[CL 29083014 by benjamin jillich in ue5-main branch]
2023-10-25 05:49:26 -04:00
dan kaufman
2ab516c284 Add new physics controls for use with RigidBody AnimNodes
Slack thread with more info
https://epicgames.slack.com/archives/C045B1XPYTA/p1698083710894179
NOTE:  Tested w/ full Durian run (PIE) in DEV-FN-27 with changes applied locally
[FYI] Chris.Caulfield, Charles.Anderson
#rnx

[CL 29077898 by dan kaufman in ue5-main branch]
2023-10-25 02:58:29 -04:00
john vanderburg
a18729897b Crash fix in the layered bone blend node, basically undoing previous optimizations.
#trivial
#rb thomas.sarkanen
#swarm none

[CL 29041783 by john vanderburg in ue5-main branch]
2023-10-24 06:20:27 -04:00
nicholas frechette
5e0c9d5dcb Add attribute check to avoid compilation failure on earlier clang versions
[REVIEW] [at]john.huelin
#rb John.Huelin

[CL 29001100 by nicholas frechette in ue5-main branch]
2023-10-21 14:25:06 -04:00
stan hormell
1e442b863a [Backout] - CL28988733
[FYI] Nicholas.Frechette
Original CL Desc
-----------------------------------------------------------------
Explicitly disable inlining with clang of specific functions to save stack space in hot recursive function

#rb John.Huelin

[CL 28992766 by stan hormell in ue5-main branch]
2023-10-20 20:27:37 -04:00
nicholas frechette
0abb642366 Explicitly disable inlining with clang of specific functions to save stack space in hot recursive function
#rb John.Huelin

[CL 28992750 by nicholas frechette in ue5-main branch]
2023-10-20 20:27:27 -04:00
benjamin jillich
7df2820f11 RBAN Static analysis fix
[CL 28884867 by benjamin jillich in ue5-main branch]
2023-10-18 14:33:06 -04:00
jose villarroel
8804fb854e Allow updating both children of the Two Way Blend even when not relevant
[REVIEW] [at]Thomas.Sarkanen, [at]Samuele.Rigamonti

[CL 28881682 by jose villarroel in ue5-main branch]
2023-10-18 12:59:14 -04:00
benjamin jillich
04ce605fee RBAN can now expose the override physics asset as a pin
* Detects changes on the physics override asset in case it gets piped in as a pin and re-initializes physics along with the bone references.
* Added a new property to control if the physics asset shall be defaulted to the one set to the skeletal mesh in case the overwrite physics asset is not specified. Default is true to ensure behavior doesn't change.

[CL 28873907 by benjamin jillich in ue5-main branch]
2023-10-18 07:42:40 -04:00
thomas sarkanen
a5b5993cd8 Fix blend list optimization to correctly check weight of single active pose
#rb timothy.daoust

[CL 28707477 by thomas sarkanen in ue5-main branch]
2023-10-12 08:56:32 -04:00
thomas sarkanen
0bdfe150f6 Optimize common case of single full-weight entry in a blend list
Prior to this change, a single entry would needlessly multiply a pose with weight 1

#rb Jurre.deBaare,Timothy.Daoust

[CL 28662081 by thomas sarkanen in ue5-main branch]
2023-10-11 09:42:44 -04:00
roland munguia
8b941e9232 Fixed UBlendSpaces not syncing when using inertialization. Added support for properly syncing UBlendSpaces when using "Transition Leader" and "Transition Follower" sync group roles.
[RN] minor
#rb Aaron.Cox, Jose.Villarroel, Thomas.Sarkanen
[FYI] Steven.Dickinson

[CL 28545193 by roland munguia in ue5-main branch]
2023-10-06 12:41:45 -04:00
thomas sarkanen
38c05e8619 Anim graph optimizations
Implemented ISPC versions of missing layered blend per bone hot paths.
Tweaked inlining and added ptr RESTRICT to various curve operations
Removed array copy in control rig node curve outputs
Increased inline alloc size of cached poses to reduce allocations
Removed refpose copies and allocations with linked anim graphs (these can be skipped now the bone containers are all centralized)

#rb Nicholas.Frechette,Jurre.deBaare
#tests Juno, NoMcp

[CL 28371404 by thomas sarkanen in ue5-main branch]
2023-10-02 05:23:05 -04:00
nick brett
d1c6023925 [UE] RBAN Add CVar to force the use of the default deferred simulation CVar to determine whether to defer simulation, ignoring any settings in individual nodes.
- This can be used to force deferred simulation on or off for all RBAN

#rb [at]chris.caulfield
[FYI] [at]Ryan.Wiederkehr, [at]Charles.Anderson

[CL 28268650 by nick brett in ue5-main branch]
2023-09-27 06:37:32 -04:00
john vanderburg
a23adf2e54 [SkeletonCompatibility] Added support for skeleton compatibility in combination with blend profiles / masks.
#jira UE-157944
#rb Thomas.Sarkanen
[FYI] Aaron.Cox

[CL 28220333 by john vanderburg in ue5-main branch]
2023-09-26 06:06:52 -04:00
keith yerex
cd47f305eb Improvements to anim node property tracing and display in the animation blueprint editor:
- Trace selected animation for ChooserPlayer node.
- Make debug bubbles in rewind debugger show all traced node properties, except Name.
- Make sequence player nodes display the current sequence in the debug bubble.
- Trace assets, such as Sequence or BlendSpace with the Key: Asset, and enable display of the Asset column in the AnimGraph rewind debugger details.
#rb Samuele.Rigamonti

[CL 28214450 by keith yerex in ue5-main branch]
2023-09-25 21:35:24 -04:00
jurre debaare
08585f35af Need the ability to give a sequence evaluator a frame instead of time.
#feature sequence evaluator node now exposes ExplicitFrame option, which internally combined with the set AnimSequence is used to generate a time-value (on which the behaviour is based)
#rb Thomas.Sarkanen

[CL 27627946 by jurre debaare in ue5-main branch]
2023-09-06 04:14:59 -04:00
roland munguia
274af74e34 Fixed inertialization not working properly with sync groups when using BlendList.
[RN] minor
#rb Aaron.Cox, Jose.Villarroel

[CL 27543092 by roland munguia in ue5-main branch]
2023-08-31 18:56:44 -04:00