Also fixes type conversions (first time I have tried to convert to a base class and found that my IsChildOf check was the wrong way around).
Plus some extra accessors added for exec/update contexts.
Found the need for these when doing show & tell prep.
#rb Jurre.deBaare
#ROBOMERGE-SOURCE: CL 17367354 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)
[CL 17367419 by thomas sarkanen in ue5-release-engine-test branch]
Fixes anim task blocking on RB sim task and doing 0 work, now taskgraph schedules work and doesn't lock up extra threads.
#jira UE-120634
#rb chris.caulfield
#ROBOMERGE-SOURCE: CL 17083918 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)
[CL 17083927 by max whitehead in ue5-release-engine-test branch]
Tweaks to the rendering of blendspaces, including separating the graph from the buttons
Context menu changes for the sample details
Changes to AnimationBlueprintLibrary and AnimPose from Jurre to help get the poses during analysis
#jira UE-114512
#rb thomas.sarkanen
#ROBOMERGE-SOURCE: CL 16356830 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v804-16311228)
[CL 16356839 by danny chapman in ue5-release-engine-test branch]
#rb none
#ROBOMERGE-SOURCE: CL 13076180 via CL 13076183 via CL 13076187 via CL 13076189
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v686-13045012)
[CL 13076190 by chris caulfield in Main branch]
#rb none
#ROBOMERGE-SOURCE: CL 12985866 via CL 12985867 via CL 12985871 via CL 12985874
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288)
[CL 12985878 by chris caulfield in Main branch]
#rb none
#ROBOMERGE-SOURCE: CL 11091160 via CL 11091161 via CL 11091162 via CL 11091163
#ROBOMERGE-BOT: (v640-11091645)
[CL 11093023 by chris caulfield in Main branch]
- expose RBAN iteration counts in PhAt, RBAN and blueprint
- hook up physics materials
- adjust default line thickness
[FYI] ori.cohen,benn.gallagher
#rb none
#ROBOMERGE-SOURCE: CL 11060506 via CL 11060509 via CL 11061546 via CL 11061564
#ROBOMERGE-BOT: (v637-11041722)
[CL 11061581 by chris caulfield in Main branch]
- remove Cholesky solver calling code
- rename Chaos collision and joint stats
- add drag handles to RBAN editing in PhAt
#rb none
#ROBOMERGE-SOURCE: CL 10995456 via CL 10995464 via CL 10995468 via CL 10995475
#ROBOMERGE-BOT: (v633-10983880)
[CL 10995481 by chris caulfield in Main branch]
#rnx
#rb none
#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)
[CL 10870549 by ryan durand in Main branch]
#rb none
#ROBOMERGE-SOURCE: CL 10837680 via CL 10841173 via CL 10843458 via CL 10843562
#ROBOMERGE-BOT: (v610-10636431)
[CL 10843725 by chris caulfield in Main branch]
#rb jordan.cristiano, chris.caulfield, thomas.sarkanen
[FYI] ben.woodhouse, chris.bunner
#ROBOMERGE-SOURCE: CL 9603884 via CL 9603950 via CL 9603954
#ROBOMERGE-BOT: (v526-9587114)
[CL 9604203 by andrew ladenberger in Main branch]
#rb none
#ROBOMERGE-OWNER: michael.lentine
#ROBOMERGE-AUTHOR: michael.lentine
#ROBOMERGE-SOURCE: CL 9374650 via CL 9374665
#ROBOMERGE-BOT: (v456-9359915)
[CL 9385990 by michael lentine in Main branch]
A collection of major and minor optimizations to anim instance initialization.
Major:
- Added defered root node init. When an anim instance is set to init to refpose, this defers the first call to initialize the blend tree until just before the first Update() call, on a worker thread.
- Skip ConditionallyCacheBonesForState in state machines in the case where we would call CacheBones_AnyThread during first Initialize_AnyThread. This avoids duplicate work being done, as graph traversal counters will let through sychronization calls if they have yet to be updated (ie. their count is INDEX_NONE).
- Cache access to nodes that need pre-update, dynamic reset, one-time initialization, as well as state machines in the generated class to avoid iterating all anim nodes on initialization.
Minor:
- Cache access to node properties when re-linking nodes to avoid duplicate memory round-trips.
- Cache access to LUT size in FBaseBlendedCurve::GetValidElementCount, avoiding duplicate memory round-trips.
- Prevent FName rehashing from string (intended to strip whitespace) when initializing FBoneReferences.
- Cache access to AnimCurveMapping smart name container on USkeleton, preventing a TMap lookup every time we access the smart name container.
- USkeleton::GetCurveMetaData now uses a 'fast path' when accessing using smart name UID. In this case we can avoid the TMap lookup as the UID is always a direct index to metadata at runtime (slow path still applies in editor builds).
- Avoid calling FAnimNode_LayeredBoneBlend::ReinitializeBoneBlendWeights in Initialize_AnyThread, as CacheBones_AnyThread will be called straight after anyways.
- Cache access to curve UID count and LinkedBones array in FAnimNode_LayeredBoneBlend::ReinitializeBoneBlendWeights, avoiding duplicate memory round-trips.
Upgrade notes:
- Breaking change! Custom anim nodes that implement OnInitializeAnimInstance now need to return true for the new accessor NeedsOnInitializeAnimInstance to be called at init time.
- The meaning of HasPreUpdate and NeedsDynamicReset has changed slightly. Previously these were called at init time, so if their results were mutable it was possible to re-init an anim instance with new settings. Now they are called at CDO load time this is no longer possible.
#rb Martin.Wilson
#ROBOMERGE-SOURCE: CL 8686415 via CL 8686419 via CL 8689513
#ROBOMERGE-BOT: (v422-8689730)
[CL 8695271 by thomas sarkanen in Main branch]