Commit Graph

491 Commits

Author SHA1 Message Date
danny chapman
db0ddc7121 Fixes for LookAt AimOffset:
* Lets" ShowDebug Animation" work
* Lets input filtering work
* Allows the source/pivot to be a bone or socket

#jira UE-168456
#rb thomas.sarkanen
#preflight 635be2d44710dd6af8a44d77

[CL 22828729 by danny chapman in ue5-main branch]
2022-10-28 11:00:57 -04:00
henrik karlsson
4a5e13525d Fixed non-unity non-pch compile errors
#preflight skipped
#rb none

[CL 22788359 by henrik karlsson in ue5-main branch]
2022-10-26 16:22:34 -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
jaime cifuentes
39bb9b978b Truncation fixes for AnimationGraphRuntime module
#rb @thomas.sarkanen
#jira UE-166634
#preflight 63591a0a764df4711e65c76e

[CL 22776099 by jaime cifuentes in ue5-main branch]
2022-10-26 07:34:18 -04:00
halfdan ingvarsson
8db044c033 PoseDriver: Remove ensure() if a curve doesn't exist. This can happen when using compatible skeletons that don't have any of the curves needed by the pose driver. The othe Pose* anim nodes behave the same way, silently ignoring missing curves.
#rb mike.beach
#lockdown mike.beach
#rnx

[CL 22758951 by halfdan ingvarsson in ue5-main branch]
2022-10-25 15:36:27 -04:00
dbsigurd
2bda05bfbb PR #8537: exposing composite anim sequences to random player (Contributed by dbsigurd)
#jira UE-132756, UE-132483
#rb Thomas.Sarkanen
#preflight 63581ff10c6e894555b01b8f

[CL 22755729 by dbsigurd in ue5-main branch]
2022-10-25 13:54:36 -04:00
Nicholas Frechette
a182dbd867 Wrap deprecated properties with WITH_EDITORONLY_DATA to avoid runtime waste
#jira UE-49197
#rb Thomas.Sarkanen, Helge.Mathee
#preflight 6358002a66733d70593afa3f

[CL 22751839 by Nicholas Frechette in ue5-main branch]
2022-10-25 11:42:04 -04:00
jaime cifuentes
3dd74bd523 Truncation fixes for AnimationGraph and AnimationGraphRuntime module. Part of UE-166634 and UE-166633
#rb @tomas.sarkanen
#jira UE-166634 UE-166633
#preflight 635695410313c24974d9babc

[CL 22725844 by jaime cifuentes in ue5-main branch]
2022-10-24 09:48:39 -04:00
thomas sarkanen
08851ed7a0 Fixed crashes caused by re-instancing clobbering the size of EditFixedSize arrays in anim nodes
Also patched up some other instances of anim nodes where this could occur

#jira UE-166235
#preflight 634406087045f13c96aafa70
#rb Jurre.deBaare

[CL 22431499 by thomas sarkanen in ue5-main branch]
2022-10-10 12:14:03 -04:00
marc audy
813f596809 [FortniteGame]
This is a huge change with the focus on improving compile times. It SHOULDN'T have any behavior changes since it is "only" splitting up large files in multiple smaller files and forward declare lots of types. This change is based on compile score results.

Highlights
* Moved lots and lots of types out of FortTypes.h and in to their own files to be able to avoid including FortTypes.h
* Removed FortTypes.h includes from lots of files
* Identified critical paths for includes and cut them off using forward declares or moving types out of big files
* Lots of adding of includes to be able to handle a large UE change that cut off dependencies in lots of engine files (will be submitted separately

Also fixed a bunch of linux non-monolithic build errors just to be able to verify that these changes worked

Reviewed in spirit by Marc Audy :-)

#rb none
#preflight 634350bcc272487ed4323f00

[CL 22427442 by marc audy in ue5-main branch]
2022-10-10 07:08:34 -04:00
henry falconer
04064d037e Fixed a crash in the Pose Handler anim node, where it was using the bone container without first checking if it was valid
#rn fix animation/runtime
#rb thomas.sarkanen
#preflight skip

[CL 22373343 by henry falconer in ue5-main branch]
2022-10-06 06:25:46 -04:00
chris caulfield
93fa1517dd Chaos - move RBAN world object collection to game thread
#rb benn.gallagher
#jira UE-158098, UE-156294
#preflight 633b609f3629a1a4f938bc1d

