Commit Graph

81 Commits

Author SHA1 Message Date
jack cai
7ee77c3e3d [AnimationCore] Expose EEulerRotationOrder as blueprint type, which should be the enum to use when it comes to rotation order across animtion systems, including control rig.
[CL 35772387 by jack cai in ue5-main branch]
2024-08-23 11:49:24 -04:00
steve robb
113b9f7214 Replaced EAutomationTestFlags::ApplicationContextMask with EAutomationTestFlags_ApplicationContextMask.
[CL 34335267 by steve robb in ue5-main branch]
2024-06-13 06:50:46 -04:00
halfdan ingvarsson
4270309191 Bone Weight: Fix incorrect type.
#rnx

[CL 32896383 by halfdan ingvarsson in ue5-main branch]
2024-04-11 13:26:00 -04:00
steve robb
f029468598 Fixed up a lot of bool-taking container resize functions to take EAllowShrinking instead.
[CL 30729174 by steve robb in ue5-main branch]
2024-01-19 16:41:35 -05:00
kiaran ritchie
959c72b0a4 Adding "soft IK" to LegIK anim node.
#rb jose.villarroel
#JIRA UE-201320

[CL 30164446 by kiaran ritchie in ue5-main branch]
2023-12-06 14:46:33 -05:00
nicholas frechette
068c565a2c Use correct bone indices when using the new LOD pose API
Adding comments and clarifications
Minor tweaks

#rb Thomas.Sarkanen

[CL 28413374 by nicholas frechette in ue5-main branch]
2023-10-03 10:23:37 -04:00
henrik karlsson
5db685f97d [Engine]
* Moved dllexport from type to methods/staticvar in all Engine runtime code. This improves compile times, memory and performance in dll builds

[CL 26082269 by henrik karlsson in ue5-main branch]
2023-06-17 18:13:06 -04:00
mike zyracki
5cacea9c44 Rotation Order: Sequencer: Control Rig: New Rotation Orders Add flag to Control RigelElements to specify whether not to use the preferred angles if we do we set them when setting control rig transforms if we are flipping eulers. We also directly set the preferred angles in particularly when coming from Sequencer. We currently use use the Setting preferrend angle values but have set it up so we may be able to override this later from the anmator. There was a bug with SetControlLocalTransform not flipping eulers due to the fact it has a different signature(missing the bPythonPrint flag) then SetControlGlobalTransform. Since ue has crazy right/left hand mix added some flags to the converion functions in the animation core library to specify we should keep the rotations in UE handyness when converting.
#jira UE-185156
#rb benoit.gadreau, helge.mathee

[CL 25969641 by mike zyracki in ue5-main branch]
2023-06-13 21:14:42 -04:00
nick edwards
d4cc9115a9 Fix C++20 compile error. Convert FBoneIndexWithOperators comparison operators to hidden friends so that Lhs is RealBoneIndexType to match Rhs, instead of Lhs being FBoneIndexWithOperators<RealBoneIndexType>, which causes ambiguity. Provide reversed comparison operator overloads for RealBoneIndexType and int32 to match what C++20 will generate. Disable certain comparison operators in FBoneIndexWithOperators for platforms with generated comparison operators.
#preflight 641886b48354cad0faccc12e
#rb none
#jira none

[CL 24729798 by nick edwards in ue5-main branch]
2023-03-21 06:32:11 -04:00
benoit gadreau
77c2722f31 Constraints: per axis filter
#jira UE-174108
#rb mike.zyracki
#preflight 63d91938ba4fadeef07bbcf4

[CL 23949516 by benoit gadreau in ue5-main branch]
2023-02-01 11:14:36 -05:00
halfdan ingvarsson
974a7351f4 Fix System.AnimationCore.BoneWeights.Settings test to match reality.
#jira none
#rnx
#preflight 63cb17d8b91ac945f533e682

[CL 23798609 by halfdan ingvarsson in ue5-main branch]
2023-01-20 17:45:27 -05:00
halfdan ingvarsson
0179db1d12 Fix issues with alternate skin profiles and high-precision skin weights
#preflight 63c746a702024f93d88fb1e4
#rb alexis.matte
#jira none
#rnx

[CL 23790797 by halfdan ingvarsson in ue5-main branch]
2023-01-20 11:12:19 -05:00
rinat abdrashitov
1da1ecb3f0 -Added a new flag (bBlendZeroInfluence) to the FBoneWeightSettings to allow control over how zero-influence bones are treated during the blend. The Blend method will now consider the flag when performing the interpolation.
-Added a Blend function overload that handles barycentric interpolation of 3 skin weights.
-Refactored SetBoneWeightsFromBary (in DynamicVertexSkinWeightsAttribute.h) and ConstructVertexSkinWeightsAttribute (in SelectiveTessellate.cpp) functions to use the newly added Blend function for barycentric interpolation.
-Since the default Blend behavior has changed, make sure that unit tests in BoneWeightTests.cpp are refactored. Added more tests for cases when bBlendZeroInfluence is set to true and when using Blend for barycentric interpolation.

#rb halfdan.ingvarsson
#jira None
#preflight 6361de120c2e7c8f91668a75

[CL 22921407 by rinat abdrashitov in ue5-main branch]
2022-11-02 13:53:31 -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
jaime cifuentes
bbd23fff36 Truncation fixes for AnimationCore module
#rb @halfdan.ingvarsson
#jira UE-166631
#preflight 634e5c746543aa1c1ac2592e

