vault backup: 2023-09-05 14:08:09
This commit is contained in:
parent
51c423bd26
commit
a7da7c61f1
37
03-UnrealEngine/Animation/UE5商城动画重定向插件笔记.md
Normal file
37
03-UnrealEngine/Animation/UE5商城动画重定向插件笔记.md
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
title: UE5商城动画重定向插件笔记
|
||||||
|
date: 2023-09-05 12:02:29
|
||||||
|
excerpt:
|
||||||
|
tags:
|
||||||
|
- AnimationRetargeting
|
||||||
|
rating: ⭐
|
||||||
|
---
|
||||||
|
# MixamoAnimationRetargeting
|
||||||
|
主要逻辑位于:FMixamoSkeletonRetargeter
|
||||||
|
- UE4MannequinToMixamo_BoneNamesMapping
|
||||||
|
- UE4MannequinToMixamo_ChainNamesMapping
|
||||||
|
- UE5MannequinToMixamo_BoneNamesMapping
|
||||||
|
- UE5MannequinToMixamo_ChainNamesMapping
|
||||||
|
|
||||||
|
重定向逻辑位于:FMixamoSkeletonRetargeter::Retarget()
|
||||||
|
|
||||||
|
## 判断骨骼格式
|
||||||
|
```c++
|
||||||
|
bool FSkeletonMatcher::IsMatching(const USkeleton* Skeleton) const
|
||||||
|
{
|
||||||
|
// No Skeleton, No matching...
|
||||||
|
if (Skeleton == nullptr)
|
||||||
|
{ return false;
|
||||||
|
}
|
||||||
|
const int32 NumExpectedBones = BoneNames.Num();
|
||||||
|
int32 nMatchingBones = 0;
|
||||||
|
const FReferenceSkeleton & SkeletonRefSkeleton = Skeleton->GetReferenceSkeleton();
|
||||||
|
for (int32 i = 0; i < NumExpectedBones; ++i)
|
||||||
|
{ const int32 BoneIndex = SkeletonRefSkeleton.FindBoneIndex(BoneNames[i]);
|
||||||
|
if (BoneIndex != INDEX_NONE)
|
||||||
|
{ ++nMatchingBones;
|
||||||
|
} } const float MatchedPercentage = float(nMatchingBones) / float(NumExpectedBones);
|
||||||
|
|
||||||
|
return MatchedPercentage >= MinimumMatchingPerc;
|
||||||
|
}
|
||||||
|
```
|
Loading…
x
Reference in New Issue
Block a user