UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LiveLinkAnimationTypes.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "LiveLinkTypes.h"
6#include "LiveLinkAnimationTypes.generated.h"
7
8
12USTRUCT(BlueprintType)
14{
16
17public:
18
19 // Set the bone names for this skeleton
20 void SetBoneNames(const TArray<FName>& InBoneNames) { BoneNames = InBoneNames; }
21
22 // Get the bone names for this skeleton
23 const TArray<FName>& GetBoneNames() const { return BoneNames; }
24
25 // Set the parent bones for this skeleton (Array of indices to parent)
27
28 //Get skeleton's parent bones array
29 const TArray<int32>& GetBoneParents() const { return BoneParents; }
30
31 // Find skeleton root bone, which is the bone with an invalid parent bone index.
32 int32 FindRootBone() const { return BoneParents.IndexOfByPredicate([](int32 BoneParent){ return BoneParent < 0; }); }
33
34public:
35
36 // Names of each bone in the skeleton
37 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Skeleton")
38 TArray<FName> BoneNames;
39
40 // Parent Indices: For each bone it specifies the index of its parent
41 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Skeleton")
42 TArray<int32> BoneParents;
43};
44
48USTRUCT(BlueprintType)
50{
52
53public:
54
55 // Array of transforms for each bone of the skeleton
56 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Skeleton")
57 TArray<FTransform> Transforms;
58};
59
61USTRUCT()
63{
65
66 // Converts double-precision float animation data to single-precision float animation data.
68 {
70
73
74 FloatData.Transforms.Reserve(InAnimData.Transforms.Num());
75 Algo::Transform(InAnimData.Transforms, FloatData.Transforms, [](const FTransform& Transform) { return FTransform3f(Transform); });
76
77 return FloatData;
78 }
79
80 // Converts single-precision float animation data to double-precision float animation data.
82 {
84
86 *dynamic_cast<FLiveLinkBaseFrameData*>(&AnimData) = *BaseFrameData;
87
88 AnimData.Transforms.Reserve(InFloatData.Transforms.Num());
89 Algo::Transform(InFloatData.Transforms, AnimData.Transforms, [](const FTransform3f& Transform) { return FTransform(Transform); });
90
91 return AnimData;
92 }
93
94 // Array of transforms for each bone of the skeleton
95 UPROPERTY()
96 TArray<FTransform3f> Transforms;
97};
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
Definition NameTypes.h:617
Definition Array.h:670
void Transform(const InT &Input, OutT &&Output, TransformT Trans)
Definition Transform.h:66
Definition LiveLinkAnimationTypes.h:50
TArray< FTransform > Transforms
Definition LiveLinkAnimationTypes.h:57
Definition LiveLinkTypes.h:217
Definition LiveLinkTypes.h:256
Definition LiveLinkAnimationTypes.h:63
static FLiveLinkFloatAnimationFrameData FromAnimData(const FLiveLinkAnimationFrameData &InAnimData)
Definition LiveLinkAnimationTypes.h:67
static FLiveLinkAnimationFrameData ToAnimData(const FLiveLinkFloatAnimationFrameData &InFloatData)
Definition LiveLinkAnimationTypes.h:81
Definition LiveLinkAnimationTypes.h:14
const TArray< int32 > & GetBoneParents() const
Definition LiveLinkAnimationTypes.h:29
void SetBoneNames(const TArray< FName > &InBoneNames)
Definition LiveLinkAnimationTypes.h:20
void SetBoneParents(const TArray< int32 > InBoneParents)
Definition LiveLinkAnimationTypes.h:26
const TArray< FName > & GetBoneNames() const
Definition LiveLinkAnimationTypes.h:23
int32 FindRootBone() const
Definition LiveLinkAnimationTypes.h:32