32 virtual void NativeInitializeAnimation()
override;
34 virtual void NativeBeginPlay()
override;
36 virtual void NativeUpdateAnimation(
float DeltaSeconds)
override;
37 virtual void NativeThreadSafeUpdateAnimation(
float DeltaSeconds)
override;
39 UFUNCTION(BlueprintCallable, Category =
"ALS|Animation")
42 UFUNCTION(BlueprintCallable, Category =
"ALS|Animation")
45 UFUNCTION(BlueprintCallable, Category =
"ALS|Animation")
48 UFUNCTION(BlueprintCallable, Category =
"ALS|Event")
51 UFUNCTION(BlueprintCallable, Category =
"ALS|Event")
58 virtual void SetFiringWeapon(
const bool bValue)
override;
61 virtual void SetRecoilTransform(
const FTransform& Transform)
override;
63 virtual void SetPivotPoint(
const FTransform& Transform)
override;
65 virtual void DisableFootIK(
const float DelayTime)
override;
67 virtual void SetInjured(
const EBodyPartName BodyPartName,
const float InjuredAmount)
override;
72 UFUNCTION(BlueprintImplementableEvent, Category=
"Custom ALS")
73 void OnDisableFootIK(const
float DelayTime);
74 UFUNCTION(BlueprintImplementableEvent, Category="
Custom ALS")
75 void OnInjured(const
EBodyPartName BodyPartName, const
float InjuredAmount);
77 UFUNCTION(BlueprintCallable, Category="
Custom ALS")
78 bool GetFiringWeapon()
const{
return bFiringWeapon;};
80 virtual void SetEssentialInfo(
const FALSAnimValues& Value)
override;
81 virtual void SetOptimize(
const bool bValue)
override;
83 virtual void SetOverlayOverrideState(
const int32 Value)
override;
84 virtual void SetGait(
const FALSGait& Value)
override;
85 virtual void SetStance(
const FALSStance& Value)
override;
86 virtual void SetViewMode(
const EALSViewMode Value)
override;
92 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=
"ALS|Debug")
93 bool bOptimize = false;
95 UFUNCTION(BlueprintCallable, Category="
Custom ALS")
96 FRotator GetRecoilRotation()
const {
return RecoilTransform.Rotator();};
97 UFUNCTION(BlueprintCallable, Category=
"Custom ALS")
98 FVector GetPivotPointLocation()
const {
return PivotPoint.GetLocation() + GunOffset;};
99 UFUNCTION(BlueprintCallable, Category=
"Custom ALS")
100 bool GetShouldOverlayStateUsePRASIK() const;
104 UFUNCTION(BlueprintCallable, Category = "ALS|
Grounded")
107 Grounded.TrackedHipsDirection = HipsDirection;
110 UFUNCTION(BlueprintCallable, Category =
"ALS|Grounded")
113 GroundedEntryState = NewState;
117 UFUNCTION(BlueprintCallable, Category =
"ALS|Grounded")
118 bool ShouldMoveCheck() const;
121 UFUNCTION(BlueprintCallable, Category = "ALS|
Grounded")
122 bool CanRotateInPlace() const;
129 UFUNCTION(BlueprintCallable, Category = "ALS|
Grounded")
130 bool CanTurnInPlace() const;
137 UFUNCTION(BlueprintCallable, Category = "ALS|
Grounded")
138 bool CanDynamicTransition() const;
141 void PlayDynamicTransitionDelay();
143 void OnJumpedDelay();
149 void UpdateAimingValues(
float DeltaSeconds);
151 void UpdateLayerValues();
153 void UpdateFootIK(
float DeltaSeconds);
155 void UpdateMovementValues(
float DeltaSeconds);
157 void UpdateRotationValues();
159 void UpdateInAirValues(
float DeltaSeconds);
161 void UpdateRagdollValues();
165 void SetFootLocking(
float DeltaSeconds, FName EnableFootIKCurve, FName FootLockCurve, FName IKFootBone,
166 float& CurFootLockAlpha,
bool& UseFootLockCurve,
167 FVector& CurFootLockLoc, FRotator& CurFootLockRot) const;
169 void SetFootLockOffsets(
float DeltaSeconds, FVector& LocalLoc, FRotator& LocalRot) const;
171 void SetPelvisIKOffset(
float DeltaSeconds, FVector FootOffsetLTarget, FVector FootOffsetRTarget);
173 void ResetIKOffsets(
float DeltaSeconds);
175 void SetFootOffsets(
float DeltaSeconds, FName EnableFootIKCurve, FName IKFootBone, FName RootBone,
176 FVector& CurLocationTarget, FVector& CurLocationOffset, FRotator& CurRotationOffset) const;
180 void RotateInPlaceCheck();
182 void TurnInPlaceCheck(
float DeltaSeconds);
184 void DynamicTransitionCheck();
188 void TurnInPlace(FRotator TargetRotation,
float PlayRateScale,
float StartTime,
bool OverrideCurrent);
192 FVector CalculateRelativeAccelerationAmount() const;
194 float CalculateStrideBlend() const;
196 float CalculateWalkRunBlend() const;
198 float CalculateStandingPlayRate() const;
200 float CalculateDiagonalScaleAmount() const;
202 float CalculateCrouchingPlayRate() const;
204 float CalculateLandPrediction() const;
212 float GetAnimCurveClamped(const FName& Name,
float Bias,
float ClampMin,
float ClampMax) const;
216 UPROPERTY(BlueprintReadOnly, Category = "Read Only Data|
Character Information")
220 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|
Character Information", Meta = (
221 ShowOnlyInnerProperties))
224 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|
Character Information")
227 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|
Character Information")
230 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|
Character Information")
233 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|
Character Information")
236 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|
Character Information")
239 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|
Character Information")
243 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|Anim Graph -
Grounded", Meta = (
244 ShowOnlyInnerProperties))
247 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|Anim Graph -
Grounded")
250 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|Anim Graph -
Grounded")
253 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|Anim Graph -
Grounded")
254 FVector RelativeAccelerationAmount = FVector::ZeroVector;
256 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|Anim Graph -
Grounded")
259 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|Anim Graph -
Grounded")
263 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|Anim Graph - In Air", Meta = (
264 ShowOnlyInnerProperties))
268 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|Anim Graph -
Aiming Values", Meta = (
269 ShowOnlyInnerProperties))
272 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|Anim Graph -
Aiming Values")
273 FVector2D SmoothedAimingAngle = FVector2D::ZeroVector;
276 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|Anim Graph -
Ragdoll")
277 float FlailRate = 0.0f;
280 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|Anim Graph - Layer Blending", Meta = (
281 ShowOnlyInnerProperties))
285 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|Anim Graph - Foot IK", Meta = (
286 ShowOnlyInnerProperties))
290 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Configuration|Turn In Place", Meta = (
291 ShowOnlyInnerProperties))
295 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Configuration|Rotate In Place", Meta = (
296 ShowOnlyInnerProperties))
300 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Configuration|Main Configuration", Meta = (
301 ShowOnlyInnerProperties))
306 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Configuration|Blend Curves")
307 TObjectPtr<UCurveFloat> DiagonalScaleAmountCurve =
nullptr;
309 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Configuration|Blend Curves")
310 TObjectPtr<UCurveFloat> StrideBlend_N_Walk =
nullptr;
312 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Configuration|Blend Curves")
313 TObjectPtr<UCurveFloat> StrideBlend_N_Run =
nullptr;
315 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Configuration|Blend Curves")
316 TObjectPtr<UCurveFloat> StrideBlend_C_Walk =
nullptr;
318 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Configuration|Blend Curves")
319 TObjectPtr<UCurveFloat> LandPredictionCurve =
nullptr;
321 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Configuration|Blend Curves")
322 TObjectPtr<UCurveFloat> LeanInAirCurve =
nullptr;
324 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Configuration|Blend Curves")
325 TObjectPtr<UCurveVector> YawOffset_FB =
nullptr;
327 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Configuration|Blend Curves")
328 TObjectPtr<UCurveVector> YawOffset_LR =
nullptr;
330 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Configuration|Dynamic Transition")
331 TObjectPtr<UAnimSequenceBase> TransitionAnim_R =
nullptr;
333 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Configuration|Dynamic Transition")
334 TObjectPtr<UAnimSequenceBase> TransitionAnim_L =
nullptr;
337 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Configuration|Anim Graph - Foot IK")
338 FName IkFootL_BoneName = FName(TEXT("ik_foot_l"));
340 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Configuration|Anim Graph - Foot IK")
341 FName IkFootR_BoneName = FName(TEXT("ik_foot_r"));
345 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|Anim Graph - Recoil")
346 FVector GunOffset = FVector::ZeroVector;
347 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|Anim Graph - Recoil")
348 FTransform RecoilTransform;
349 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|Anim Graph - Recoil")
350 FTransform PivotPoint;
351 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|Anim Graph - Recoil")
352 bool bFiringWeapon = false;
353 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|Anim Graph -
Injured")
355 UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Read Only Data|Anim Graph -
Injured")
356 float InjuredAlpha = 0.0f;
361 FTimerHandle OnPivotTimer;
363 FTimerHandle PlayDynamicTransitionTimer;
365 FTimerHandle OnJumpedTimer;
367 bool bCanPlayDynamicTransition = true;