Commit Graph

598 Commits

Author SHA1 Message Date
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
lucas dower
3dbf0b7b83 Fix for copy-pasting nodes dependant upon source state machine state.
#jira UE-135987
#rb thomas.sarkanen
#preflight 632499a18131e92d65ea3f1d

[CL 22054567 by lucas dower in ue5-main branch]
2022-09-16 13:55:52 -04:00
thomas sarkanen
43e50ca6f5 Prevent editing of input parameters on input pose nodes in the main anim graph
Only other layers are allowed pin-based inputs. The legacy linked graph system uses class properties.

#jira UE-145685
#rb Jurre.deBaare
#preflight 63248e688131e92d65e67215

[CL 22052372 by thomas sarkanen in ue5-main branch]
2022-09-16 12:48:26 -04:00
lucas dower
1309fe5371 Compile error fix for missing pose watch include
#rb trivial
#preflight 63244f27f258fccf98b2398d

[CL 22050413 by lucas dower in ue5-main branch]
2022-09-16 11:37:52 -04:00
jaime cifuentes
3d016b7d44 Fixed FAnimNode_LayeredBoneBlend BlendMasks getting out of sync with BlendPoses (fixes older assets with incorrect BlendMasks array size)
Provided by David Bolo

#rb thomas.sarkanen marc.audy
#jira UE-126997
#preflight 6321884c29254beccbb7bbe9

[CL 22003808 by jaime cifuentes in ue5-main branch]
2022-09-14 05:55:52 -04:00
thomas sarkanen
3b09aa4eaf Fix duplication of animation blueprints with custom property bindings producing internal compiler errors
#jira UE-143647
#rb Jurre.deBaare
#preflight 63203e418838676d10db612f

[CL 21986813 by thomas sarkanen in ue5-main branch]
2022-09-13 13:24:35 -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
bryan sefcik
f58e75e476 Pass 2 on cleaning up build.cs files.
#jira
#preflight 631b7a79304480f8f8b48580

[CL 21931324 by bryan sefcik in ue5-main branch]
2022-09-09 19:41:38 -04:00
frederick lupien
63fd57b194 Add a context menu option to unexpose all unused pins in LinkedAnimGraph and LinkedAnimLayer nodes in animation blueprints
This is to be able to quickly hide all pins on linked graph nodes based on animation instance that expose a lot of properties

[REVIEW] [at]Thomas.Sarkanen
#tests PIE
#jira UE-156233
[FYI] [at]Paul.McLaurin

[CL 21908860 by frederick lupien in ue5-main branch]
2022-09-08 20:30:49 -04:00
frederick lupien
e24dddeb56 Fix graph template compilation crash when referencing animation assets (sequences, blend spaces, etc)
#jira UE-162997
#rb Thomas.Sarkanen
#tests Graph template compilation

[CL 21891354 by frederick lupien in ue5-main branch]
2022-09-08 07:11:04 -04:00
Robert Millar
dc497f2e2f FNames containing asset paths are deprecated. FSoftObjectPath or FTopLevelAssetPath should be used instead.
Fixups for animation.

#jira UE-161932
#rb halfdan.ingvarsson
#preflight 63181d07980179553e5c8d21

[CL 21841184 by Robert Millar in ue5-main branch]
2022-09-07 00:40:02 -04:00
bryan sefcik
0837230669 Ran IWYU again on half of the Engine/Source/Editor/... source files.
#jira

[CL 21716414 by bryan sefcik in ue5-main branch]
2022-08-30 23:03:03 -04:00
jaime cifuentes
101097fcd1 Animation State Machine UX update (renamed "Add New State Machine" as "State Machine" and removed trailing "..." from all the context options, to be coherent with other UX options
#Jira UE-156485
#rb lucas.dower
#preflight 630e2c62a416f6df25d92124

[CL 21702009 by jaime cifuentes in ue5-main branch]
2022-08-30 11:32:46 -04:00
Keith Yerex
40a5283221 Make double clicking Linked Anim Layer nodes also attach the debugger to the correct anim instance
#rb Jurre.DeBaare
#preflight 6308f2ac990cd1b6a7496d49

[CL 21593455 by Keith Yerex in ue5-main branch]
2022-08-26 13:15:55 -04:00
bryan sefcik
8cc129f2b6 IWYU Pass 1 - Engine/Source/Editor/...
#jira
#preflight 6306736ac85b7fef22be7751

[CL 21558583 by bryan sefcik in ue5-main branch]
2022-08-24 22:45:13 -04:00
Keith Yerex
d3dc8e95a1 fix double click on linked layer node to navigate the the actual linked instance when you are attached and debugging
#rb Thomas.Sarkanen
#preflight 630668fd5a5d4e46246266a2

[CL 21547264 by Keith Yerex in ue5-main branch]
2022-08-24 14:14:53 -04:00
jurre debaare
754fe6e2d7 Ensure that LinkedAnimGraph node name, and graph in MyBlueprint tab reflect the currently previewed instance and its state (e.g. PIE Anim instance, with dynamically linked graph)
#preflight 62ff5394200ff87e07e949f0
#rb Thomas.Sarkanen

[CL 21468246 by jurre debaare in ue5-main branch]
2022-08-19 19:38:25 -04:00
marc audy
a25c77c3cc Bring RES files in line with EM
#rnx

#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 21434216 in //UE5/Release-Engine-Staging/...
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v981-21435820)

