A licensee has reported that the USkinnedMeshComponent::FindClosestBone function does not respect the bRequiresPhysicsAsset parameter, resulting in the bone returning bones that are not part of the physics asset. This is being caused by this line:
bPassPACheck = (PhysAsset->BodySetupIndexMap.FindRef(BoneName) != INDEX_NONE)
The BodySetupIndexMap.FindRef(BoneName) is returning 0 in these cases, which still passes the check as INDEX_NONE is equal to -1.
The licensee has proposed a fix which involves changing the line to the following:
bPassPACheck = (PhysAsset->BodySetupIndexMap.Find(BoneName) != nullptr);
Regression?: No
This code was also present in 4.14
N/A - Code issue
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-43061 in the post.
2 |
Component | OLD - Anim |
---|---|
Affects Versions | 4.14, 4.15, 4.16 |
Target Fix | 4.16 |
Fix Commit | 3365505 |
---|---|
Main Commit | 3385232 |
Created | Mar 20, 2017 |
---|---|
Resolved | Mar 27, 2017 |
Updated | Apr 27, 2018 |