UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AttributesRuntime.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7#include "UObject/NameTypes.h"
9
10#include "Containers/Map.h"
11#include "CoreTypes.h"
14
16
17#include "UObject/Class.h"
19
22
24struct FBlendSampleData;
25struct FBoneContainer;
26
29
33
35
36namespace UE
37{
38 namespace Anim
39 {
40 struct FStackAttributeContainer : public TAttributeContainer<FCompactPoseBoneIndex, FAnimStackAllocator> {};
41 struct FHeapAttributeContainer : public TAttributeContainer<FCompactPoseBoneIndex, FDefaultAllocator> {};
42 struct FMeshAttributeContainer : public TAttributeContainer<FMeshPoseBoneIndex, FDefaultAllocator> {};
43
45 template<class BoneIndexType, typename InAllocator>
51
52 struct FStackAttributeContainerAccessor : public TAttributeContainerAccessor<FCompactPoseBoneIndex, FAnimStackAllocator> {};
53 struct FHeapAttributeContainerAccessor : public TAttributeContainerAccessor<FCompactPoseBoneIndex, FDefaultAllocator> {};
54
57 {
58#if WITH_EDITOR
59 UE_DEPRECATED(5.1, "GetAttributeValue with signature using FAnimExtractContext is deprecated use other version instead")
60 static ENGINE_API void GetAttributeValue(FStackAttributeContainer& OutAttributes, const FCompactPoseBoneIndex& PoseBoneIndex, const FAnimatedBoneAttribute& Attribute, const FAnimExtractContext& ExtractionContext);
61
62 static ENGINE_API void GetAttributeValue(FStackAttributeContainer& OutAttributes, const FCompactPoseBoneIndex& PoseBoneIndex, const FAnimatedBoneAttribute& Attribute, double CurrentTime);
63#endif // WITH_EDITOR
64
66 static ENGINE_API void BlendAttributes(const TArrayView<const FStackAttributeContainer> SourceAttributes, const TArrayView<const float> SourceWeights, FStackAttributeContainer& OutAttributes);
67
69 static ENGINE_API void BlendAttributes(const TArrayView<const FStackAttributeContainer* const> SourceAttributes, const TArrayView<const float> SourceWeights, FStackAttributeContainer& OutAttributes);
70
73
74 /* Blend custom attribute values from 2 inputs, using per-bone weights */
76
77 /* Blend custom attribute values from N set of inputs, using N number of blend samples */
78 static ENGINE_API void BlendAttributesPerBone(TArrayView<const FStackAttributeContainer> SourceAttributes, TArrayView<const int32> PerBoneInterpolationIndices, TArrayView<const FBlendSampleData> BlendSampleDataCache, FStackAttributeContainer& OutAttributes);
79
80 /* Blend custom attribute values from N set of inputs, using N number of blend samples */
82
83 /* Blend custom attribute values from N set of inputs, using bone filter pose weights */
85
87 static ENGINE_API void OverrideAttributes(const FStackAttributeContainer& SourceAttributes, FStackAttributeContainer& OutAttributes, float Weight);
88
90 static ENGINE_API void AccumulateAttributes(const FStackAttributeContainer& SourceAttributes, FStackAttributeContainer& OutAttributes, float Weight, EAdditiveAnimationType AdditiveType);
91
94
96 static ENGINE_API void CopyAndRemapAttributes(const FMeshAttributeContainer& SourceAttributes, FStackAttributeContainer& OutAttributes, const TMap<int32, int32>& BoneMapToSource, const FBoneContainer& RequiredBones);
97
100
102 static ENGINE_API void MirrorAttributes(FStackAttributeContainer& Attributes, const UMirrorDataTable& MirrorDataTable, const TArray<FCompactPoseBoneIndex>& CompactPoseMirrorBones);
103
104 UE_DEPRECATED(5.2, "MirrorAttributes has been deprecated, use other signature instead")
106
109
112 };
113 }
114}
115
116struct ENGINE_API UE_DEPRECATED(5.0, "FStackCustomAttributes has been deprecated use UE::Anim::FStackAttributeContainer instead") FStackCustomAttributes : public UE::Anim::FStackAttributeContainer {};
117struct ENGINE_API UE_DEPRECATED(5.0, "FStackCustomAttributes has been deprecated use UE::Anim::FStackAttributeContainer instead") FHeapCustomAttributes : public UE::Anim::FHeapAttributeContainer {};
118
EAdditiveAnimationType
Definition AnimTypes.h:575
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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
ECustomAttributeBlendType
Definition CustomAttributes.h:19
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition NameTypes.h:617
Definition ArrayView.h:139
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition MirrorDataTable.h:102
int
Definition TestServer.py:515
Definition AdvancedWidgetsModule.cpp:13
Definition AnimationAsset.h:267
Definition IAnimationDataModel.h:105
Definition AnimationAsset.h:122
Definition BoneContainer.h:192
Definition BoneIndices.h:63
Definition AttributesRuntime.h:57
static ENGINE_API void BlendAttributesPerBone(const FStackAttributeContainer &SourceAttributes1, const FStackAttributeContainer &SourceAttributes2, const TArrayView< const float > WeightsOfSource2, FStackAttributeContainer &OutAttributes)
Definition AttributesRuntime.cpp:324
static ENGINE_API void BlendAttributesPerBoneFilter(const FStackAttributeContainer &BaseAttributes, const TArrayView< const FStackAttributeContainer > BlendAttributes, const TConstArrayView< FPerBoneBlendWeight > BoneBlendWeights, FStackAttributeContainer &OutAttributes)
Definition AttributesRuntime.cpp:420
static ENGINE_API ECustomAttributeBlendType GetAttributeBlendType(const FName &InName)
Definition AttributesRuntime.cpp:602
static ENGINE_API void MirrorAttributes(FStackAttributeContainer &Attributes, const UMirrorDataTable &MirrorDataTable, const TArray< FCompactPoseBoneIndex > &CompactPoseMirrorBones)
Definition AttributesRuntime.cpp:448
static ENGINE_API void AccumulateAttributes(const FStackAttributeContainer &SourceAttributes, FStackAttributeContainer &OutAttributes, float Weight, EAdditiveAnimationType AdditiveType)
Definition AttributesRuntime.cpp:118
static ENGINE_API void InterpolateAttributes(FMeshAttributeContainer &FromAttributes, const FMeshAttributeContainer &ToAttributes, float Alpha)
Definition AttributesRuntime.cpp:190
static ENGINE_API void BlendAttributes(const TArrayView< const FStackAttributeContainer > SourceAttributes, const TArrayView< const float > SourceWeights, FStackAttributeContainer &OutAttributes)
Definition AttributesRuntime.cpp:36
static ENGINE_API void CopyAndRemapAttributes(const FMeshAttributeContainer &SourceAttributes, FStackAttributeContainer &OutAttributes, const TMap< int32, int32 > &BoneMapToSource, const FBoneContainer &RequiredBones)
Definition AttributesRuntime.cpp:153
static ENGINE_API void ConvertToAdditive(const FStackAttributeContainer &BaseAttributes, FStackAttributeContainer &OutAdditiveAttributes)
Definition AttributesRuntime.cpp:135
static ENGINE_API void OverrideAttributes(const FStackAttributeContainer &SourceAttributes, FStackAttributeContainer &OutAttributes, float Weight)
Definition AttributesRuntime.cpp:99
Definition AttributesContainer.h:27
Definition AttributesRuntime.h:53
Definition AttributesRuntime.h:41
Definition AttributesRuntime.h:42
Definition AttributesRuntime.h:52
Definition AttributesRuntime.h:40
Definition AttributesRuntime.h:47
static TArray< FAttributeId > & GetKeys(TAttributeContainer< BoneIndexType, InAllocator > &Attributes, int32 TypeIndex)
Definition AttributesRuntime.h:49
static TArray< TWrappedAttribute< InAllocator > > & GetValues(TAttributeContainer< BoneIndexType, InAllocator > &Attributes, int32 TypeIndex)
Definition AttributesRuntime.h:48
Definition AttributesContainer.h:71