23 virtual void NativeInitializeAnimation()
override;
25 virtual void NativeBeginPlay()
override;
26 virtual void NativeUpdateAnimation(
float DeltaSeconds)
override;
27 virtual void TryBindTagEvent()
override;
28 virtual void TryRemoveTagEvent()
override;
29 virtual bool UpdateAnimation(
float DeltaSeconds,
float CurrentSpdOverride,
float TargetSpdOverride)
override;
31 void CachePlayerMovement();
32 void OnAttackIdleTagChanged(
const FGameplayTag Tag, int32 NewCount);
34 float CalculateLocomotionBlendValue(
float CurrentMovementSpeed,
float RunSpeed)
const;
35 float EvaluateLocomotionBlendRatioCurve(
float NormalizedSpeedRatio)
const;
36 float CalculateAnimPlayRate(
float CurrentMovementSpeed,
float RunSpeed)
const;
37 float EvaluateAnimSpeedRatioCurve(
float NormalizedSpeedRatio)
const;
41 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category =
"Movement|Speed")
42 FRuntimeFloatCurve AnimSpeedRatioCurvePerLocomotionSpeedRatio;
44 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Movement|Speed")
45 float LocoAnimPlayRate = 1.0f;
48 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Movement|Speed")
49 FRuntimeFloatCurve LocomotionBlendRatioCurve;
51 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Movement")
52 bool bIsAttackIdle = false;
54 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Movement")
55 float LeanAngle = 0.0f;
58 FDelegateHandle AttackIdleTagEventHandle;
62 TObjectPtr<UPlayerMovementComponent> CachedPlayerMovement;