Description

A Crash can occur when setting a skeletal mesh's animation instance to None when it has Update Rate Optimizations enabled.

 

An unverified proposed fix for this is to remove the nullptr check when setting bInvalidCachedCurve within RefreshBoneTransforms.

Steps to Reproduce

Enable Update Rate Optimizations on a skeletal mesh with an animation BP

Play

Set the skeletal mesh's anim instance to None

 

Reproduction is unreliable

Callstack

FBaseBlendedCurve<FDefaultAllocator>::GetValidElementCount(const TArray<unsigned short,FDefaultAllocator> * InUIDToArrayIndexLUT) Line 385 C++
FBaseBlendedCurve<FDefaultAllocator>::CopyFrom(const FBaseBlendedCurve<FDefaultAllocator> & CurveToCopyFrom) Line 580 C++
USkeletalMeshComponent::RefreshBoneTransforms(FActorComponentTickFunction * TickFunction) Line 2120 C++
USkinnedMeshComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction * ThisTickFunction) Line 796 C++
USkeletalMeshComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction * ThisTickFunction) Line 1247 C++

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-79523 in the post.

1
Login to Vote

Fixed
ComponentAnim
Affects Versions4.22
Target Fix4.24
Fix Commit10258995
Main Commit10259021
Release Commit10258995
CreatedAug 28, 2019
ResolvedNov 15, 2019
UpdatedNov 18, 2019