1.2 KiB
1.2 KiB
title, date, excerpt, tags, rating
title | date | excerpt | tags | rating |
---|---|---|---|---|
UE5动画重定向笔记 | 2023-08-18 18:08:12 | ⭐ |
ConvertAnimation()
主要逻辑位于UAnimationEditorUtilityLibrary::ConvertAnimation()
或者FIKRetargetBatchOperation::ConvertAnimation()
。核心重定向逻辑为UIKRetargetProcessor::RunRetargeter()
。
RunRootRetarget()
FRootRetargeter::EncodePose():
取得输入的根骨骼Transform数据并给FRootSource Source
赋值。
FRootRetargeter::DecodePose():
// InitialTransform 为重定向Pose计算出的数值,通过比值计算出Target的Current数值
const FTransform InitialTransform = SourceSkeleton.RetargetGlobalPose[Source.BoneIndex];
float InitialHeight = InitialTransform.GetTranslation().Z;
Source.InitialHeightInverse = 1.0f / InitialHeight;
Source.CurrentPositionNormalized = Source.CurrentPosition * Source.InitialHeightInverse;
// generate basic retarget root position by scaling the normalized position by root height
const FVector RetargetedPosition = Source.CurrentPositionNormalized * Target.InitialHeight;
RunFKRetarget()
FChainEncoderFK::EncodePose(): 从骨骼链拷贝全局输入到CurrentGlobalTransforms
FChainDecoderFK::DecodePose():