Space Plunder
Loading...
Searching...
No Matches
AnimNode_RecoilAnimationNode.h
Go to the documentation of this file.
1// Designed by Hitman's Store, 2023
2
3#pragma once
4
5#include "BoneControllers/AnimNode_ModifyBone.h"
6#include "BoneControllers/AnimNode_SkeletalControlBase.h"
7#include "AnimNode_RecoilAnimationNode.generated.h"
8
9class URecoilAnimationComponent;
10
11UENUM(BlueprintType)
13{
14 XYZ UMETA(DisplayName = "XYZ"),
15 XZY UMETA(DisplayName = "XZY"),
16 YXZ UMETA(DisplayName = "YXZ"),
17 YZX UMETA(DisplayName = "YZX"),
18 ZXY UMETA(DisplayName = "ZXY"),
19 ZYX UMETA(DisplayName = "ZYX")
20};
21
22USTRUCT(BlueprintInternalUseOnly)
23struct RECOILANIMATION_API FAnimNode_RecoilAnimationNode : public FAnimNode_SkeletalControlBase
24{
25 GENERATED_USTRUCT_BODY()
26
27 UPROPERTY(EditAnywhere, Category=SkeletalControl)
28 FBoneReference BoneToModify;
29
30 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Translation, meta=(PinHiddenByDefault))
31 FVector TranslationScale = FVector::OneVector;
32
33 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Rotation, meta=(PinHiddenByDefault))
34 FVector RotationScale = FVector::OneVector;
35
36 UPROPERTY(EditAnywhere, Category=SkeletalControl, meta=(PinHiddenByDefault))
37 TEnumAsByte<ERecoilAxesOrder> AxesOrder = ERecoilAxesOrder::XYZ;
38
39 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=UpdateMode, meta=(PinShownByDefault))
40 bool bUseAutoUpdate = true;
41
42 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Translation, meta=(PinHiddenByDefault))
43 FVector Translation = FVector::ZeroVector;
44
45 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Rotation, meta=(PinHiddenByDefault))
46 FRotator Rotation = FRotator::ZeroRotator;
47
48 UPROPERTY(EditAnywhere, Category=Translation)
49 TEnumAsByte<enum EBoneControlSpace> TranslationSpace = BCS_BoneSpace;
50
51 UPROPERTY(EditAnywhere, Category=Rotation)
52 TEnumAsByte<enum EBoneControlSpace> RotationSpace = BCS_BoneSpace;
53
54 virtual void EvaluateSkeletalControl_AnyThread(FComponentSpacePoseContext& Output,
55 TArray<FBoneTransform>& OutBoneTransforms) override;
56 virtual bool IsValidToEvaluate(const USkeleton* Skeleton, const FBoneContainer& RequiredBones) override;
57
58 virtual bool HasPreUpdate() const override { return bUseAutoUpdate; }
59
60 virtual void PreUpdate(const UAnimInstance* InAnimInstance) override;
61
62private:
63 virtual void InitializeBoneReferences(const FBoneContainer& RequiredBones) override;
64
65 FTransform ComputeRecoilTransform();
66
67 bool bIsInitialized = false;
68
69 TWeakObjectPtr<URecoilAnimationComponent> RecoilComponent;
70 FTransform RecoilTransform;
71};
ERecoilAxesOrder
Definition AnimNode_RecoilAnimationNode.h:13
@ UMETA
Definition AnimNode_RecoilAnimationNode.h:14
Definition AnimNode_RecoilAnimationNode.h:24
FTransform RecoilTransform
Definition AnimNode_RecoilAnimationNode.h:70
TWeakObjectPtr< URecoilAnimationComponent > RecoilComponent
Definition AnimNode_RecoilAnimationNode.h:69