UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SkeletalMeshComponent.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
10#include "EngineDefines.h"
16#include "ClothSimData.h"
22#if WITH_ENGINE
24#endif
25#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_7
28#endif
29
30#include "SkeletalMeshComponent.generated.h"
31
32
33class Error;
35class FCanvas;
36class FSceneView;
37class UAnimInstance;
39class USkeletalMesh;
40class USkeletalMeshComponent;
47struct FCompactPose;
48
49namespace UE::UAF
50{
51 class FDataRegistry; // Temporary
52}
53
54enum class EClothingTeleportMode : uint8;
55
56#ifndef WITH_CLOTH_COLLISION_DETECTION
57#define WITH_CLOTH_COLLISION_DETECTION 1
58#endif
59
61typedef FOnSkelMeshPhysicsCreatedMultiCast::FDelegate FOnSkelMeshPhysicsCreated;
62
64
66typedef FOnSkelMeshTeleportedMultiCast::FDelegate FOnSkelMeshTeleported;
67
68class UE_DEPRECATED(5.5, "use FOnBoneTransformsFinalizedMultiCast instead (see SkinnedMeshComponent.h).") FOnBoneTransformsFinalized;
69DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnBoneTransformsFinalized); // Deprecated, use FOnBoneTransformsFinalizedMultiCast instead
70
72typedef FOnLODRequiredBonesUpdateMulticast::FDelegate FOnLODRequiredBonesUpdate;
73
75UENUM()
85
87{
88 // The anim instance we are evaluating
90
91 // The post process instance we are evaluating
93
94 // The SkeletalMesh we are evaluating for
96
97 // Evaluation data, swapped in from the component when we are running parallel eval
103
104 // Are we performing interpolation this tick
106
107 // Are we evaluating this tick
109
110 // Are we storing data in cache bones this tick
112
113 // duplicate the cache curves
115
116 // duplicate the cached attributes
118
119 // Force reference pose
121
122 // Curve data, swapped in from the component when we are running parallel eval
125
126 // attribute data, swapped in from the component when we are running parallel eval
129
131 {
132 Clear();
133 }
134
136 {
137 AnimInstance = Other.AnimInstance;
138 PostProcessAnimInstance = Other.PostProcessAnimInstance;
139 SkeletalMesh = Other.SkeletalMesh;
141 ComponentSpaceTransforms.Append(Other.ComponentSpaceTransforms);
142 BoneSpaceTransforms.Reset();
143 BoneSpaceTransforms.Append(Other.BoneSpaceTransforms);
145 CachedComponentSpaceTransforms.Append(Other.CachedComponentSpaceTransforms);
147 CachedBoneSpaceTransforms.Append(Other.CachedBoneSpaceTransforms);
148 RootBoneTranslation = Other.RootBoneTranslation;
149 Curve.CopyFrom(Other.Curve);
150 CachedCurve.CopyFrom(Other.CachedCurve);
151 bDoInterpolation = Other.bDoInterpolation;
152 bDoEvaluation = Other.bDoEvaluation;
153 bDuplicateToCacheBones = Other.bDuplicateToCacheBones;
154 bDuplicateToCacheCurve = Other.bDuplicateToCacheCurve;
155 bDuplicateToCachedAttributes = Other.bDuplicateToCachedAttributes;
156 bForceRefPose = Other.bForceRefPose;
157
158 CustomAttributes.CopyFrom(Other.CustomAttributes);
159 CachedCustomAttributes.CopyFrom(Other.CachedCustomAttributes);
160 }
161
162 void Clear()
163 {
164 AnimInstance = nullptr;
165 PostProcessAnimInstance = nullptr;
166 SkeletalMesh = nullptr;
167 }
168
169};
170
174UENUM()
185
186UENUM()
188{
189 enum Type : int
190 {
191 AnimationBlueprint UMETA(DisplayName="Use Animation Blueprint"),
192 AnimationSingleNode UMETA(DisplayName="Use Animation Asset"),
193 // This is custom type, engine leaves AnimInstance as it is
194 AnimationCustomMode UMETA(DisplayName = "Use Custom Mode"),
195 };
196}
197
198UENUM()
200{
201 enum Type : int
202 {
203 SimulationUpatesComponentTransform UMETA(DisplayName="Simulation Updates Component Transform"),
205 };
206}
207
214
218USTRUCT()
220{
222
223 USkeletalMeshComponent* Target;
224
232 virtual void ExecuteTick(float DeltaTime, enum ELevelTick TickType, ENamedThreads::Type CurrentThread, const FGraphEventRef& MyCompletionGraphEvent) override;
234 virtual FString DiagnosticMessage() override;
236 virtual FName DiagnosticContext(bool bDetailed) override;
237};
238
239template<>
247
248
252USTRUCT()
254{
256
257 USkeletalMeshComponent* Target;
258
266 virtual void ExecuteTick(float DeltaTime, enum ELevelTick TickType, ENamedThreads::Type CurrentThread, const FGraphEventRef& MyCompletionGraphEvent) override;
268 virtual FString DiagnosticMessage() override;
270 virtual FName DiagnosticContext(bool bDetailed) override;
271};
272
273template<>
281
282
305
306namespace Chaos
307{
309}
310
317UCLASS(Blueprintable, ClassGroup=(Rendering, Common), hidecategories=(Object, "Mesh|SkeletalAsset"), config=Engine, editinlinenew, meta=(BlueprintSpawnableComponent), MinimalAPI)
318class USkeletalMeshComponent : public USkinnedMeshComponent, public IInterface_CollisionDataProvider
319{
321
324 friend class USkeletalMesh;
325 friend class UAnimInstance;
332
333#if WITH_EDITORONLY_DATA
334private:
336 UE_DEPRECATED(5.1, "This property isn't deprecated, but getter and setter must be used at all times to preserve correct operations.")
337 UPROPERTY(EditAnywhere, Transient, Setter = SetSkeletalMeshAsset, BlueprintSetter = SetSkeletalMeshAsset, Getter = GetSkeletalMeshAsset, BlueprintGetter = GetSkeletalMeshAsset, Category = Mesh)
338 TObjectPtr<USkeletalMesh> SkeletalMeshAsset;
339#endif
340
341public:
345 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh")
346 void SetSkeletalMeshAsset(USkeletalMesh* NewMesh) { SetSkeletalMesh(NewMesh, false); }
347
351 UFUNCTION(BlueprintPure, Category = "Components|SkeletalMesh")
352 ENGINE_API USkeletalMesh* GetSkeletalMeshAsset() const;
353
356
359
360#if WITH_EDITORONLY_DATA
362 UPROPERTY()
364
365 UE_DEPRECATED(4.11, "This property is deprecated. Please use AnimClass instead")
366 UPROPERTY(BlueprintReadOnly, Category = Animation, meta = (DeprecationMessage = "This property is deprecated. Please use AnimClass instead"))
368#endif
369
370 /* The AnimBlueprint class to use. Use 'SetAnimInstanceClass' to change at runtime. */
371 UPROPERTY(EditAnywhere, BlueprintReadOnly, Setter = SetAnimInstanceClass_Internal, Category = Animation, meta=(EditCondition = bEnableAnimation))
372 class TSubclassOf<UAnimInstance> AnimClass;
373
375 UPROPERTY(transient, NonTransactional)
377
378#if WITH_EDITORONLY_DATA
380 UE_DEPRECATED(4.24, "Direct access to this property is deprecated and the array is no longer used. Storage is now in LinkedInstances. Please use GetLinkedAnimInstances() instead.")
383#endif
384
388
395
401
402public:
409 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh")
411
413 UFUNCTION(BlueprintCallable, Category="Components|SkeletalMesh")
415
417 UFUNCTION(BlueprintGetter)
419
423 UFUNCTION(BlueprintSetter)
425
426 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Animation, meta=(ShowOnlyInnerProperties, EditCondition = bEnableAnimation))
427 struct FSingleAnimationPlayData AnimationData;
428
429 // this is explicit copy because this buffer is reused during evaluation
430 // we want to have reference and emptied during evaluation
432
435
440 UE_DEPRECATED(4.23, "Direct access to this property is deprecated, please use GetBoneSpaceTransforms instead. We will move to private in the future.")
441 TArray<FTransform> BoneSpaceTransforms;
442
443public:
446 FVector RootBoneTranslation;
447
449 UPROPERTY()
451
452 UE_DEPRECATED(5.6, "Direct access to this property is deprecated, please use GetAnimCurves or GetCurveValue instead. We will move to private in the future.")
453 FBlendedHeapCurve AnimCurves;
454
457
458private:
462
465
466 // Update Rate
467
470 TArray<FTransform> CachedBoneSpaceTransforms;
471
474 TArray<FTransform> CachedComponentSpaceTransforms;
475
477 FBlendedHeapCurve CachedCurve;
478
480 UE::Anim::FMeshAttributeContainer CachedAttributes;
481 UE::Anim::FMeshAttributeContainer CustomAttributes;
482public:
492 UFUNCTION(BlueprintCallable, Category=CustomAttributes)
494
504 UFUNCTION(BlueprintCallable, Category = CustomAttributes)
506
516 UFUNCTION(BlueprintCallable, Category = CustomAttributes)
518
528 UFUNCTION(BlueprintCallable, Category = CustomAttributes)
530
541 UFUNCTION(BlueprintCallable, Category = CustomAttributes)
542 ENGINE_API bool GetFloatAttribute(const FName& BoneName, const FName& AttributeName, float DefaultValue, float& OutValue, ECustomBoneAttributeLookup LookupType = ECustomBoneAttributeLookup::BoneOnly);
543
553 UFUNCTION(BlueprintCallable, Category = CustomAttributes)
555
566 UFUNCTION(BlueprintCallable, Category = CustomAttributes)
568
579 UFUNCTION(BlueprintCallable, Category = CustomAttributes)
580 ENGINE_API bool GetStringAttribute(const FName& BoneName, const FName& AttributeName, FString DefaultValue, FString& OutValue, ECustomBoneAttributeLookup LookupType = ECustomBoneAttributeLookup::BoneOnly);
581
589 UFUNCTION(BlueprintCallable, Category = Curve)
590 ENGINE_API bool GetCurveValue(FName CurveName, float DefaultValue, float& Value) const;
591
594
598 bool FindAttributeChecked(const FName& BoneName, const FName& AttributeName, DataType DefaultValue, DataType& OutValue, ECustomBoneAttributeLookup LookupType);
599
600public:
602 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadWrite, Category=Animation, meta=(EditCondition = bEnableAnimation, ClampMin = 0.f))
604
606 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadWrite, Category=SkeletalMesh)
608
610 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Physics)
612
614 UPROPERTY(Interp, Transient, BlueprintReadOnly, VisibleAnywhere, Category=Clothing) // This property is explicitly hidden from the details panel inside FSkeletalMeshComponentDetails::UpdatePhysicsCategory
616
619 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Animation, meta=(EditCondition = bEnableAnimation))
620 TEnumAsByte<EAnimationMode::Type> AnimationMode;
621public:
622 // helper function to get the member name and verify it exists, without making it public
624
625 // helper function to get the member name and verify it exists, without making it public
626#if WITH_EDITORONLY_DATA
628#endif // WITH_EDITORONLY_DATA
629
630private:
633
637 UPROPERTY(EditAnywhere, BlueprintGetter=GetDisablePostProcessBlueprint, BlueprintSetter=SetDisablePostProcessBlueprint, Category = Animation, meta=(EditCondition = bEnableAnimation))
639
640public:
643
645 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = Physics)
647
650
654
655
659
665 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadWrite, Category = SkeletalMesh)
667
673 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadWrite, Category = SkeletalMesh)
675
680 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadWrite, Category=SkeletalMesh)
682
687 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Clothing)
689
691 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Clothing)
693
696
697private:
699 UPROPERTY(EditAnywhere, Category = Physics)
701
703 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = SkeletalMesh)
705
706#if WITH_EDITORONLY_DATA
708 UE_DEPRECATED(4.18, "This property is deprecated. Please use bAllowAnimCurveEvaluatiuon instead. Note that the meaning is reversed.")
709 UPROPERTY()
711#endif
712
715
718
721
722public:
724 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Clothing)
727 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Clothing)
734 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Clothing)
736
743 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Clothing, Meta = (UIMin = 0.f, UIMax = 1.f, ClampMin = 0.f, ClampMax = 1.f))
745
747 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Clothing)
749
752
758 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadOnly, Category = SkeletalMesh)
760
762 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadWrite, Category=SkeletalMesh)
764
766 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadWrite, Category=Animation, meta=(EditCondition = bEnableAnimation))
768
774 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadOnly, Category=Animation)
776
778 UPROPERTY(EditAnywhere, AdvancedDisplay, Category = Animation, meta=(EditCondition = bEnableAnimation))
780
784 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadOnly, Category=SkeletalMesh)
786
792 UPROPERTY()
794
799
803
805 UPROPERTY()
807
809 UPROPERTY()
811
815
819
821 UPROPERTY()
823
825 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = LeaderPoseComponent)
827
828#if WITH_EDITORONLY_DATA
829 UE_DEPRECATED(5.1, "This property is deprecated. Please use bPropagateCurvesToFollowers instead")
831#endif // WITH_EDITORONLY_DATA
832
834 UPROPERTY(EditAnywhere, BlueprintReadWrite, AdvancedDisplay, Category = Optimization)
836
838 UPROPERTY(EditAnywhere, BlueprintReadWrite, AdvancedDisplay, Category = Optimization)
840
841protected:
842
845
846#if WITH_EDITORONLY_DATA
848 UPROPERTY(AdvancedDisplay, EditInstanceOnly, transient, Category = SkeletalMesh)
849 uint8 bUpdateAnimationInEditor : 1;
851 UPROPERTY(AdvancedDisplay, EditInstanceOnly, transient, Category = SkeletalMesh)
852 uint8 bUpdateClothInEditor : 1;
853
855 UPROPERTY(AdvancedDisplay,EditAnywhere, Category = SkeletalMesh, meta = (InlineEditConditionToggle))
857
858#endif
859
862
863private:
864
867
869
870public:
873
874public:
875
879
884 UPROPERTY(EditAnywhere, BlueprintReadWrite, Interp, Category = Clothing)
885 float ClothBlendWeight;
886
890 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Clothing)
892
893private:
894
898
902
907
908public:
909
915
916 ENGINE_API void CreateBodySetup();
917
918#if UE_ENABLE_DEBUG_DRAWING
920#endif
921
922public:
923
925 int32 RagdollAggregateThreshold;
926
927 UPROPERTY(Interp, BlueprintReadWrite, Category=Clothing, meta=(UIMin = 0.0, UIMax = 10.0, ClampMin = 0.0, ClampMax = 10000.0))
929
933 UPROPERTY(EditAnywhere, BlueprintReadWrite, Interp, Category = Clothing, meta = (UIMin = 0.0, UIMax = 10.0, ClampMin = 0.0, ClampMax = 10000.0))
934 float ClothGeometryScale = 1.f;
935
936private:
937 /*
938 * Max LOD level that post-process AnimBPs are evaluated. Overrides the setting of the same name on the skeletal mesh.
939 * For example if you have the threshold set to 2, it will evaluate until including LOD 2 (based on 0 index). In case the LOD level gets set to 3, it will stop evaluating the post-process AnimBP.
940 * Setting it to -1 will always evaluate it and disable LODing overrides for this component.
941 */
942 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadWrite, Category=Animation, meta= (DisplayName = "Post-Process AnimBP LOD Threshold", AllowPrivateAccess = "true"))
943 int32 PostProcessAnimBPLODThreshold = INDEX_NONE;
944
945public:
947 UPROPERTY(BlueprintAssignable)
949
951 UPROPERTY(BlueprintAssignable)
953
955 UE_DEPRECATED(5.7, "This property will be removed since the ClothingSimulationFactory is no longer set per component.")
956 UPROPERTY()
957 TSubclassOf<class UClothingSimulationFactory> ClothingSimulationFactory;
958
960 {
961 enum EType
962 {
965 };
966
967 FVector Origin;
968 float Radius;
969 float Strength;
970 ERadialImpulseFalloff Falloff;
971 bool bIgnoreMass;
972 EType Type;
974
976 : Origin(InOrigin)
977 , Radius(InRadius)
978 , Strength(InStrength)
979 , Falloff(InFalloff)
981 , Type(InType)
983 {
984 }
985 };
986
988 {
989 return PendingRadialForces;
990 }
992 TArray<FPendingRadialForces> PendingRadialForces;
993
994 UE_DEPRECATED(4.23, "This function is deprecated. Please use SetAnimInstanceClass instead. ")
996
998 UE_DEPRECATED(5.5, "This function is deprecated. Please use 'SetAnimInstanceClass' instead. ")
999 ENGINE_API virtual void SetAnimClass(class UClass* NewClass);
1000
1002 UFUNCTION(BlueprintInternalUseOnly)
1003 ENGINE_API class UClass* GetAnimClass();
1004
1009 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh", meta = (Keywords = "AnimBlueprint", DisplayName = "Set Anim Instance Class"))
1011
1016 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh", meta = (Keywords = "Animation"))
1018
1024 UFUNCTION(BlueprintCallable, Category="Components|SkeletalMesh", meta=(Keywords = "AnimBlueprint", UnsafeDuringActorConstruction = "true"))
1025 ENGINE_API class UAnimInstance * GetAnimInstance() const;
1026
1027private:
1028 /* Setter function for anim instance class */
1030
1031public:
1032
1037 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh", meta = (Keywords = "AnimBlueprint", UnsafeDuringActorConstruction = "true"))
1039
1042 const TArray<UAnimInstance*>& GetLinkedAnimInstances() const { return LinkedInstances; }
1044
1047
1048private:
1052
1055
1057 void ResetToRefPose();
1058
1059public:
1060 UE_DEPRECATED(4.23, "This function is deprecated. Please use GetLinkedAnimGraphInstanceByTag")
1061 UAnimInstance* GetSubInstanceByName(FName InTag) const { return GetLinkedAnimGraphInstanceByTag(InTag); }
1062
1063 UE_DEPRECATED(4.24, "This function is deprecated. Please use GetLinkedAnimGraphInstanceByTag")
1064 UAnimInstance* GetSubInstanceByTag(FName InTag) const { return GetLinkedAnimGraphInstanceByTag(InTag); }
1065
1070 UFUNCTION(BlueprintPure, Category = "Components|SkeletalMesh|Animation Blueprint Linking", meta = (Keywords = "AnimBlueprint", UnsafeDuringActorConstruction = "true"))
1071 ENGINE_API UAnimInstance* GetLinkedAnimGraphInstanceByTag(FName InTag) const;
1072
1073 UE_DEPRECATED(4.24, "Function renamed, please use GetLinkedAnimGraphInstancesByTag")
1074 void GetSubInstancesByTag(FName InTag, TArray<UAnimInstance*>& OutSubInstances) const
1075 {
1077 GetLinkedAnimGraphInstancesByTag(InTag, OutSubInstances);
1079 }
1080
1084 UE_DEPRECATED(5.0, "Tags are unique so this funciton is no longer supported. Please use GetLinkedAnimGraphInstanceByTag instead")
1085 UFUNCTION(BlueprintPure, Category = "Components|SkeletalMesh|Animation Blueprint Linking", meta = (Keywords = "AnimBlueprint", DeprecatedFunction, DeprecationMessage="Tags are unique so this function is no longer supported. Please use GetLinkedAnimGraphInstanceByTag instead"))
1086 ENGINE_API void GetLinkedAnimGraphInstancesByTag(FName InTag, TArray<UAnimInstance*>& OutLinkedInstances) const;
1087
1088 UE_DEPRECATED(4.24, "Function renamed, please use LinkAnimGraphByTag")
1089 void SetSubInstanceClassByTag(FName InTag, TSubclassOf<UAnimInstance> InClass) { LinkAnimGraphByTag(InTag, InClass); }
1090
1092 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh|Animation Blueprint Linking", meta = (Keywords = "AnimBlueprint", UnsafeDuringActorConstruction = "true"))
1093 ENGINE_API void LinkAnimGraphByTag(FName InTag, TSubclassOf<UAnimInstance> InClass);
1094
1095 UE_DEPRECATED(4.24, "Function renamed, please use LinkAnimClassLayers")
1096 void SetLayerOverlay(TSubclassOf<UAnimInstance> InClass) { LinkAnimClassLayers(InClass); }
1097
1104 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh|Animation Blueprint Linking", meta = (Keywords = "AnimBlueprint", UnsafeDuringActorConstruction = "true"))
1105 ENGINE_API void LinkAnimClassLayers(TSubclassOf<UAnimInstance> InClass);
1106
1107 UE_DEPRECATED(4.24, "Function renamed, please use UnlinkAnimClassLayers")
1108 void ClearLayerOverlay(TSubclassOf<UAnimInstance> InClass) { UnlinkAnimClassLayers(InClass); }
1109
1115 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh|Animation Blueprint Linking", meta = (Keywords = "AnimBlueprint", UnsafeDuringActorConstruction = "true"))
1116 ENGINE_API void UnlinkAnimClassLayers(TSubclassOf<UAnimInstance> InClass);
1117
1119 UAnimInstance* GetLayerSubInstanceByGroup(FName InGroup) const { return GetLinkedAnimLayerInstanceByGroup(InGroup); }
1120
1122 UFUNCTION(BlueprintPure, Category = "Components|SkeletalMesh|Animation Blueprint Linking", meta = (Keywords = "AnimBlueprint", UnsafeDuringActorConstruction = "true"))
1123 ENGINE_API UAnimInstance* GetLinkedAnimLayerInstanceByGroup(FName InGroup) const;
1124
1125 UE_DEPRECATED(4.24, "Function renamed, please use GetLinkedAnimLayerInstanceByClass")
1126 UAnimInstance* GetLayerSubInstanceByClass(TSubclassOf<UAnimInstance> InClass) const { return GetLinkedAnimLayerInstanceByClass(InClass); }
1127
1129 UFUNCTION(BlueprintPure, Category = "Components|SkeletalMesh|Animation Blueprint Linking", meta = (Keywords = "AnimBlueprint", UnsafeDuringActorConstruction = "true"))
1130 ENGINE_API UAnimInstance* GetLinkedAnimLayerInstanceByClass(TSubclassOf<UAnimInstance> InClass) const;
1131
1134
1139 UFUNCTION(BlueprintPure, Category = "Components|SkeletalMesh", meta = (Keywords = "AnimBlueprint"))
1141
1146 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh", meta = (Keywords = "Dynamics,Physics", UnsafeDuringActorConstruction = "true"))
1148
1156 UFUNCTION(BlueprintCallable, Category = "Components|Animation", meta = (Keywords = "Animation"))
1158
1159 UFUNCTION(BlueprintPure, Category = "Components|Animation", meta = (Keywords = "Animation"))
1161
1162 /* Animation play functions
1163 *
1164 * These changes status of animation instance, which is transient data, which means it won't serialize with this component
1165 * Because of that reason, it is not safe to be used during construction script
1166 * Please use OverrideAnimationData for construction script. That will override AnimationData to be serialized
1167 */
1168 UFUNCTION(BlueprintCallable, Category = "Components|Animation", meta = (Keywords = "Animation", UnsafeDuringActorConstruction = "true"))
1169 ENGINE_API void PlayAnimation(class UAnimationAsset* NewAnimToPlay, bool bLooping);
1170
1171 /* Animation play functions
1172 *
1173 * These changes status of animation instance, which is transient data, which means it won't serialize with this component
1174 * Because of that reason, it is not safe to be used during construction script
1175 * Please use OverrideAnimationData for construction script. That will override AnimationData to be serialized
1176 */
1177 UFUNCTION(BlueprintCallable, Category = "Components|Animation", meta = (Keywords = "Animation", UnsafeDuringActorConstruction = "true"))
1179
1180 /* Animation play functions
1181 *
1182 * These changes status of animation instance, which is transient data, which means it won't serialize with this component
1183 * Because of that reason, it is not safe to be used during construction script
1184 * Please use OverrideAnimationData for construction script. That will override AnimationData to be serialized
1185 */
1186 UFUNCTION(BlueprintCallable, Category = "Components|Animation", meta = (Keywords = "Animation", UnsafeDuringActorConstruction = "true"))
1187 ENGINE_API void Play(bool bLooping);
1188
1189 /* Animation play functions
1190 *
1191 * These changes status of animation instance, which is transient data, which means it won't serialize with this component
1192 * Because of that reason, it is not safe to be used during construction script
1193 * Please use OverrideAnimationData for construction script. That will override AnimationData to be serialized
1194 */
1195 UFUNCTION(BlueprintCallable, Category = "Components|Animation", meta = (Keywords = "Animation", UnsafeDuringActorConstruction = "true"))
1196 ENGINE_API void Stop();
1197
1198 /* Animation play functions
1199 *
1200 * These changes status of animation instance, which is transient data, which means it won't serialize with this component
1201 * Because of that reason, it is not safe to be used during construction script
1202 * Please use OverrideAnimationData for construction script. That will override AnimationData to be serialized
1203 */
1204 UFUNCTION(BlueprintCallable, Category = "Components|Animation", meta = (Keywords = "Animation", UnsafeDuringActorConstruction = "true"))
1205 ENGINE_API bool IsPlaying() const;
1206
1207 /* Animation play functions
1208 *
1209 * These changes status of animation instance, which is transient data, which means it won't serialize with this component
1210 * Because of that reason, it is not safe to be used during construction script
1211 * Please use OverrideAnimationData for construction script. That will override AnimationData to be serialized
1212 */
1213 UFUNCTION(BlueprintCallable, Category = "Components|Animation", meta = (Keywords = "Animation", UnsafeDuringActorConstruction = "true"))
1214 ENGINE_API void SetPosition(float InPos, bool bFireNotifies = true);
1215
1216 /* Animation play functions
1217 *
1218 * These changes status of animation instance, which is transient data, which means it won't serialize with this component
1219 * Because of that reason, it is not safe to be used during construction script
1220 * Please use OverrideAnimationData for construction script. That will override AnimationData to be serialized
1221 */
1222 UFUNCTION(BlueprintCallable, Category = "Components|Animation", meta = (Keywords = "Animation", UnsafeDuringActorConstruction = "true"))
1223 ENGINE_API float GetPosition() const;
1224
1225 /* Animation play functions
1226 *
1227 * These changes status of animation instance, which is transient data, which means it won't serialize with this component
1228 * Because of that reason, it is not safe to be used during construction script
1229 * Please use OverrideAnimationData for construction script. That will override AnimationData to be serialized
1230 */
1231 UFUNCTION(BlueprintCallable, Category = "Components|Animation", meta = (Keywords = "Animation", UnsafeDuringActorConstruction = "true"))
1232 ENGINE_API void SetPlayRate(float Rate);
1233
1234 /* Animation play functions
1235 *
1236 * These changes status of animation instance, which is transient data, which means it won't serialize with this component
1237 * Because of that reason, it is not safe to be used during construction script
1238 * Please use OverrideAnimationData for construction script. That will override AnimationData to be serialized
1239 */
1240 UFUNCTION(BlueprintCallable, Category = "Components|Animation", meta = (Keywords = "Animation", UnsafeDuringActorConstruction = "true"))
1241 ENGINE_API float GetPlayRate() const;
1242
1249 UFUNCTION(BlueprintCallable, Category = "Components|Animation", meta = (Keywords = "Animation"))
1250 ENGINE_API void OverrideAnimationData(UAnimationAsset* InAnimToPlay, bool bIsLooping = true, bool bIsPlaying = true, float Position = 0.f, float PlayRate = 1.f);
1251
1257 UFUNCTION(BlueprintCallable, Category="Components|SkeletalMesh", meta=(UnsafeDuringActorConstruction="true"))
1258 ENGINE_API void SetMorphTarget(FName MorphTargetName, float Value, bool bRemoveZeroWeight=true);
1259
1263 UFUNCTION(BlueprintCallable, Category="Components|SkeletalMesh")
1264 ENGINE_API void ClearMorphTargets();
1265
1269 UFUNCTION(BlueprintCallable, Category="Components|SkeletalMesh")
1271
1277 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh")
1278 ENGINE_API void SnapshotPose(UPARAM(ref) FPoseSnapshot& Snapshot);
1279
1285 UFUNCTION(BlueprintCallable, Category="Components|SkeletalMesh")
1287
1288 UFUNCTION(BlueprintCallable, Category="Components|SkeletalMesh")
1289 bool GetAllowClothActors() const { return bAllowClothActors; }
1290
1294 UFUNCTION(BlueprintCallable, Category="Clothing")
1296 UFUNCTION(BlueprintCallable, Category="Clothing")
1298
1303 UFUNCTION(BlueprintCallable, Category="Clothing")
1309 UFUNCTION(BlueprintCallable, Category="Clothing")
1311
1313 UFUNCTION(BlueprintCallable, Category="Clothing", meta=(UnsafeDuringActorConstruction))
1315
1317 UFUNCTION(BlueprintCallable, Category = "Clothing", meta=(UnsafeDuringActorConstruction))
1319
1321 UFUNCTION(BlueprintCallable, Category = "Clothing")
1323
1327 UFUNCTION(BlueprintCallable, Category="Clothing")
1329
1336 UFUNCTION(BlueprintCallable, Category = "Clothing", meta = (UnsafeDuringActorConstruction = "true"))
1338
1339 UE_DEPRECATED(5.1, "This method has been deprecated. Please use BindClothToLeaderPoseComponent instead.")
1341
1349 UFUNCTION(BlueprintCallable, Category="Clothing", meta=(UnsafeDuringActorConstruction="true"))
1351
1352 UE_DEPRECATED(5.1, "This method has been deprecated. Please use UnbindClothFromLeaderPoseComponent instead.")
1354
1358 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh")
1360
1361 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh")
1363
1368 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh", meta = (DevelopmentOnly, UnsafeDuringActorConstruction = "true"))
1370
1375 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh", meta = (DevelopmentOnly, UnsafeDuringActorConstruction = "true"))
1377
1378#if WITH_EDITOR
1383 bool GetUpdateAnimationInEditor() const
1384 {
1385 return bUpdateAnimationInEditor;
1386 }
1387
1388 bool GetUpdateClothInEditor() const
1389 {
1390 return bUpdateClothInEditor;
1391 }
1392#endif
1393
1394 UE_DEPRECATED(4.18, "This function is deprecated. Please use SetAllowAnimCurveEvaluation instead. Note that the meaning is reversed.")
1395 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh")
1397
1398 UE_DEPRECATED(4.18, "This function is deprecated. Please use GetAllowedAnimCurveEvaluate instead. Note that the meaning is reversed.")
1399 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh")
1400 bool GetDisableAnimCurves() const { return !bAllowAnimCurveEvaluation; }
1401
1402 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh")
1404
1405 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh")
1407
1408 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh")
1410
1412 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh")
1414
1416 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh")
1418
1419 UE_DEPRECATED(5.3, "Please use GetCurveFilterSettings")
1421
1428
1433 ENGINE_API virtual void SkelMeshCompOnParticleSystemFinished( class UParticleSystemComponent* PSC );
1434
1437
1439 ENGINE_API virtual bool IsWindEnabled() const;
1440
1441#if WITH_EDITOR
1446 virtual void ReportAnimNotifyError(const FText& Error, UObject* InSourceNotify){}
1447
1452#endif
1453
1454public:
1460 struct
1461 {
1462 int32 BodyIndex;
1464 } RootBodyData;
1465
1470
1472 TArray<FBoneIndexType> RequiredBones;
1473
1476
1479
1482
1484
1490 UFUNCTION(BlueprintGetter, Category=Clothing)
1492
1498 UFUNCTION(BlueprintSetter, Category=Clothing)
1499 ENGINE_API void SetTeleportRotationThreshold(float Threshold);
1500
1506 UFUNCTION(BlueprintGetter, Category=Clothing)
1508
1514 UFUNCTION(BlueprintSetter, Category=Clothing)
1515 ENGINE_API void SetTeleportDistanceThreshold(float Threshold);
1516
1517private:
1523 UPROPERTY(EditAnywhere, BlueprintGetter=GetTeleportDistanceThreshold, BlueprintSetter=SetTeleportDistanceThreshold, Category=Clothing)
1525
1531 UPROPERTY(EditAnywhere, BlueprintGetter=GetTeleportRotationThreshold, BlueprintSetter=SetTeleportRotationThreshold, Category=Clothing)
1533
1538
1539public:
1540
1542 ENGINE_API bool PoseTickedThisFrame() const;
1543
1545
1546 UE_DEPRECATED(5.1, "This method has been deprecated. Please, use IsClothBoundToLeaderComponent instead.")
1548
1550 UE_DEPRECATED(5.7, "Use GetClothingSimulationInstances instead.")
1551 ENGINE_API const class IClothingSimulation* GetClothingSimulation() const;
1552
1555 ENGINE_API class IClothingSimulation* GetClothingSimulation();
1556
1559 ENGINE_API const class IClothingSimulationContext* GetClothingSimulationContext() const;
1560
1562 ENGINE_API class IClothingSimulationContext* GetClothingSimulationContext();
1563
1566 {
1568 }
1569
1572 {
1574 }
1575
1581 UFUNCTION(BlueprintCallable, Category = Clothing)
1582 ENGINE_API UClothingSimulationInteractor* GetClothingSimulationInteractor(const FName ClothingAssetName = NAME_None) const;
1583
1586
1589
1592
1595
1596private:
1597
1600 friend class FParallelClothCompletionTask;
1601
1603 friend class UDebugSkelMeshComponent;
1604
1607
1610
1613
1617
1620
1623
1629
1632
1638
1639protected:
1640
1647
1648private:
1649
1651 ENGINE_API void OnConstraintBrokenWrapper(int32 ConstraintIndex);
1652
1654 ENGINE_API void OnPlasticDeformationWrapper(int32 ConstraintIndex);
1655
1662
1663public:
1665 //
1666 // Animation
1667 //
1668 ENGINE_API virtual void InitAnim(bool bForceReinit);
1669
1670 // Broadcast when the components anim instance is initialized
1671 UPROPERTY(BlueprintAssignable, Category = Animation)
1673
1678 ENGINE_API bool ShouldOnlyTickMontages(const float DeltaTime) const;
1679
1680 ENGINE_API bool ShouldOnlyTickMontagesAndRefreshBones(const float DeltaTime) const;
1681
1683 ENGINE_API bool ShouldTickAnimation() const;
1684
1686 ENGINE_API void TickAnimation(float DeltaTime, bool bNeedsValidRootMotion);
1687
1689 ENGINE_API void TickAnimInstances(float DeltaTime, bool bNeedsValidRootMotion);
1690
1692 ENGINE_API void TickClothing(float DeltaTime, FTickFunction& ThisTickFunction);
1693
1696
1697 UE_DEPRECATED(5.7, "Use ReleaseAllClothingResources instead.")
1698 ENGINE_API void RemoveAllClothingActors();
1699
1702
1708
1714 ENGINE_API void DebugDrawClothingTexts(FCanvas* Canvas, const FSceneView* SceneView);
1715
1716#if WITH_EDITOR
1719#endif
1720
1724 ENGINE_API virtual void SetNotifyRigidBodyCollision(bool bNewNotifyRigidBodyCollision) override;
1725
1730 UFUNCTION(BlueprintCallable, Category = "Physics")
1732
1738 UFUNCTION(BlueprintCallable, Category = "Physics")
1740
1747 ENGINE_API void RecalcRequiredBones(int32 LODIndex);
1748
1753
1754 // Get the required virtual bones from the SkeletalMesh Reference Skeleton
1755 static ENGINE_API void GetRequiredVirtualBones(const USkeletalMesh* SkeletalMesh, TArray<FBoneIndexType>& OutRequiredBones);
1756
1757 // Removes the bones expicitly hidden or hiden by parent
1758 static ENGINE_API void ExcludeHiddenBones(const USkeletalMeshComponent* SkeletalMeshComponent, const USkeletalMesh* SkeletalMesh, TArray<FBoneIndexType>& OutRequiredBones);
1759
1760 // Get the bones used for mirroring in the skeletal mesh asset (if any)
1761 UE_DEPRECATED(5.3, "This method has been deprecated. Please use UMirrorDataTable for mirroring support.")
1763
1764 // Get the bones required for shadow shapes
1765 static ENGINE_API void GetShadowShapeRequiredBones(const USkeletalMeshComponent* SkeletalMeshComponent, TArray<FBoneIndexType>& OutRequiredBones);
1766
1771 ENGINE_API void RecalcRequiredCurves();
1772
1773public:
1774 //~ Begin UObject Interface.
1777 ENGINE_API virtual void PostInitProperties() override;
1778#if UE_WITH_REMOTE_OBJECT_HANDLE
1779 ENGINE_API virtual void PostMigrate(const struct FUObjectMigrationContext& MigrationContext) override;
1780#endif
1781#if WITH_EDITOR
1784 typedef FOnSkeletalMeshPropertyChangedMulticaster::FDelegate FOnSkeletalMeshPropertyChanged;
1785
1789
1792 typedef FOnSkeletalMeshUnregisterd::FDelegate FOnSkeletalMeshUnregisteredDelegate;
1793
1797
1798 ENGINE_API virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
1799
1802
1803 ENGINE_API virtual void LoadedFromAnotherClass(const FName& OldClassName) override;
1804 ENGINE_API virtual void UpdateCollisionProfile() override;
1805#endif // WITH_EDITOR
1807 //~ End UObject Interface.
1808
1809 //~ Begin UActorComponent Interface.
1810 ENGINE_API virtual bool HasValidPhysicsState() const override;
1811
1812protected:
1813 ENGINE_API virtual void OnRegister() override;
1814 ENGINE_API virtual void OnUnregister() override;
1815 ENGINE_API virtual bool ShouldCreatePhysicsState() const override;
1816 ENGINE_API virtual void OnCreatePhysicsState() override;
1817 ENGINE_API virtual void OnDestroyPhysicsState() override;
1818 ENGINE_API virtual void SendRenderDynamicData_Concurrent() override;
1819 ENGINE_API virtual void RegisterComponentTickFunctions(bool bRegister) override;
1820public:
1821 ENGINE_API virtual void InitializeComponent() override;
1822 ENGINE_API virtual void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override;
1823 ENGINE_API virtual void BeginPlay() override;
1824 ENGINE_API virtual void SetComponentTickEnabled(bool bEnabled) override;
1825 ENGINE_API virtual void OnComponentDestroyed(bool bDestroyingHierarchy) override;
1826
1827#if WITH_EDITOR
1828 ENGINE_API virtual TStructOnScope<FActorComponentInstanceData> GetComponentInstanceData() const override;
1829#endif // WITH_EDITOR
1830
1831 //Handle registering our end physics tick function
1832 ENGINE_API virtual void RegisterEndPhysicsTick(bool bRegister);
1833
1834 ENGINE_API virtual bool RequiresPreEndOfFrameSync() const override;
1835 ENGINE_API virtual void OnPreEndOfFrameSync() override;
1836
1837 //Handle registering our pre cloth tick function
1839
1840 //~ End UActorComponent Interface.
1841
1842 //~ Begin USceneComponent Interface.
1843 ENGINE_API virtual FBoxSphereBounds CalcBounds(const FTransform& LocalToWorld) const override;
1844 ENGINE_API virtual bool IsAnySimulatingPhysics() const override;
1846 ENGINE_API virtual bool UpdateOverlapsImpl(const TOverlapArrayView* PendingOverlaps=NULL, bool bDoNotifies=true, const TOverlapArrayView* OverlapsAtEndLocation=NULL) override;
1847 //~ End USceneComponent Interface.
1848
1849 //~ Begin UPrimitiveComponent Interface.
1850protected:
1861 ENGINE_API virtual bool ComponentOverlapMultiImpl(TArray<struct FOverlapResult>& OutOverlaps, const class UWorld* InWorld, const FVector& Pos, const FQuat& Rot, ECollisionChannel TestChannel, const struct FComponentQueryParams& Params, const struct FCollisionObjectQueryParams& ObjectQueryParams = FCollisionObjectQueryParams::DefaultObjectQueryParam) const override;
1862
1863 ENGINE_API virtual bool ComponentOverlapComponentImpl(class UPrimitiveComponent* PrimComp, const FVector Pos, const FQuat& Quat, const FCollisionQueryParams& Params) override;
1864
1865 ENGINE_API virtual bool MoveComponentImpl(const FVector& Delta, const FQuat& NewRotation, bool bSweep, FHitResult* OutHit = NULL, EMoveComponentFlags MoveFlags = MOVECOMP_NoFlags, ETeleportType Teleport = ETeleportType::None) override;
1866
1867public:
1868
1869 ENGINE_API virtual class UBodySetup* GetBodySetup() override;
1870 ENGINE_API virtual bool CanEditSimulatePhysics() override;
1871 ENGINE_API virtual bool IsSimulatingPhysics(FName BoneName = NAME_None) const override;
1872 ENGINE_API virtual FBodyInstance* GetBodyInstance(FName BoneName = NAME_None, bool bGetWelded = true, int32 Index = INDEX_NONE) const override;
1873 ENGINE_API virtual void UpdatePhysicsToRBChannels() override;
1874 ENGINE_API virtual void SetAllPhysicsAngularVelocityInRadians(FVector const& NewVel, bool bAddToCurrent = false) override;
1875 ENGINE_API virtual void SetAllPhysicsPosition(FVector NewPos) override;
1876 ENGINE_API virtual void SetAllPhysicsRotation(FRotator NewRot) override;
1877 ENGINE_API virtual void SetAllPhysicsRotation(const FQuat& NewRot) override;
1878 ENGINE_API virtual void WakeAllRigidBodies() override;
1879 ENGINE_API virtual void PutAllRigidBodiesToSleep() override;
1880 ENGINE_API virtual bool IsAnyRigidBodyAwake() override;
1881 ENGINE_API virtual void SetEnableGravity(bool bGravityEnabled);
1882 ENGINE_API virtual bool IsGravityEnabled() const override;
1883 ENGINE_API virtual void OnComponentCollisionSettingsChanged(bool bUpdateOverlaps=true) override;
1884 ENGINE_API virtual void SetPhysMaterialOverride(UPhysicalMaterial* NewPhysMaterial) override;
1886
1892 UFUNCTION(BlueprintCallable, Category="Physics")
1893 ENGINE_API void SetEnablePerPolyCollision(bool bInEnablePerPolyCollision);
1894
1903 UFUNCTION(BlueprintCallable, Category="Physics")
1904 ENGINE_API void SetEnableBodyGravity(bool bEnableGravity, FName BoneName);
1905
1914 UFUNCTION(BlueprintCallable, Category="Physics")
1915 ENGINE_API bool IsBodyGravityEnabled(FName BoneName);
1916
1926 UFUNCTION(BlueprintCallable, Category = "Physics")
1927 ENGINE_API void SetEnableGravityOnAllBodiesBelow(bool bEnableGravity, FName BoneName, bool bIncludeSelf=true);
1928
1937
1944 UFUNCTION(BlueprintCallable, Category="Components|SkeletalMesh", meta=(DisplayName="Get Closest Point On Physics Asset", ScriptName="GetClosestPointOnPhysicsAsset", Keywords="closest point"))
1945 ENGINE_API bool K2_GetClosestPointOnPhysicsAsset(const FVector& WorldPosition, FVector& ClosestWorldPosition, FVector& Normal, FName& BoneName, float& Distance) const;
1946
1947 ENGINE_API virtual bool LineTraceComponent( FHitResult& OutHit, const FVector Start, const FVector End, const FCollisionQueryParams& Params ) override;
1948
1959 ENGINE_API virtual bool SweepComponent( FHitResult& OutHit, const FVector Start, const FVector End, const FQuat& ShapRotation, const FCollisionShape& CollisionShape, bool bTraceComplex=false) override;
1960
1961 ENGINE_API virtual bool OverlapComponent(const FVector& Pos, const FQuat& Rot, const FCollisionShape& CollisionShape) const override;
1962 ENGINE_API virtual void SetSimulatePhysics(bool bEnabled) override;
1963 ENGINE_API virtual void AddRadialImpulse(FVector Origin, float Radius, float Strength, ERadialImpulseFalloff Falloff, bool bVelChange=false) override;
1964 ENGINE_API virtual void AddRadialForce(FVector Origin, float Radius, float Strength, ERadialImpulseFalloff Falloff, bool bAccelChange=false) override;
1967 ENGINE_API virtual float GetMass() const override;
1969
1976 UFUNCTION(BlueprintCallable, Category = "Physics")
1977 ENGINE_API float GetBoneMass(FName BoneName = NAME_None, bool bScaleMass = true) const;
1978
1982 UFUNCTION(BlueprintCallable, Category = "Physics")
1984
1985
1986 ENGINE_API virtual float CalculateMass(FName BoneName = NAME_None) override;
1987 ENGINE_API virtual bool DoCustomNavigableGeometryExport(FNavigableGeometryExport& GeomExport) const override;
1988
1998 UFUNCTION(BlueprintCallable, Category = "Physics")
1999 ENGINE_API virtual void AddForceToAllBodiesBelow(FVector Force, FName BoneName = NAME_None, bool bAccelChange = false, bool bIncludeSelf = true);
2000
2009 UFUNCTION(BlueprintCallable, Category = "Physics")
2011
2012 ENGINE_API virtual bool IsShown(const FEngineShowFlags& ShowFlags) const override;
2013#if WITH_EDITOR
2014 ENGINE_API virtual bool ComponentIsTouchingSelectionBox(const FBox& InSelBBox, const bool bConsiderOnlyBSP, const bool bMustEncompassEntireComponent) const override;
2016#endif
2017protected:
2024
2025#if UE_WITH_REMOTE_OBJECT_HANDLE
2026 ENGINE_API virtual void MigratePhysicsState(FArchive& Ar) override;
2028#endif
2029
2030 //~ End UPrimitiveComponent Interface.
2031
2032public:
2033 //~ Begin USkinnedMeshComponent Interface
2034 ENGINE_API virtual bool UpdateLODStatus() override;
2036 ENGINE_API virtual void UpdateVisualizeLODString(FString& DebugString) override;
2037 ENGINE_API virtual void RefreshBoneTransforms( FActorComponentTickFunction* TickFunction = NULL ) override;
2038protected:
2039 ENGINE_API virtual void DispatchParallelTickPose( FActorComponentTickFunction* TickFunction ) override;
2040public:
2041 ENGINE_API virtual void TickPose(float DeltaTime, bool bNeedsValidRootMotion) override;
2042 ENGINE_API virtual void UpdateFollowerComponent() override;
2043 UE_DEPRECATED(5.1, "This method has been deprecated. Please use UpdateFollowerComponent instead.")
2044 virtual void UpdateSlaveComponent() override { UpdateFollowerComponent(); };
2045 ENGINE_API virtual bool ShouldUpdateTransform(bool bLODHasChanged) const override;
2046 ENGINE_API virtual bool ShouldTickPose() const override;
2047 ENGINE_API virtual bool AllocateTransformData() override;
2048 ENGINE_API virtual void DeallocateTransformData() override;
2049 ENGINE_API virtual void HideBone( int32 BoneIndex, EPhysBodyOp PhysBodyOption ) override;
2050 ENGINE_API virtual void UnHideBone( int32 BoneIndex ) override;
2051 ENGINE_API virtual void SetPhysicsAsset(class UPhysicsAsset* NewPhysicsAsset,bool bForceReInit = false) override;
2052 ENGINE_API virtual void SetSkeletalMesh(class USkeletalMesh* NewMesh, bool bReinitPose = true) override; // SetSkeletalMesh may remain and become a UFUNCTION but lose its virtual after it is removed from the SkinnedMeshComponent API
2053
2061 ENGINE_API virtual void SetSkinnedAssetAndUpdate(class USkinnedAsset* InSkinnedAsset, bool bReinitPose = true) override;
2062
2064 static ENGINE_API FVector3f GetSkinnedVertexPosition(USkeletalMeshComponent* Component, int32 VertexIndex, const FSkeletalMeshLODRenderData& Model, const FSkinWeightVertexBuffer& SkinWeightBuffer, TArray<FMatrix44f>& CachedRefToLocals);
2066
2069
2070 UE_DEPRECATED(5.1, "This method has been deprecated. Please use SetSkeletalMesh(NewMesh, false) instead.")
2072
2073 ENGINE_API virtual bool IsPlayingRootMotion() const override;
2074 ENGINE_API virtual bool IsPlayingNetworkedRootMotionMontage() const override;
2075 ENGINE_API virtual bool IsPlayingRootMotionFromEverything() const override;
2076 ENGINE_API virtual void FinalizeBoneTransform() override;
2077 ENGINE_API virtual void SetRefPoseOverride(const TArray<FTransform>& NewRefPoseTransforms) override;
2078 ENGINE_API virtual void ClearRefPoseOverride() override;
2079 //~ End USkinnedMeshComponent Interface
2080
2081 // Conditions used to gate when post process events happen
2082 ENGINE_API bool ShouldEvaluatePostProcessAnimBP() const;
2086
2091
2105#if WITH_EDITOR
2107
2108 UE_DEPRECATED(4.26, "Please use PerformAnimationEvaluation with different signature")
2110#endif
2111
2113
2114 UE_DEPRECATED(5.5, "Please use PerformAnimationEvaluation with different signature")
2116
2121
2122 UE_DEPRECATED(5.5, "Please use EvaluatePostProcessMeshInstance with different signature")
2124
2126
2129
2132
2138 UE_DEPRECATED(4.26, "This function is deprecated and should not be called directly. Please use the mechanism provided in USkeletalMeshComponent::EndPhysicsTickComponent")
2140 {
2141 PerformBlendPhysicsBones(Bones, AnimEvaluationContext.BoneSpaceTransforms, AnimEvaluationContext.BoneSpaceTransforms);
2142 }
2143
2144
2146 UE_DEPRECATED(4.26, "Public access to this function is deprecated. Please use the mechanism provided in USkeletalMeshComponent::EndPhysicsTickComponent")
2148
2154 ENGINE_API void InitArticulated(FPhysScene* PhysScene);
2155
2158
2160 ENGINE_API void InstantiatePhysicsAssetBodies(const UPhysicsAsset& PhysAsset, TArray<FBodyInstance*>& OutBodies, FPhysScene* PhysScene = nullptr, USkeletalMeshComponent* OwningComponent = nullptr, int32 UseRootBodyIndex = INDEX_NONE, const FPhysicsAggregateHandle& UseAggregate = FPhysicsAggregateHandle()) const;
2161
2164
2167
2170
2173
2175 UFUNCTION(BlueprintCallable, Category="Physics")
2176 ENGINE_API void TermBodiesBelow(FName ParentBoneName);
2177
2180
2183
2186
2188 ENGINE_API virtual void SetCollisionObjectType(ECollisionChannel Channel) override;
2189
2192
2195
2197 UFUNCTION(BlueprintCallable, Category="Physics")
2199
2206 UFUNCTION(BlueprintCallable, Category="Physics")
2207 ENGINE_API void SetPhysicsBlendWeight(float PhysicsBlendWeight);
2208
2210 UFUNCTION(BlueprintCallable, Category="Physics")
2212
2218 UFUNCTION(BlueprintCallable, Category = "Physics")
2219 ENGINE_API void SetAllBodiesBelowPhysicsDisabled(const FName& InBoneName, bool bDisabled, bool bIncludeSelf = true);
2220
2222 UFUNCTION(BlueprintCallable, Category = "Physics")
2224
2225 UFUNCTION(BlueprintCallable, Category = "Physics")
2227
2229 UFUNCTION(BlueprintCallable, Category="Physics")
2231
2233 UFUNCTION(BlueprintCallable, Category="Physics")
2235
2237 UFUNCTION(BlueprintCallable, Category="Physics")
2239
2240 UFUNCTION(BlueprintCallable, Category="Physics")
2241 ENGINE_API void SetAllBodiesPhysicsBlendWeight(float PhysicsBlendWeight, bool bSkipCustomPhysicsType = false );
2242
2244 UFUNCTION(BlueprintCallable, Category="Physics")
2245 ENGINE_API void SetAllBodiesBelowPhysicsBlendWeight(const FName& InBoneName, float PhysicsBlendWeight, bool bSkipCustomPhysicsType = false, bool bIncludeSelf = true );
2246
2248 UFUNCTION(BlueprintCallable, Category="Physics")
2250
2252 UFUNCTION(BlueprintCallable, Category = "Physics")
2254
2256 UFUNCTION(BlueprintCallable, Category = "Physics")
2258
2260 UFUNCTION(BlueprintCallable, Category = "Physics")
2262
2264 UFUNCTION(BlueprintCallable, Category = "Physics")
2265 ENGINE_API void SetConstraintProfile(FName JointName, FName ProfileName, bool bDefaultIfNotFound = false);
2266
2268 UFUNCTION(BlueprintCallable, Category = "Physics")
2270
2276 ENGINE_API bool GetConstraintProfilePropertiesOrDefault(FConstraintProfileProperties& OutProperties, FName JointName, FName ProfileName);
2277
2280
2283
2285
2288
2295
2298
2301
2306
2313 ENGINE_API int32 FindConstraintIndex(FName ConstraintName);
2314
2321 UFUNCTION(BlueprintCallable, Category = "Physics")
2322 ENGINE_API FName FindConstraintBoneName(int32 ConstraintIndex);
2323
2333
2339
2344
2352 UFUNCTION(BlueprintCallable, Category = "Physics", meta = (Keywords = "Constraint"))
2353 ENGINE_API void BreakConstraint(FVector Impulse, FVector HitLocation, FName InBoneName);
2354
2359 UFUNCTION(BlueprintCallable, Category = "Physics", meta = (Keywords = "Components|SkeletalMesh"))
2361
2366 UFUNCTION(BlueprintCallable, Category = "Physics", meta = (Keywords = "Components|SkeletalMesh"))
2368
2377 UFUNCTION(BlueprintCallable, Category = "Physics", meta = (Keywords = "Components|SkeletalMesh"))
2379
2386 UFUNCTION(BlueprintCallable, Category = "Physics")
2387 ENGINE_API void SetAngularLimits(FName InBoneName,float Swing1LimitAngle, float TwistLimitAngle, float Swing2LimitAngle);
2388
2395 UFUNCTION(BlueprintCallable, Category = "Physics")
2397
2398
2405
2407 ENGINE_API void ApplyDeltaToAllPhysicsTransforms(const FVector& DeltaLocation, const FQuat& DeltaRotation);
2408
2410 UFUNCTION(BlueprintCallable, Category = "Clothing")
2412
2414 ENGINE_API void AddClothingBounds(FBoxSphereBounds& InOutBounds, const FTransform& LocalToWorld) const;
2415
2418
2421
2427
2429 void UpdateRigidBodyScaling(ETeleportType TeleportType);
2430
2433
2439
2441 ENGINE_API bool GetClothSimulatedPosition_GameThread(const FGuid& AssetGuid, int32 VertexIndex, FVector& OutSimulPos) const;
2442
2444
2452 UFUNCTION(BlueprintCallable, Category = "Clothing")
2454
2456 UFUNCTION(BlueprintCallable, Category = "Clothing")
2457 ENGINE_API void RemoveClothCollisionSources(USkeletalMeshComponent* InSourceComponent);
2458
2460 UE_DEPRECATED(5.5, "This function has been renamed RemoveClothCollisionSources")
2461 void RemoveClothCollisionSource(USkeletalMeshComponent* InSourceComponent)
2462 {
2464 }
2465
2467 UFUNCTION(BlueprintCallable, Category = "Clothing")
2469
2471 UFUNCTION(BlueprintCallable, Category = "Clothing")
2473
2474protected:
2475
2476#if WITH_CLOTH_COLLISION_DETECTION
2479
2481
2484
2487
2490
2491#endif
2492
2493public:
2496
2499
2500protected:
2503
2504 ENGINE_API virtual bool ShouldBlendPhysicsBones() const;
2505
2506 UE_DEPRECATED(5.7, "Use ClothCollisionSource::ExtractCollisions() instead.")
2508
2511
2512 FSkeletalMeshComponentEndPhysicsTickFunction EndPhysicsTickFunction;
2513
2514private:
2515
2516 virtual void OnClearAnimScriptInstance() {};
2517
2519
2522
2525
2528
2531
2534
2537
2539
2540 ENGINE_API virtual void RefreshMorphTargets() override;
2541
2542 ENGINE_API void GetWindForCloth_GameThread(FVector& WindVector, float& WindAdaption) const;
2543
2546
2547 // Reference to our current parallel animation evaluation task (if there is one)
2549
2550 // Reference to our current blend physics task (if there is one)
2552
2553 //Data for parallel evaluation of animation
2555
2556public:
2557 // Parallel evaluation wrappers
2560
2561
2562 // Returns whether we are currently trying to run a parallel animation evaluation task
2563 bool IsRunningParallelEvaluation() const { return IsValidRef(ParallelAnimationEvaluationTask); }
2564
2565 // Management function for if we want to do an evaluation but may already be running one
2566 // bBlockOnTask - if true and we are currently performing parallel eval we wait for it to finish
2567 // bPerformPostAnimEvaluation - if true and we are currently performing parallel eval we call PostAnimEvaluation too
2568 // return true if parallel task was running.
2569 ENGINE_API bool HandleExistingParallelEvaluationTask(bool bBlockOnTask, bool bPerformPostAnimEvaluation);
2570
2571 friend class FSkeletalMeshComponentDetails;
2572
2575
2576 // Returns whether we're able to run a simulation (ignoring the suspend flag)
2577 ENGINE_API bool CanSimulateClothing() const;
2578
2579protected:
2580
2581 // Prep anim instances for evaluation
2583
2584 // Handle post evaluation on all anim instances
2586
2587 // Returns whether we need to run the Cloth Tick or not
2588 ENGINE_API virtual bool ShouldRunClothTick() const;
2589
2590private:
2592 ENGINE_API virtual void AddFollowerPoseComponent(USkinnedMeshComponent* SkinnedMeshComponent) override;
2593 ENGINE_API virtual void RemoveFollowerPoseComponent(USkinnedMeshComponent* SkinnedMeshComponent) override;
2594
2595 // Returns whether we need to run the Pre Cloth Tick or not
2597
2598 // Handles registering/unregistering the pre cloth tick as it is needed
2600
2601 // Handles registering/unregistering the cloth tick as it is needed
2603
2604 // Handles registering/unregistering the 'during animation' tick as it is needed
2606
2607 // Finalizes pose to OutBoneSpaceTransforms
2609
2610 // Finalizes attributes (remapping from compact to mesh bone-indices)
2612
2613 friend class FParallelBlendPhysicsTask;
2614
2616
2617 // Blends the simulation output with the component and bone space transforms coming from
2618 // animation (just calls PerformBlendPhysicsBones)
2619 void ParallelBlendPhysics() { PerformBlendPhysicsBones(RequiredBones, AnimEvaluationContext.ComponentSpaceTransforms, AnimEvaluationContext.BoneSpaceTransforms); }
2620
2621 // Blends the simulation output with the component and bone space transforms coming from animation
2623
2624 friend class FParallelClothTask;
2625 // This is the parallel function that updates the cloth data and runs the simulation. This is safe to call from worker threads.
2626 //static void ParallelEvaluateCloth(float DeltaTime, const FClothingActor& ClothingActor, const FClothSimulationContext& ClothSimulationContext);
2627
2631
2634
2636
2637 friend class FTickClothingTask;
2638
2639#if WITH_EDITORONLY_DATA
2640 // these are deprecated variables from removing SingleAnimSkeletalComponent
2641 // remove if this version goes away : VER_UE4_REMOVE_SINGLENODEINSTANCE
2642 // deprecated variable to be re-save
2643 UPROPERTY()
2645
2646 // The default sequence to play on this skeletal mesh
2647 UPROPERTY()
2649
2650 // Default setting for looping for SequenceToPlay. This is not current state of looping.
2651 UPROPERTY()
2653
2654 // Default setting for playing for SequenceToPlay. This is not current state of playing.
2655 UPROPERTY()
2657
2658 // Default setting for position of SequenceToPlay to play.
2659 UPROPERTY()
2661
2662 // Default setting for playrate of SequenceToPlay to play.
2663 UPROPERTY()
2665#endif
2666
2667 /*
2668 * Update MorphTargetCurves from mesh - these are not animation curves, but SetMorphTarget and similar functions that can set to this mesh component
2669 */
2671
2672 /*
2673 * Reset MorphTarget Curves - Reset all morphtarget curves
2674 */
2676
2677public:
2679 ENGINE_API FTransform ConvertLocalRootMotionToWorld(const FTransform& InTransform);
2680
2682 ENGINE_API FRootMotionMovementParams ConsumeRootMotion();
2683
2684#if WITH_EDITOR
2687#endif
2688
2689protected:
2690
2693
2694private:
2695
2696#if WITH_EDITOR
2700public:
2702 const FBlendedHeapCurve& GetAnimationCurves() const { return CurvesArray[CurrentReadComponentTransforms]; }
2703
2705 FBlendedHeapCurve& GetEditableAnimationCurves() { return CurvesArray[CurrentEditableComponentTransforms]; }
2706 const FBlendedHeapCurve& GetEditableAnimationCurves() const { return CurvesArray[CurrentEditableComponentTransforms]; }
2707#endif
2708
2709
2710private:
2713
2714 UE::Anim::FMeshAttributeContainer& GetEditableCustomAttributes() { return AttributesArray[CurrentEditableComponentTransforms]; }
2715
2716public:
2717 const UE::Anim::FMeshAttributeContainer& GetCustomAttributes() const { return AttributesArray[CurrentReadComponentTransforms]; }
2718public:
2720 virtual const bool CanHaveStaticMobility() const override { return false; }
2721
2722public:
2726
2729 ENGINE_API void UnregisterOnTeleportDelegate(const FDelegateHandle& DelegateHandle);
2730
2732 ENGINE_API virtual FDelegateHandle RegisterOnBoneTransformsFinalizedDelegate(const FOnBoneTransformsFinalizedMultiCast::FDelegate& Delegate) override;
2733 ENGINE_API virtual void UnregisterOnBoneTransformsFinalizedDelegate(const FDelegateHandle& DelegateHandle) override;
2734
2736 UE_DEPRECATED(5.6, "These should not be used as they rely on a global delegate, ANY change in LOD from ANY skeletal mesh component triggers the callback")
2738
2739 UE_DEPRECATED(5.6, "These should not be used as they rely on a global delegate, ANY change in LOD from ANY skeletal mesh component triggers the callback")
2741
2742private:
2743 // NOTE: We anticipate that this will go away in the future, it is meant to be a temporary solution
2747 friend class UE::UAF::FDataRegistry;
2748
2749private:
2750
2751#if WITH_EDITORONLY_DATA
2752
2754 UPROPERTY(EditAnywhere, Category = AnimationRig, BlueprintGetter = GetDefaultAnimatingRigOverride, BlueprintSetter = SetDefaultAnimatingRigOverride, meta = (AllowedClasses = "/Script/ControlRigDeveloper.ControlRigBlueprint"), meta = (editcondition = "bOverrideDefaultAnimatingRig"))
2756
2757#endif
2758
2759#if WITH_EDITOR
2760public:
2761
2762 UFUNCTION(BlueprintSetter)
2764
2765 UFUNCTION(BlueprintGetter)
2767
2768 UFUNCTION(BlueprintCallable, Category = "Components|SkeletalMesh")
2769 ENGINE_API TSoftObjectPtr<UObject> GetDefaultAnimatingRig() const;
2770
2771
2772#endif
2773private:
2774
2777
2780
2783
2787
2790
2791 /* This will check if the required curves are up-to-date by checking version number with skeleton.
2792 * Skeleton's curve list changes whenever newer is added or deleted.
2793 * This still has to happen in editor as well as in game as
2794 * There is no guarantee of Skeleton having all curves as we've seen over and over again.
2795 * Cooking does not guarantee skeleton containing all names
2796 */
2798
2799
2800private:
2801 // Can't rely on time value, because those may be affected by dilation and whether or not
2802 // the game is paused.
2803 // Also can't just rely on a flag as other components (like CharacterMovementComponent) may tick
2804 // the pose and we can't guarantee tick order.
2807
2808public:
2810
2811 // Are we currently within PostAnimEvaluation
2813
2814 //~ Begin IPhysicsComponent Interface.
2815 ENGINE_API virtual Chaos::FPhysicsObject* GetPhysicsObjectById(Chaos::FPhysicsObjectId Id) const override;
2816 ENGINE_API virtual Chaos::FPhysicsObject* GetPhysicsObjectByName(const FName& Name) const override;
2817 ENGINE_API virtual TArray<Chaos::FPhysicsObject*> GetAllPhysicsObjects() const override;
2818 //~ End IPhysicsComponent Interface.
2819};
2820
2821#if WITH_EDITOR
2823{
2824public:
2825
2826 FPoseWatchDynamicData(USkeletalMeshComponent* InComponent);
2827
2829};
2830#endif
2831
2833{
2834 static void AddLinkedInstance(USkeletalMeshComponent* InComponent, UAnimInstance* InAnimInstance)
2835 {
2837 {
2838 InComponent->LinkedInstances.AddUnique(InAnimInstance);
2839 }
2840 }
2841
2842 static void RemoveLinkedInstance(USkeletalMeshComponent* InComponent, UAnimInstance* InAnimInstance)
2843 {
2845 {
2846 InComponent->LinkedInstances.Remove(InAnimInstance);
2847 }
2848 }
2849
2850 static void ResetLinkedInstance(USkeletalMeshComponent* InComponent)
2851 {
2852 if (InComponent)
2853 {
2854 InComponent->LinkedInstances.Reset();
2855 }
2856 }
2857};
OODEFFUNC typedef const int const char * function
Definition oodle2.h:710
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define NULL
Definition oodle2base.h:134
EUpdateTransformFlags
Definition ActorComponent.h:95
@ Normal
Definition AndroidInputInterface.h:116
uint16 FBoneIndexType
Definition BoneIndices.h:7
ERadialImpulseFalloff
Definition ChaosEngineInterface.h:91
EClothingTeleportMode
Definition ClothingSystemRuntimeTypes.h:46
uint32 GFrameNumber
Definition CoreGlobals.cpp:425
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#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
#define DECLARE_DYNAMIC_MULTICAST_DELEGATE(DelegateName)
Definition DelegateCombinations.h:38
#define DECLARE_TS_MULTICAST_DELEGATE_ThreeParams(DelegateName, Param1Type, Param2Type, Param3Type)
Definition DelegateCombinations.h:68
#define DECLARE_MULTICAST_DELEGATE(DelegateName)
Definition DelegateCombinations.h:23
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
ELevelTick
Definition EngineBaseTypes.h:70
ETeleportType
Definition EngineTypes.h:2401
ECollisionChannel
Definition EngineTypes.h:1088
return true
Definition ExternalRpcRegistry.cpp:601
bool IsValidRef(const FVertexBufferAndSRV &Buffer)
Definition GPUSkinVertexFactory.h:92
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
UE::Math::TTransform< double > FTransform
Definition MathFwd.h:53
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UPARAM(...)
Definition ObjectMacros.h:748
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UMETA(...)
Definition ObjectMacros.h:747
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
FPhysicsAggregateReference_Chaos FPhysicsAggregateHandle
Definition PhysicsInterfaceDeclaresCore.h:91
const bool bTraceComplex
Definition PhysicsInterfaceUtils.h:19
@ Stop
Definition PrecomputedVolumetricLightmapStreaming.cpp:26
EMoveComponentFlags
Definition SceneComponent.h:56
@ MOVECOMP_NoFlags
Definition SceneComponent.h:58
FOnSkelMeshTeleportedMultiCast::FDelegate FOnSkelMeshTeleported
Definition SkeletalMeshComponent.h:66
FOnSkelMeshPhysicsCreatedMultiCast::FDelegate FOnSkelMeshPhysicsCreated
Definition SkeletalMeshComponent.h:61
ECustomBoneAttributeLookup
Definition SkeletalMeshComponent.h:77
EAllowKinematicDeferral
Definition SkeletalMeshComponent.h:210
FOnLODRequiredBonesUpdateMulticast::FDelegate FOnLODRequiredBonesUpdate
Definition SkeletalMeshComponent.h:72
EPhysBodyOp
Definition SkinnedMeshComponent.h:83
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Constraints.Build.cs:6
Definition Engine.Build.cs:7
Definition Archive.h:1208
Definition CanvasTypes.h:211
Definition ClothingSimulation.h:23
Definition IDelegateInstance.h:14
Definition NameTypes.h:617
Definition UnrealType.h:3087
Definition SkeletalMeshComponent.cpp:378
Definition PhysAnim.cpp:75
Definition PhysAnim.cpp:42
Definition SkeletalMeshComponentPhysics.cpp:3441
Definition SkeletalMeshComponentPhysics.cpp:3396
Definition PhysScene_Chaos.h:116
Definition ChaosEngineInterface.h:241
Definition PrimitiveDrawInterface.h:19
Definition PrimitiveSceneProxy.h:296
Definition SceneView.h:1425
Definition SkeletalMeshLODRenderData.h:128
Definition SkinWeightVertexBuffer.h:364
Definition SkeletalMeshTypes.h:170
Definition Text.h:385
Definition ClothingSimulationInterface.h:20
Definition Interface_CollisionDataProvider.h:23
Definition ArrayView.h:139
Definition Array.h:670
Definition EnumAsByte.h:22
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition StructOnScope.h:142
Definition SubclassOf.h:30
Definition UniquePtr.h:107
Definition AnimBlueprintGeneratedClass.h:366
Definition AnimBlueprint.h:82
Definition AnimInstance.h:353
Definition AnimSequence.h:203
Definition AnimSingleNodeInstance.h:24
Definition AnimationAsset.h:1020
Definition BodySetup.h:128
Definition Class.h:3793
Definition ClothingSimulationFactory.h:44
Definition ClothingSimulationInteractor.h:65
Definition MirrorDataTable.h:102
Definition Object.h:95
Definition PhysicalMaterial.h:104
Definition PhysicsAsset.h:172
Definition SkeletalMesh.h:440
Definition SkinnedAsset.h:47
Definition SkinnedMeshComponent.h:258
virtual ENGINE_API void UnHideBone(int32 BoneIndex)
Definition SkinnedMeshComponent.cpp:4169
virtual ENGINE_API void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override
Definition SkinnedMeshComponent.cpp:1658
virtual ENGINE_API bool AllocateTransformData()
Definition SkinnedMeshComponent.cpp:2837
virtual void UpdateVisualizeLODString(FString &DebugString)
Definition SkinnedMeshComponent.h:1603
virtual ENGINE_API void UpdateFollowerComponent()
Definition SkinnedMeshComponent.cpp:1727
virtual ENGINE_API void GetUpdateClothSimulationData_AnyThread(TMap< int32, FClothSimulData > &OutClothSimulData, FMatrix &OutLocalToWorld, float &OutClothBlendWeight) const override
Definition SkinnedMeshComponent.cpp:2830
virtual ENGINE_API void GetResourceSizeEx(FResourceSizeEx &CumulativeResourceSize) override
Definition SkinnedMeshComponent.cpp:577
virtual void DispatchParallelTickPose(FActorComponentTickFunction *TickFunction)
Definition SkinnedMeshComponent.h:1542
virtual ENGINE_API bool UpdateOverlapsImpl(const TOverlapArrayView *PendingOverlaps=nullptr, bool bDoNotifies=true, const TOverlapArrayView *OverlapsAtEndLocation=nullptr) override
Definition SkinnedMeshComponent.cpp:3624
virtual ENGINE_API FBoxSphereBounds CalcBounds(const FTransform &LocalToWorld) const override
Definition SkinnedMeshComponent.cpp:1954
virtual ENGINE_API void OnUnregister() override
Definition SkinnedMeshComponent.cpp:827
virtual ENGINE_API void SetPhysicsAsset(class UPhysicsAsset *NewPhysicsAsset, bool bForceReInit=false)
Definition SkinnedMeshComponent.cpp:2906
virtual ENGINE_API bool UpdateLODStatus()
Definition SkinnedMeshComponent.cpp:4384
virtual ENGINE_API void DeallocateTransformData()
Definition SkinnedMeshComponent.cpp:2896
virtual ENGINE_API void SendRenderDynamicData_Concurrent() override
Definition SkinnedMeshComponent.cpp:1329
virtual ENGINE_API void HideBone(int32 BoneIndex, EPhysBodyOp PhysBodyOption)
Definition SkinnedMeshComponent.cpp:4157
virtual ENGINE_API void OnRegister() override
Definition SkinnedMeshComponent.cpp:764
virtual ENGINE_API bool ShouldUpdateTransform(bool bLODHasChanged) const
Definition SkinnedMeshComponent.cpp:1615
virtual ENGINE_API bool ShouldTickPose() const
Definition SkinnedMeshComponent.cpp:1605
virtual ENGINE_API void TickPose(float DeltaTime, bool bNeedsValidRootMotion)
Definition SkinnedMeshComponent.cpp:1625
virtual void SetPredictedLODLevel(int32 InPredictedLODLevel)
Definition SkinnedMeshComponent.h:1595
virtual ENGINE_API void BeginPlay() override
Definition SkinnedMeshComponent.cpp:841
static ENGINE_API FVector3f GetSkinnedVertexPosition(USkinnedMeshComponent *Component, int32 VertexIndex, const FSkeletalMeshLODRenderData &LODDatal, FSkinWeightVertexBuffer &SkinWeightBuffer)
Definition SkinnedMeshComponent.cpp:3902
virtual ENGINE_API void SetSkinnedAssetAndUpdate(class USkinnedAsset *NewMesh, bool bReinitPose=true)
Definition SkinnedMeshComponent.cpp:2504
Definition World.h:918
Definition SkeletalMeshComponent.h:307
int32 FPhysicsObjectId
Definition PhysicsObject.h:20
Definition SkeletalMeshComponent.h:188
Type
Definition SkeletalMeshComponent.h:190
Definition SkeletalMeshComponent.h:176
Type
Definition SkeletalMeshComponent.h:178
@ SkipSimulatingBones
Definition SkeletalMeshComponent.h:180
@ SkipAllBones
Definition SkeletalMeshComponent.h:182
Definition TaskGraph.cpp:63
Type
Definition PawnAction_Move.h:11
Definition SkeletalMeshComponent.h:200
Type
Definition SkeletalMeshComponent.h:202
@ ComponentTransformIsKinematic
Definition SkeletalMeshComponent.h:204
EType
Definition AccessDetection.h:11
Definition AnimSequence.h:44
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition PhysicsObjectInternal.h:16
Definition SerializedDataBuffer.h:12
Definition EngineBaseTypes.h:571
Definition AnimNode_LinkedAnimGraph.h:22
Definition AnimNode_LinkedAnimLayer.h:22
Definition SkeletalMeshComponent.h:87
FAnimationEvaluationContext()
Definition SkeletalMeshComponent.h:130
bool bDuplicateToCacheCurve
Definition SkeletalMeshComponent.h:114
bool bDuplicateToCacheBones
Definition SkeletalMeshComponent.h:111
bool bDuplicateToCachedAttributes
Definition SkeletalMeshComponent.h:117
UAnimInstance * PostProcessAnimInstance
Definition SkeletalMeshComponent.h:92
USkeletalMesh * SkeletalMesh
Definition SkeletalMeshComponent.h:95
bool bDoEvaluation
Definition SkeletalMeshComponent.h:108
void Clear()
Definition SkeletalMeshComponent.h:162
TArray< FTransform > CachedBoneSpaceTransforms
Definition SkeletalMeshComponent.h:101
FBlendedHeapCurve CachedCurve
Definition SkeletalMeshComponent.h:124
TArray< FTransform > BoneSpaceTransforms
Definition SkeletalMeshComponent.h:99
bool bDoInterpolation
Definition SkeletalMeshComponent.h:105
bool bForceRefPose
Definition SkeletalMeshComponent.h:120
void Copy(const FAnimationEvaluationContext &Other)
Definition SkeletalMeshComponent.h:135
UAnimInstance * AnimInstance
Definition SkeletalMeshComponent.h:89
TArray< FTransform > ComponentSpaceTransforms
Definition SkeletalMeshComponent.h:98
FBlendedHeapCurve Curve
Definition SkeletalMeshComponent.h:123
UE::Anim::FMeshAttributeContainer CachedCustomAttributes
Definition SkeletalMeshComponent.h:128
FVector RootBoneTranslation
Definition SkeletalMeshComponent.h:102
TArray< FTransform > CachedComponentSpaceTransforms
Definition SkeletalMeshComponent.h:100
UE::Anim::FMeshAttributeContainer CustomAttributes
Definition SkeletalMeshComponent.h:127
Definition AnimCurveTypes.h:1049
Definition BodyInstance.h:320
Definition BoneContainer.h:192
Definition SkeletalMeshComponent.h:284
FName BoneName
Definition SkeletalMeshComponent.h:292
FVector ClosestWorldPosition
Definition SkeletalMeshComponent.h:286
FClosestPointOnPhysicsAsset()
Definition SkeletalMeshComponent.h:297
float Distance
Definition SkeletalMeshComponent.h:295
FVector Normal
Definition SkeletalMeshComponent.h:289
Definition ClothCollisionData.h:14
Definition ClothCollisionSource.h:10
Definition ClothingSimulationInstance.h:25
Definition CollisionQueryParams.h:430
static ENGINE_API FCollisionObjectQueryParams DefaultObjectQueryParam
Definition CollisionQueryParams.h:538
Definition CollisionQueryParams.h:43
Definition CollisionShape.h:21
Definition BonePose.h:347
Definition CollisionQueryParams.h:297
Definition ConstraintInstance.h:1238
Definition ConstraintInstance.h:255
Definition ConstraintInstance.h:57
Definition ConvexVolume.h:44
Definition ShowFlags.h:56
Definition Guid.h:109
Definition HitResult.h:21
Definition AnimSubsystem_SharedLinkedAnimLayers.h:51
Definition SkeletalMeshComponent.h:2833
static void AddLinkedInstance(USkeletalMeshComponent *InComponent, UAnimInstance *InAnimInstance)
Definition SkeletalMeshComponent.h:2834
static void RemoveLinkedInstance(USkeletalMeshComponent *InComponent, UAnimInstance *InAnimInstance)
Definition SkeletalMeshComponent.h:2842
static void ResetLinkedInstance(USkeletalMeshComponent *InComponent)
Definition SkeletalMeshComponent.h:2850
Definition NavigationSystemHelpers.h:25
Definition PoseSnapshot.h:11
Definition UnrealType.h:6865
Definition ResourceArray.h:31
Definition ResourceSize.h:31
Definition AnimationAsset.h:711
Definition SingleAnimationPlayData.h:13
Definition SkeletalMeshComponent.h:254
Definition SkeletalMeshComponent.h:220
Definition EngineBaseTypes.h:173
Definition UObjectMigrationContext.h:62
void CopyFrom(const TBaseBlendedCurve< OtherAllocator, OtherElementType > &InCurveToCopyFrom)
Definition AnimCurveTypes.h:977
Definition ObjectPtr.h:488
Definition SoftObjectPtr.h:174
Definition StructOpsTypeTraits.h:11
Definition StructOpsTypeTraits.h:46
Definition BoneContainer.h:76
Definition AttributesRuntime.h:41
Definition AttributesRuntime.h:42
void CopyFrom(const TAttributeContainer< BoneIndexType, OtherAllocator > &Other)
Definition AttributesContainer.h:74
Definition BoxSphereBounds.h:25