[CL 22595141 by jaime cifuentes in ue5-main branch]
2022-10-18 04:02:23 -04:00
halfdan ingvarsson
e2210cb024 Support for 16-bit skin weights on the skelmesh.
The main change is that FSoftSkinVertex, used by FSkeletalMeshLODModel, in now stores weights as 16-bit after conversion from the import data. This increases the size of each FSoftSkinVertex from 144 bytes to 160 bytes (about 10% increase). By default render meshes still use 8-bit skin weights, with weights downshifted from the 16-bit modeling data, so no change in GPU memory consumption there. However, the vertex buffer will automatically return a 16-bit skin weights when requested from the GPU side (e.g. for CPU skinning and viewing tangents).

This change in the model data and vertex buffer CPU-side query, resulted in many changes throughout the codebase and will have an effect on licensees who are actively reading from and writing to these two storage locations.

The GPU skin cache shader has had one more permutation added when not using unlimited skin weights. The vertex factory is not affected.

#jira UE-164386
#rb alexis.matte, josie.yang
#preflight 632c0c5ab4515b7e22b4804d

[CL 22215219 by halfdan ingvarsson in ue5-main branch]
2022-09-27 19:48:05 -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
jack cai
4b9882c776 AnimationCore: relax the condition for checking the singularity a bit, use 1 - KINDA_SMALL_NUMBER instead of 1 - SMALL_NUMBER
#jira none
#rb halfdan.ingvarsson, sara.schvartzman, benoit.gadreau,
#preflight https://horde.devtools.epicgames.com/job/6319972f2b7fe03eb697f5a6

[CL 21979461 by jack cai in ue5-main branch]
2022-09-13 02:08:52 -04:00
Bryan sefcik
b4a6e947d8 Ran IWYU on Public headers under Engine/Source/Runtime/...
Headers are updated to contain any missing #includes needed to compile and #includes are sorted.  Nothing is removed.

#ushell-cherrypick of 21065896 by bryan.sefcik
#preflight 62d4b1a5a6141b6adfb0c892
#jira

#ROBOMERGE-OWNER: Bryan.sefcik
#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21150156 via CL 21151754 via CL 21154719
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
#ROBOMERGE-CONFLICT from-shelf

[CL 21181076 by Bryan sefcik in ue5-main branch]
2022-07-20 11:31:36 -04:00
David Hill
7431f7f073 AnimationCore: BoneWeights. Make conversion to uint16 explicit
#rb Halfdan.Ingvarsson
#preflight 62d5c960d54af4b9a23bf4ea

[CL 21162816 by David Hill in ue5-main branch]
2022-07-19 11:13:18 -04:00
Mike Zyracki
6050797bba Constraints: Add PIE, serialization, and BP/Python support.
For PIE got rid of just using the level editor world, and removed it as a UPROPERTY. We now get it dynamically.
For constrol rig serialization just needed to make the pointer that's held a soft object ptr. It will resolve automagically when the level sequence is loaded. Not sure if we should store a soft object ptr to that also so we can tell the user which level sequence(s) they need to load.
For BP/Python added a library to handle the  add/create/get functions. and then exposed BP to the handles and the tickable constraints.  Also added function for the Control Rig to dynamically create the handle so we can script it.

#jira na
#rb benoit.gadreau
#preflight 62bb4fa630036d0db92ece26

[CL 20863534 by Mike Zyracki in ue5-main branch]
2022-06-28 15:58:02 -04:00
Helge Mathee
b9150e2620 Control Rig: Support for preferred euler angles
- Removed implicit casts between FEulerTransform and FTransform
- moved interrogator and tokens inside of sequencer to use FEulerTransform
- added the notion of a preferred rotator for Controls. transform takes precedence for runtime solves, but UI / sequencer relies on the preferred rotator

#rb mike.zyracki benoit.gadreau
#jira UE-150830
#preflight https://horde.devtools.epicgames.com/job/62875a58286cf1867a419989

[CL 20298666 by Helge Mathee in ue5-main branch]
2022-05-20 13:48:08 -04:00
benoit gadreau
77439b7338 Constraints in Sequencer experiments
#jira UE-140598
#rb mike.zyracki
#fyi chase.cooper
#preflight 62820966fa65e101e5ca23b9

This is a first prototype of a constraints manager system.

note: have a look at the jira description for the features leading this work

The current design is based on the idea of having a unique constraint manager that stores several constraints (UTickableConstraint).
Each constraint holds a tick function (FConstraintTickFunction) that can register one or several functions (represented by a basic TFunction) that are evaluated when calling
the FConstraintTickFunction::ExecuteTick function. This FConstraintTickFunction can basically represent anything.

[CL 20221291 by benoit gadreau in ue5-main branch]
2022-05-16 04:56:23 -04:00
helge mathee
3388f916c6 Control Rig: Improve performance of constraint nodes
* Guarded conditional branch code paths
* Replaced name / key based lookups with cached keys.

#rb jack.cai kiaran.ritchie
#preflight https://horde.devtools.epicgames.com/job/623af760bc1cf2803874b7aa

#ROBOMERGE-AUTHOR: helge.mathee
#ROBOMERGE-SOURCE: CL 19514518 via CL 19514529 via CL 19514532
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)

[CL 19516861 by helge mathee in ue5-main branch]
2022-03-25 14:25:34 -04:00
Helge Mathee
80cb75fa33 Control Rig: refactor details panel to show any node, support vector, rotator and transform widgets
#rb sara.schvartzman
#jira UE-139767 UE-121980
#preflight https://horde.devtools.epicgames.com/job/620cde9301253d2e1906c4eb

[CL 19012796 by Helge Mathee in ue5-main branch]
2022-02-16 07:27:08 -05:00