[CL 22327050 by chris caulfield in ue5-main branch]
2022-10-04 01:24:03 -04:00
jaime cifuentes
99b19110a6 [UDN Addition] Add the ability to force blend spaces to snap to input
Contributed by Wayne Huang

#rb thomas.sarkanen
#jira UE-160397
#preflight 63345ede393eb7f1da69cf14

[CL 22224050 by jaime cifuentes in ue5-main branch]
2022-09-28 11:48:26 -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
thomas sarkanen
af32e124a1 Added the ability to specify blend profiles/masks to the layered blend per bone node
Enables use of layered blends in template animation blueprints

#jira UE-137671
#rb Jose Villarroel
#preflight 632c74aca4769ad714ac21c8

[CL 22145944 by thomas sarkanen in ue5-main branch]
2022-09-22 17:40:51 -04:00
jurre debaare
ce426c29c8 GitHub 8512 : Added UAnimSequenceBase::ComputePlayRateFromDuration
#jira UE-131701
#preflight 632ae908f45b523a634f9361
#rb Aaron.Cox

[CL 22143324 by jurre debaare in ue5-main branch]
2022-09-22 15:42:57 -04:00
jaime cifuentes
981823850f Enable Random Sequence Player react to automatic transition rules
#rb thomas.sarkanen
#jira UE-160566
#preflight 632ad260826e0c2fe994e9dd

[CL 22112881 by jaime cifuentes in ue5-main branch]
2022-09-21 10:45:04 -04:00
danny couture
89385f7f05 Fix assert on CVars when accessed from the async loading thread in FAnimNode_AnimDynamics::HasPreUpdate
#rb Thomas.Sarkanen
#preflight 6329a1c9b40000c8f064d0d0

[CL 22090797 by danny couture in ue5-main branch]
2022-09-20 07:51:47 -04:00
halfdan ingvarsson
1581de59be After five years, it's probably time to remove the 'experimental' flag from the Constraint anim node.
#rnx

[CL 22068476 by halfdan ingvarsson in ue5-main branch]
2022-09-17 22:06:58 -04:00
thomas sarkanen
be963f20ec Fix asset overrides not working correctly for blendspace & sequence players that use identical defaults
Folding properties prevents derived classes from properly overriding these properties

#jira UE-158068
#preflight 63243da5121ffddebc793a02
#rb Jurre.deBaare

[CL 22050397 by thomas sarkanen in ue5-main branch]
2022-09-16 11:37:25 -04:00
Jurre deBaare
ff0db16d0b Reintroducing AnimationDataModel refactor with additional memory and cooktime optimizations.
**Animation Data Model load/cook time and memory optimizations**
- Added SetKeysOnly to FMovieSceneFloatChannel, allowing to only set value/frames values and skip allocating key handles
- Added EvaluateWithCache to TMovieSceneCurveChannelImpl, allowing to evaluate multiple curves using a caching data structure holding the frame-indices resulting from the FrameTime -> indexes calculationg
- UFKControlRig::GetControlName/GetControlTargetName, added thread_local mapping cache and optimized FName generation
- Made the sequencer bone curve keys 'sparse' again, if constant it just sets the default value for the curve otherwise it is still uniform
- Only resample keys when compressing, and clear them on any significant model changes and when save-during-cook has been completed
- Routed ::Presave for AnimSequencerDataModel directly through to UMovieSceneSignedObject to skip compiling cooked sequencer that that will/should never cooked and packaged
- Added some significant pass-by-reference changes to AnimSequencerModel APIs (passing large arrays by value previously) :doh:
- Optimized GenerateLegacyBoneData

Original CL description:

**New**
- Engine
	- IAnimationDataModel interface
- AnimationData plugin
	- AnimSequencerDataModel, sequencer based implementation of IAnimationDataModel
	- AnimSequencerDataController, controller for above (implementation of IAnimationDataController)
- Added FCompressedRichCurve::PopulateCurve, allowing users to convert back to a FRichCurve for validation/debugging
- Added DefaultFrameRate to AnimationSettings, this replaces the hardcoded 30FPS in code
- Added ::GetKeyIndicesFromTime which takes FFrameRate
- Added AnimSequenceBase::OnAnimModelLoaded, this is required for correct postloading behaviour of data model (specifically AnimSequencerDataModel, as it depends on data from its outer ? anim sequence)
- Added IAnimationDataModel ::Evaluate which now takes responsibility for evaluating raw animation bone, curve and attribute data. And moved all trackbased evaluation code into AnimDataModel.cpp
- Added a.ForceEvalRawData allowing to force evaluation of source data
- Added a.SkipDDC to force compressing animation data locally

