Space Plunder
Loading...
Searching...
No Matches
CurveExtractor.h
Go to the documentation of this file.
1// Designed by Hitman's Store, 2023
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "AnimationModifiers/Public/AnimationModifier.h"
7#include "Curves/CurveVector.h"
8#include "CurveExtractor.generated.h"
9
10UCLASS(Blueprintable)
11class PROCEDURALCONVERTER_API UCurveExtractor : public UAnimationModifier
12{
13 GENERATED_BODY()
14
15public:
16 virtual void OnApply_Implementation(UAnimSequence* AnimationSequence) override;
17 virtual void OnRevert_Implementation(UAnimSequence* AnimationSequence) override;
18
19 void SaveCurve(UPackage* Package, UCurveVector* Curve, const FString& PackagePath);
20
22 UPROPERTY(EditAnywhere, Category = "Settings")
23 FName BoneName;
24
26 UPROPERTY(EditAnywhere, Category = "Settings", meta = (ToolTip="Semi, Burst or Auto"))
27 FName AnimName;
28
30 UPROPERTY(EditAnywhere, Category = "Settings")
31 FString WeaponName;
32
33 UPROPERTY(EditAnywhere, Category = "Settings")
34 float SampleRate = 30.f;
35
36 UPROPERTY(EditAnywhere, Category = "Settings", meta = (ToolTip="Should the curves be mapped [-1;1]"))
37 bool bNormalize = true;
38
39 UPROPERTY(EditAnywhere, Category = "Settings", meta = (ToolTip="Should the curves be added to the clip"))
40 bool bAddToAnimation = false;
41
42 UPROPERTY(EditAnywhere, Category = "Settings", meta = (EditCondition="bAddToAnimation"))
43 UAnimSequence* RefAnimation = nullptr;
44
45 UPROPERTY(EditAnywhere, Category = "Settings", meta = (EditCondition="bAddToAnimation"))
46 FName CurveName;
47
48private:
50 FTransform ExtractPose(UAnimSequence* Animation, const FBoneContainer& BoneContainer,
51 FCompactPoseBoneIndex CompactPoseBoneIndex, double Time);
52
53 float NormalizeValue(float Value, float MaxValue) const;
54
55 void ExtractCurveAssets(UAnimSequence* AnimationSequence);
56 void ExtractAnimCurves(UAnimSequence* AnimationSequence);
57
58 void AddCurveKey(TArray<FRichCurveKey>& Keys, float Time, float Value);
59 void AddCurve(UAnimSequence* Animation, FName Name, const TArray<FRichCurveKey>& Keys);
60 void RemoveCurve(UAnimSequence* Animation, FName Name);
61 FName GetCurveName(FString Type, FString Axis) const;
62};
UCLASS(Blueprintable, BlueprintType, ClassGroup=(BucciGames), meta=(BlueprintSpawnableComponent)) class CHATSYSTEM_API UChatSystemComponent
Definition ChatSystemComponent.h:13
Definition CurveExtractor.h:12