Commit Graph

141 Commits

Author SHA1 Message Date
timothy daoust
9819af8af2 Added support for root motion mirroring in animation preview and when using the mirror node
#jira UE-150185
#preflight 62672bd3ae7d89946725c22f
#rb thomas.sarkanen
#lockdown thomas.sarkanen

#ROBOMERGE-AUTHOR: timothy.daoust
#ROBOMERGE-SOURCE: CL 19918803 in //UE5/Release-5.0/... via CL 19919410
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 19920704 by timothy daoust in ue5-main branch]
2022-04-26 11:22:07 -04:00
kriss gossart
2199b5bdb4 Cloth - Fix crash when attempting to rebuild fixed vert data on a missing cloth section.
#rb Alexis.Matte
#jira UE-96639
#preflight 622a11c0611f10dd07a4c22d

#ROBOMERGE-AUTHOR: kriss.gossart
#ROBOMERGE-SOURCE: CL 19337057 in //UE5/Release-5.0/... via CL 19348959
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19349172 by kriss gossart in ue5-main branch]
2022-03-10 23:55:24 -05:00
jurre debaare
b8c3f5335c Montage segment changes:
- Deprecated public access to AnimReference
    * Used for new behaviour that keeps track of PlayLength from referenced asset
    * In case the cached PlayLength does not match the current _and_ the cache playlength == than the segment length it can be deemed out-of-date due to a reimport
    * Out-of-date segments show in the OrangeAccent on the timeline rather than GreenAccent
    * Out-of-date segments will introduce log warnings on-load
- Patched up all paths using AnimReference (get/set)
- Modernized parts of EditorAnim* files
- Face-lifted details customization for AnimSegment
    * Scrollboxes now have (dynamic) UI/Clamp according to the context
    * Added behaviour for interactive operation when dragging the timeline (dragable) bars
- Implemented FAnimModel_AnimMontage::OnDataModelChanged to handle curve changes only - as play length etc is handled by montage editor itself

#rb Thomas.Sarkanen
#preflight 620fb4c9be45100d32bcc000

#ROBOMERGE-OWNER: jurre.debaare
#ROBOMERGE-AUTHOR: jurre.debaare
#ROBOMERGE-SOURCE: CL 19051190 via CL 19051207 via CL 19051231 via CL 19051241 via CL 19058489
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v918-19018356)

[CL 19066040 by jurre debaare in ue5-main branch]
2022-02-21 01:10:52 -05:00
fred kimberley
7fbfaf57c8 Require explicit constructors/casts when converting between FVector, FVector3d, and FVector3f.
#jira UE-122078
#rb Andrew.Davidson, Colin.McGinley
#preflight standard build

#ROBOMERGE-AUTHOR: fred.kimberley
#ROBOMERGE-SOURCE: CL 18817999 in //UE5/Release-5.0/... via CL 18818012 via CL 18822871
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18824721 by fred kimberley in ue5-main branch]
2022-02-02 07:59:31 -05:00
jurre debaare
838e928cde Validate Attribute bone index typing / mapping
#jira UE-132455

Animaton attribute index remapping:
- Introduced FMeshAttributeContainer which stores the attributes according to FMeshPoseIndex
- Added FinalizeAttributeEvaluationResults to SkeletalMeshComponent - which remaps the evaluated compact-pose indexed attributes to mesh-indices
- Added CopyFrom template for different bone index types
- Updated CopyPoseFromMesh
   * Added SourceBoneToTarget as attributes are mapped from source to target vs target to source for Bones
- Ensure that attributes are only inserted during evaluation if its bone index is present in the required bones
- Added testing for remapping attributes
    * Remapping between LODs with removed bones
    * Remapping between Skeletal meshes with different skeleton hierarchies

#rb Thomas.Sarkanen
#preflight 61e8067e843acf1b2428c2be

#ROBOMERGE-OWNER: jurre.debaare
#ROBOMERGE-AUTHOR: jurre.debaare
#ROBOMERGE-SOURCE: CL 18657038 in //UE5/Release-5.0/... via CL 18657062 via CL 18657063
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592)

[CL 18657069 by jurre debaare in ue5-main branch]
2022-01-19 07:57:49 -05:00
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -05:00
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
fernando coello
f924b9bb4b BugFix: Simulation in physics editor is incorrect with "Simulation updates Component Transform"
#jira UE-129640
benn.gallagher

#ROBOMERGE-AUTHOR: fernando.coello
#ROBOMERGE-SOURCE: CL 17849253 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v883-17842818)

[CL 17849274 by fernando coello in ue5-release-engine-test branch]
2021-10-18 14:12:30 -04:00
john vanderburg
8fdf5f5c11 [MLDeformer]
- Initial icons.
- Introduced an editor style and linked colors and icons to it.
- Different wireframe colors for linear skinned, ml deformed, and ground truth meshes.
- Added support for adjusting wireframe color on UDebugSkelMeshComponent.
- Added support for adjusting wireframe color on UGeometryCacheComponent and its scene proxy.
- Some layout size tweaks.