**Changed**
- Reparent UAnimDataModel to IAnimationDataModel interface, and rejig behaviour
- AnimSequenceBase now reference AnimDataModel as IAnimationDataModel
- Upgrade path for legacy to IAnimationDataModel and existing UAnimDataModel to IAnimationDataModel through IAnimationDataController::PopulateWithExisting
- IAnimationDataModel data is now frame(number/rate/time) based rather than seconds/keyindices. This enforces frameborder aligned data from now on.
- Moved RichCurve evaluation code from RichCurve.cpp to separate file and consolidated all instances of copy-pasta behaviour
- Updated/removed deprecated EngineTests around AnimSequences
- Changed many instances to use a FFrameTime together with a known FFrameRate versus seconds and sequencelength in float involving frame \/ time calculations (including instances of FAnimKeyHelper)
- Switched anim sequence evaluation to use double in Extraction context for time value and patched up places with static\_cast\<double\>
- FRichCurve::Eval
	- Make sure we always evaluate keys when T >= Key0.Time and T <= KeyN.Time to deal with crazy userweighted tangents
- Fixed WeightedKeyDataAdapter::GetKeyInterpMode/GetKeyTangentWeightMode retrieving invalid values, as it was indexing according to KeyIndex rather than KeyIndex\*2. This made it so that values were misinterpreted.
- Fixed WeightedEvalForTwoKeys for compressed data retrieving GetKeyInterpMode and GetKeyTangentWeightMode using the wrong index value. As they are not indexed using KeyDataHandle type.
- Fixed issue where compression could crash when containing zero-key scale additivebase track (tries to retrieve)
- Replaced instances of NULL with nullptr
- Moved required decompression information into FAnimSequenceDecompressionContext and reimplemented decompression within UE::Anim::Decompression namespace and new file
- Deprecated ::GetRawDataGuid and replaced with GetDataModel()->GenerateGuid()
- Fixed UAnimStreamable evaluation/compression (previously broken with MVC refactor)
- Updated Animation exporting pipeline to be frame-based rather than seconds
- Deprecated RetargetPose, replaced with FRetargetingScope (used within AnimModel::Evaluate)
- Fixed BaseAdditiveAnimation array become invalid/incorrect when removing zero-additve tracks during compression
- Updated EngineTest animation sequence related tests to new APIs (while maintaining deprecated path testing as well for now)
- AnimDataController / Animation Sequence tests now generate a USkeleton for the transient animation sequence (used to perform the test on)

**Removed**
- Unused file/class AnimData/AnimDataNotifyCollector.h

#rb Thomas.Sarkanen, Mike.Zyracki
#jira UE-131296
#preflight 631f6897a9331c69c3a34d1e

[CL 21980597 by Jurre deBaare in ue5-main branch]
2022-09-13 06:41:15 -04:00
austin crismore
302160436b Adding BP support for setting animation custom mode and Swap Root Bone on Anim Params
#rb matt.hoffman
#jira UE-163211
#preflight 631b4f9ad135b61bc561fc6d

[CL 21922832 by austin crismore in ue5-main branch]
2022-09-09 12:19:02 -04:00
bryan sefcik
cb0456c6d4 Cleaned up build.cs files by removing any include paths that were already being added by UBT. This was done to help identify how include paths are being added and to help with future refactoring.
#jira
#preflight 631a5c04967ffc68fbf0dd8f

[CL 21911226 by bryan sefcik in ue5-main branch]
2022-09-08 21:44:02 -04:00
lucas dower
167b77e995 PR #9253: Added blendspace player library to support editing blendspace players (Contributed by bestofact)
#jira UE-155699
#rb thomas.sarkanen
#preflight 63187e66b069eea9ab2f06e0

[CL 21847671 by lucas dower in ue5-main branch]
2022-09-07 07:46:07 -04:00
Jurre deBaare
bf737517f7 AnimNode_LayeredBoneBlend BlendWeight bug when using LODThreshold
#jira UE-149026
#fix rely on bHasRelevantPoses=false to skip evaluating poses rather than zero-ing out the blendweight array - that way they are also 'cached' for when the node becomes relevant again given the LOD
#rb Thomas.Sarkanen
#preflight 6315e12c2b7fe03eb6286b1c

[CL 21790994 by Jurre deBaare in ue5-main branch]
2022-09-05 07:56:40 -04:00