[CL 21437233 by marc audy in ue5-main branch]
2022-08-17 21:56:00 -04:00
kriss gossart
0422ca7705 Skeletal Mesh - Replace the newly created GetSkeletalMesh function by GetSkeletalMeshAsset so it matches the setter SetSkeletalMeshAsset function (which itself couldn't be named SetSkeletalMesh due to the function already existing and doing something else).
#rb Josie.Yang
#preflight 62fa2afeae3edb54c979492e
#jira none

[CL 21385959 by kriss gossart in ue5-main branch]
2022-08-15 09:26:50 -04:00
Thomas Sarkanen
cda7eef50c Fix crash customizing an anim node that no longer has a valid blueprint
#jira UE-152535
#rb Jurre.deBaare
#preflight 62f0d013bc175ec68c992de1

[CL 21266739 by Thomas Sarkanen in ue5-main branch]
2022-08-08 05:03:16 -04:00
nick brett
c675819ca1 [UE][FEATURE] Extend Pose Watches to support control of other aspects of animation node debug draw.
- Pose watches can now contain elements which represent different asspects of an anim nodes debug draw (i.e. bodies and constraints in RBAN)
- Elements can be used to enable anim node debug draw even when a node is not selected, acting in the same way as the previous pose watches
- The previous Pose watch behavior is now provided by an element within a pose watch
- RBAN nodes now make use of Pose Watch Elements
- Moved skeleton draw parameter UPROPERTIES from PoseWatch to specialised PoseWatchPoseElement class

#rb [at]Thomas.Sarkanen, [at]Lucas.Dower
#preflight 62d6a3e43c3df323901fca27

#ROBOMERGE-AUTHOR: nick.brett
#ROBOMERGE-SOURCE: CL 21174786 via CL 21175779 via CL 21181135
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21192394 by nick brett in ue5-main branch]
2022-07-20 18:29:30 -04:00
bryan sefcik
98b51354ed Ran IWYU on Public headers under Engine/Source/Editor/...
Headers are updated to contain any missing #includes needed to compile and #includes are sorted.  Nothing is removed.

#ushell-cherrypick of 21065253 by bryan.sefcik
#jira
#preflight 62d5b3e91062f2e63014598e

#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21152630 via CL 21156388 via CL 21157044
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21181817 by bryan sefcik in ue5-main branch]
2022-07-20 11:56:29 -04:00
kiaran ritchie
893b6c8ea4 Add ability to edit retarget pose on source (not just target).
Retarget pose I/O converted to use Pose Assets
Various UI/UX changes.

#rb halfdan.ingvarsson
#JIRA https://jira.it.epicgames.com/browse/UE-137175
#preflight https://horde.devtools.epicgames.com/job/62d7009a47779a730aa99834

[CL 21166429 by kiaran ritchie in ue5-main branch]
2022-07-19 15:58:41 -04:00
bryan sefcik
6b25671172 Fixed -NoPCH -DisableUnity compile issues.
#preflight 62d05ea58e4b379590a66dab

[CL 21095519 by bryan sefcik in ue5-main branch]
2022-07-14 14:54:07 -04:00
bryan sefcik
435d89dea4 Manually updated a few files in Engine/Source/Editor/... to include some headers that were found to be missing after running IWYU.
#preflight 62cdac5084556536d0e57c64

[CL 21058996 by bryan sefcik in ue5-main branch]
2022-07-12 13:45:01 -04:00