#ROBOMERGE-AUTHOR: john.vanderburg
#ROBOMERGE-SOURCE: CL 17550017 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17550021 by john vanderburg in ue5-release-engine-test branch]
2021-09-17 05:56:48 -04:00
fernando coello
5e6a2d2fd3 Replaced ProcessRootMotion option in the Animation Editor with multiple modes (Ignore, Loop, and LoopAndReset)
Ignore: Preview mesh will not consume root motion
Loop: Preview mesh will consume root motion continually (same behavior that we had)
LoopAndReset: Preview mesh will consume root motion resetting the position back to the origin every time the animation loops
#jira none #review-17022356 [at]jurre.debaare, [at]aaron.cox #fyi [at]jaren.peterson #preflight 61087c925b2fb800017b95c5

#ROBOMERGE-SOURCE: CL 17054771 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v850-17047176)

[CL 17054799 by fernando coello in ue5-release-engine-test branch]
2021-08-04 13:21:33 -04:00
euan carmichael
2885a6cada Add a new option to debug skel mesh to allow debug mesh LOD to track the LOD of an attached instance in the level viewport
#rb Thomas.Sarkanen
#jira UE-118675

#ROBOMERGE-SOURCE: CL 16775251 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16775258 by euan carmichael in ue5-release-engine-test branch]
2021-06-24 12:33:21 -04:00
thomas sarkanen
cecebd0cf8 Anim blueprint encapsulation improvements
Adds 'template' anim BP concept. These anim BPs have no TargetSkeleton and as such cannot have direct references to animations placed inside of their anim graphs
Adds function call support from anim nodes. All anim graph nodes can now call functions when initialized, updated, evaluated or when they first become relevant.
Relevancy is established using a new FAnimSubsystemInstance_NodeRelevancy which tracks nodes in a local map, per UAnimInstance, if nodes require it.
Functions are displayed on the node if bound, and in the details panel.
Added a new override point to FAnimSubsystemInstance to allow for WT init.
Moved FMemberReference customization into a public header so it can be used on anim node functions.
Wrapped functions up into FAnimNodeFunctionRef structure so they can be re-used more effectively. Converted CallFunction node to use them.
Added a couple of simple BP function libraries to demonstrate the use of the new FAnimNodeContext (this is intended to be a generic way of exposing FAnimNode_Base types to script without the node types themselves having to be known to script directly).
Added the ability to set exposed properties as 'always dynamic' so they appear in mutable data rather than being merged into constants. This allows for the anim node data API to be changed to be less strict (and more script friendly). Now values can be set in mutable data (via GET_MUTABLE_ANIM_NODE_DATA_PTR) and attempted sets to constant data can be ignored and reported to client code.
A few minor crash fixes with edge cases (inc when trying to open an asset editor fails because of a missing skeleton/cancellation).
Also fixes an issue where literal linked anim graph/control rig/custom poroperty node inputs didnt get copied

#rb Jurre.deBaare,Aaron.Cox

#ROBOMERGE-SOURCE: CL 16703644 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16703653 by thomas sarkanen in ue5-release-engine-test branch]
2021-06-17 08:59:23 -04:00
Helge Mathee
abbcbad986 Control Rig: Capsule based bone selection
#rb sara.schvartzman kevin.ortegren
#jira UE-101243

[CL 16492444 by Helge Mathee in ue5-main branch]
2021-05-27 17:36:23 -04:00
aurel cordonnier
43fa62fcd8 Merge from Release-Engine-Test @ 16487383 to UE5/Main
This represents UE4/Main @ 16445039 and Dev-PerfTest @ 16444526

[CL 16488106 by aurel cordonnier in ue5-main branch]
2021-05-27 13:40:37 -04:00
Helge Mathee
0ef47e3ac3 Control Rig: Add option for bone radius drawing
#jira UE-114184
#rb audit

[CL 16384108 by Helge Mathee in ue5-main branch]
2021-05-19 09:16:54 -04:00
john vanderburg
4fbf61409d Bugfix related to skeleton remapping, where some if statement had to be inversed.
#rnx
#preflight 609416f8c68b5a00010369b7

[CL 16223426 by john vanderburg in ue5-main branch]
2021-05-06 13:40:04 -04:00
Andrew Davidson
3ddc3a4da3 Merge up from //UE5/Dev-LargeWorldCoordinates
#rb none

[CL 16211417 by Andrew Davidson in ue5-main branch]
2021-05-05 15:07:25 -04:00
matt kuhlenschmidt
30e485f0f8 Updated async task notifications to the new progress notification api and reskined a few misc notifications
#rb lauren.barnes

#ROBOMERGE-SOURCE: CL 15797475 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v783-15756269)

[CL 15807602 by matt kuhlenschmidt in ue5-main branch]
2021-03-24 16:26:43 -04:00
Thomas Sarkanen
b7771aaa90 Edigrating CLs 15666719 and 15675845.
Fixed check when blending curves when the required bones of linked anim instances were inconsistent with the main instance

