16 GENERATED_USTRUCT_BODY()
21 UPROPERTY(EditAnywhere, Category = Skeletal, meta = (PinShownByDefault))
25 UPROPERTY(EditAnywhere, Category = Skeletal, meta = (PinShownByDefault))
30 UPROPERTY(EditAnywhere, Category = Skeletal, meta = (PinShownByDefault))
31 bool bOnlyApplyWristTransform;
34 UPROPERTY(EditAnywhere, Category = Skeletal, meta = (PinShownByDefault))
39 UPROPERTY(EditAnywhere, Category = Skeletal, meta = (PinHiddenByDefault))
42 bool bIsOpenInputAnimationInstance;
44 void ConvertHandTransformsSpace(TArray<FTransform>& OutTransforms, TArray<FTransform>& WorldTransforms, FTransform AddTrans,
bool bMirrorLeftRight,
bool bMergeMissingUE4Bones);
46 FTransform GetRefBoneInCS(TArray<FTransform>& RefBones, TArray<FMeshBoneInfo>& RefBonesInfo, int32 BoneIndex)
48 FTransform BoneTransform;
52 BoneTransform = RefBones[BoneIndex];
53 if (RefBonesInfo[BoneIndex].ParentIndex >= 0)
55 BoneTransform *= GetRefBoneInCS(RefBones, RefBonesInfo, RefBonesInfo[BoneIndex].ParentIndex);
62 void SetVectorToMaxElement(FVector& vec)
64 float aX = FMath::Abs(vec.X);
65 float aY = FMath::Abs(vec.Y);
70 if (FMath::Abs(vec.Z) < aX)
78 if (FMath::Abs(vec.Z) < aY)
87 virtual void EvaluateSkeletalControl_AnyThread(FComponentSpacePoseContext& Output, TArray<FBoneTransform>& OutBoneTransforms)
override;
88 virtual bool IsValidToEvaluate(
const USkeleton* Skeleton,
const FBoneContainer& RequiredBones)
override;
91 virtual bool NeedsOnInitializeAnimInstance()
const override {
return true; }
92 virtual void InitializeBoneReferences(
const FBoneContainer& RequiredBones)
override;
94 virtual void Initialize_AnyThread(
const FAnimationInitializeContext& Context)
override;
95 virtual void CacheBones_AnyThread(
const FAnimationCacheBonesContext& Context)
override;