This was caused by skeletal meshes streaming out setting the predicted LOD level without flagging required bones for recalculation, which meant that when a linked anim instance was created at a point where a LOD streamed out it could then build required bones at a different LOD to the main instance (e.g. main instance's required bones would be left at LOD 0, but linked instance's would be rebuilt at LOD 1).
Added accessors to the PredictedLODLevel and deprecated direct access to the member due to the potential for it to cause havoc if it is abused.

and

Prevent first-frame rendering issues when spawning LOD stripped skeletal meshes

#jira MH-3083
#jira UE-107627
#jira UE-78773
#jira FORT-354970
#jira FORT-345744
#jira FORT-355705
#rb Jurre.deBaare

[CL 15676600 by Thomas Sarkanen in ue5-main branch]
2021-03-11 10:57:49 -04:00
Jurre deBaare
2c933f4825 New Animation Attributes system, replacing Custom Attributes:
+ Attribute structures to UAnimDataModel
    * These are sampled/copied into AnimSequence whenever they change
+ Attribute related Notifies and Payloads
+ Controller API and Actions for Attribute related behaviour
+ Type traits (TAttributeTypeTraitsBase) to determine support functionality for user-defined attribute types
+ TAttributeContainer equivalent to TCustomAttributes, used for keeping track of attributes at runtime in a TMap similar fashion
    * Has two exported specializations FStack/Heap-AttributeContainer
+ IAttributeBlendOperator interface used for Attribute related operations in Anim graph
    * Allows for user-defined blending behaviour for their associated types
+ TAttributeBlendOperator providing out-of-the-box blending behaviour for user-defined types
+ FAttributeBlendData helper structure, this encapsulates and abstracts the blend / attribute operations
    * Exposes two iterators, allowing BlendOperator to loop through (type) overlapping Attributes and unique attributes
+ Float/Integer/String Animation Attribute structures used to support legacy TVariant CustomAttribute data types
+ Transform animation attribute structure to add support for single-FTransform based attributes
+ FAnimationAttributeIdentifier identifier used to reference an attribute in a script-friendly manor
+ AttributeTypes static API for registering Attribute types
+ FAttributeCurve providing a curve-type with an Attribute type as its underlying key-value
+ TWrappedAttribute helper structure to wrap end template operate on raw memory (TArray buffer)
+ Added tests for
    * Attribute related controller functionality and actions
    * Attribute curve key reduction
    * Evaluating attributes from AnimSequence
    * Attribute operations (blend, accumulate etc)
    * Functional testing for blendspace attribute evaluation and blending

* Changed default attribute blend type to Blend vs Override
* Updated FBX import/export paths to handle and use new Attribute data structures
* Attribute data is now incorporated into animation source data DDC key
* Deprecated Custom Attributes stored on AnimSequence get converted into their equivalent Attribute structures
* Deprecated all previous CustomAttribute structures, APIs and files
* Corrected some comments in UAnimDataController.h
* Updated existing custom attribute tests to adhere to new blend expectations/behaviour
* Updated AnimSequence resize tests to also incorporate an attribute curve
* Changed layered bone blend to use .5 blend weight vs 1.0 to cover more behaviour
* Added transform attribute used to compare against bone transform during pre-existing functional testing (blended only)

- Deleted CustomAttributes details customization

#rb Thomas.Sarkanen
#fyi kiaran.ritchie, koray.hagen, timothy.daoust

[CL 15568420 by Jurre deBaare in ue5-main branch]
2021-03-02 09:04:09 -04:00
john vanderburg
398515a9d3 Initial support for skeletal remapping, which allows you to play animation assets from one skeleton onto the other.
[CL 15464346 by john vanderburg in ue5-main branch]
2021-02-18 18:42:00 -04:00
danny chapman
9a6d7ca014 Reworks BlendSpace to make UBlendSpace the main runtime class, which is able to handle 1 and 2 dimensions.
#jira UE-108155
#rb thomas.sarkanen

[CL 15406467 by danny chapman in ue5-main branch]
2021-02-15 10:12:58 -04:00
Zousar Shaker
fc2ad21a5e Prototype Wrapped Object Pointers (ObjectHandle/ObjectPtr)
Call-site changes for non-scalar wrapped object pointer upgrades in Engine + Shootergame

#rb devin.doucette

[CL 14996467 by Zousar Shaker in ue5-main branch]
2021-01-05 19:16:25 -04:00
Marc Audy
ada7c144fa Merge //UE5/Release-Engine-Staging @14903491 to //UE5/Main
[CL 14906022 by Marc Audy in ue5-main branch]
2020-12-11 14:21:20 -04:00
Alexis Matte
73d83c6a38 To protect the skeletalmesh when using async operations like build or re-import we deprecate all public member variables of USkeletalMesh class and create the necessary getter and setter. Those member will stay public but will be move to private in a future release.
Adding a public member to USkeletalMesh class is now prohibed since it can break asynchronous operations that will be added next to this submit.

#rb danny.couture
#jira UEENT-3936
#rnx

[CL 14812920 by Alexis Matte in ue5-main branch]
2020-11-25 11:17:08 -04:00