Merge branch 'main' into refactoring
# Conflicts: # Content/Characters/UEFN_Mannequin/AnimationLayers/ABP_UEFN_FullBody_Base_New.uasset # Content/Characters/UEFN_Mannequin/Animations/Run/M_Neutral_Run_Stop_F_Rfoot.uasset # Content/Characters/UEFN_Mannequin/Animations/Run/M_Neutral_Run_Turn_L_180_Lfoot.uasset # Content/Characters/UEFN_Mannequin/Animations/Walk/M_Neutral_Walk_Stop_F_Lfoot.uasset # Content/Characters/UEFN_Mannequin/Animations/Walk/M_Neutral_Walk_Stop_F_Rfoot.uasset # Saved/AutoScreenshot.png # Saved/Autosaves/Game/Characters/UEFN_Mannequin/AnimationLayers/ABP_UEFN_FullBody_Base_New_Auto1.uasset # Source/OLSAnimation/Private/AnimInstances/OLSBaseLinkedLayerAnimInstance.cpp # Source/OLSAnimation/Private/Data/OLSAnimationData.cpp # Source/OLSAnimation/Public/AnimInstances/OLSBaseLinkedLayerAnimInstance.h # Source/OLSAnimation/Public/Data/OLSAnimationData.h
This commit is contained in:
commit
9ec5388f4e
17
.vsconfig
Normal file
17
.vsconfig
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"version": "1.0",
|
||||
"components": [
|
||||
"Component.Unreal.Debugger",
|
||||
"Component.Unreal.Ide",
|
||||
"Microsoft.Net.Component.4.6.2.TargetingPack",
|
||||
"Microsoft.VisualStudio.Component.VC.14.38.17.8.ATL",
|
||||
"Microsoft.VisualStudio.Component.VC.14.38.17.8.x86.x64",
|
||||
"Microsoft.VisualStudio.Component.VC.Llvm.Clang",
|
||||
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
|
||||
"Microsoft.VisualStudio.Component.Windows11SDK.22621",
|
||||
"Microsoft.VisualStudio.Workload.CoreEditor",
|
||||
"Microsoft.VisualStudio.Workload.ManagedDesktop",
|
||||
"Microsoft.VisualStudio.Workload.NativeDesktop",
|
||||
"Microsoft.VisualStudio.Workload.NativeGame"
|
||||
]
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 54 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -3,6 +3,7 @@
|
||||
|
||||
#include "AnimInstances/OLSBaseLinkedLayerAnimInstance.h"
|
||||
|
||||
#include "KismetAnimationLibrary.h"
|
||||
#include "AnimInstances/OLSBaseLayerAnimInstance.h"
|
||||
|
||||
void UOLSBaseLinkedLayerAnimInstance::NativeInitializeAnimation()
|
||||
@ -58,27 +59,37 @@ void UOLSBaseLinkedLayerAnimInstance::NativeThreadSafeUpdateSkeletonControlData(
|
||||
{
|
||||
OrientationWarpingAlpha = GetCurveValue(EnableOrientationWarpingName);
|
||||
|
||||
FeetPositionCurve = GetCurveValue(FeetPositionCurveName);
|
||||
bIsRightFootPlanted = FeetPositionCurve > FootPlantedThreshold;
|
||||
bIsLeftFootPlanted = FMath::Abs(FeetPositionCurve) > FootPlantedThreshold;
|
||||
bIsLeftFootFarFromTarget = UKismetAnimationLibrary::K2_DistanceBetweenTwoSocketsAndMapRange(
|
||||
GetOwningComponent(), IKFootLeft, RTS_World,
|
||||
IKTargetFootLeft, RTS_World, false,
|
||||
0.f, 0.f, 0.f, 0.f) > 8.0f;
|
||||
|
||||
bIsRightFootFarFromTarget = UKismetAnimationLibrary::K2_DistanceBetweenTwoSocketsAndMapRange(
|
||||
GetOwningComponent(), IKFootRight, RTS_World,
|
||||
IKTargetFootRight, RTS_World, false,
|
||||
0.f, 0.f, 0.f, 0.f) > 8.0f;
|
||||
|
||||
|
||||
// const float feetPositionValue = GetCurveValue(FeetPositionCurveName);
|
||||
// bIsRightFootPlanted = feetPositionValue > 0.5f;
|
||||
// bIsLeftFootPlanted = FMath::Abs(feetPositionValue) > 0.5f;
|
||||
|
||||
// If neither foot is planted, use the last valid foot
|
||||
if (!bIsRightFootPlanted && !bIsLeftFootPlanted)
|
||||
if (!bIsRightFootFarFromTarget && !bIsLeftFootFarFromTarget)
|
||||
{
|
||||
if (bWasRightFootPlantingChanged)
|
||||
{
|
||||
bIsRightFootPlanted = true;
|
||||
bIsRightFootFarFromTarget = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
bIsLeftFootPlanted = true;
|
||||
bIsLeftFootFarFromTarget = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Update the last valid foot
|
||||
bWasRightFootPlantingChanged = bIsRightFootPlanted;
|
||||
bWasLeftFootPlantingChanged = bIsLeftFootPlanted;
|
||||
bWasRightFootPlantingChanged = bIsRightFootFarFromTarget;
|
||||
}
|
||||
}
|
||||
|
||||
@ -158,7 +169,7 @@ UAnimSequence* UOLSBaseLinkedLayerAnimInstance::SelectStartCycleAnimation(const
|
||||
|
||||
return GetGaitAnimSets(isCrouching, gait).GaitAnimSet_ForwardFacing.StartCycle.
|
||||
GetMovementAnimationByAngle(
|
||||
velocityDirection, angle, bIsRightFootPlanted);
|
||||
velocityDirection, angle, bIsRightFootFarFromTarget);
|
||||
}
|
||||
|
||||
UAnimSequence* UOLSBaseLinkedLayerAnimInstance::SelectCycleAnimation(const bool isCrouching,
|
||||
@ -181,21 +192,16 @@ UAnimSequence* UOLSBaseLinkedLayerAnimInstance::SelectPivotAnimation(const bool
|
||||
const EOLSGait gait,
|
||||
const EOLSCardinalDirection velocityDirection,
|
||||
const EOLSHipDirection hipDirection,
|
||||
const float angle,
|
||||
float& outPivotTime) const
|
||||
const float angle) const
|
||||
{
|
||||
if (isAiming)
|
||||
{
|
||||
outPivotTime = 0.2f;
|
||||
return GetGaitAnimSets(isCrouching, gait).GaitAnimSet_CameraFacing.GetPivotFromHipDirection(hipDirection).
|
||||
GetMovementAnimationByCardinalDirection(velocityDirection);
|
||||
}
|
||||
|
||||
return (bUseFeetFlagsForPivot)
|
||||
? GetGaitAnimSets(isCrouching, gait).GaitAnimSet_ForwardFacing.Pivot.GetLeftOrRightAnim(
|
||||
angle, bIsLeftFootPlanted, bIsRightFootPlanted, outPivotTime)
|
||||
: GetGaitAnimSets(isCrouching, gait).GaitAnimSet_ForwardFacing.Pivot.GetLeftOrRightAnim(
|
||||
angle, FeetPositionCurve, outPivotTime);
|
||||
return GetGaitAnimSets(isCrouching, gait).GaitAnimSet_ForwardFacing.Pivot.GetLeftOrRightByAngle(
|
||||
angle, bIsLeftFootFarFromTarget, bIsRightFootFarFromTarget);
|
||||
}
|
||||
|
||||
UAnimSequence* UOLSBaseLinkedLayerAnimInstance::SelectStopCycleAnimation(const bool isCrouching,
|
||||
@ -211,7 +217,7 @@ UAnimSequence* UOLSBaseLinkedLayerAnimInstance::SelectStopCycleAnimation(const b
|
||||
GetMovementAnimationByCardinalDirection(velocityDirection);
|
||||
}
|
||||
|
||||
return GetGaitAnimSets(isCrouching, gait).GaitAnimSet_ForwardFacing.Stop.GetLeftOrRightStopAnim(FeetPositionCurve);
|
||||
return GetGaitAnimSets(isCrouching, gait).GaitAnimSet_ForwardFacing.StopCycle.GetLeftOrRightAnim(bIsRightFootFarFromTarget);
|
||||
}
|
||||
|
||||
FVector2D UOLSBaseLinkedLayerAnimInstance::SelectPlayRateByLocomotionState(
|
||||
@ -300,7 +306,7 @@ void UOLSBaseLinkedLayerAnimInstance::ProcessTurnInPlaceTransitionLogic(const fl
|
||||
|
||||
bool UOLSBaseLinkedLayerAnimInstance::ShouldSelectNewPivotAnimation(const float lastPivotTime) const
|
||||
{
|
||||
return ShouldLookingOrAimingDirectionSelectNewPivotAnimation(lastPivotTime) || ShouldVelocityDirectionSelectNewPivotAnimation(lastPivotTime);
|
||||
return ShouldLookingOrAimingDirectionSelectNewPivotAnimation(lastPivotTime);
|
||||
}
|
||||
|
||||
bool UOLSBaseLinkedLayerAnimInstance::ShouldLookingOrAimingDirectionSelectNewPivotAnimation(const float lastPivotTime) const
|
||||
@ -308,11 +314,6 @@ bool UOLSBaseLinkedLayerAnimInstance::ShouldLookingOrAimingDirectionSelectNewPiv
|
||||
return (bIsLookingOrAimingDirection && lastPivotTime > 0.0f);
|
||||
}
|
||||
|
||||
bool UOLSBaseLinkedLayerAnimInstance::ShouldVelocityDirectionSelectNewPivotAnimation(const float lastPivotTime) const
|
||||
{
|
||||
return (bIsLookingOrAimingDirection && lastPivotTime > 0.0f);
|
||||
}
|
||||
|
||||
UOLSBaseLayerAnimInstance* UOLSBaseLinkedLayerAnimInstance::GetBaseMainAnimInstance() const
|
||||
{
|
||||
return BaseMainAnimInstance;
|
||||
|
||||
@ -82,26 +82,26 @@ UAnimSequence* FOLSMovementAnimSet::GetMovementAnimationByCardinalDirection(cons
|
||||
return result;
|
||||
}
|
||||
|
||||
class UAnimSequence* FOLSMovementAnimSet_ForwardFacing_StartCycle::GetForwardLeftOrRightFoot(
|
||||
const float feetPositionValue) const
|
||||
class UAnimSequence* FOLSMovementAnimSet_ForwardFacing_StartCycle::GetForwardLeftOrRightFootByAngle(
|
||||
const bool isRightFootFront) const
|
||||
{
|
||||
return (feetPositionValue > 0.f) ? Forward_R : Forward_L;
|
||||
return (isRightFootFront) ? Forward_R : Forward_L;
|
||||
}
|
||||
|
||||
UAnimSequence* FOLSMovementAnimSet_ForwardFacing_StartCycle::GetForward180LeftOrRight(const float angle) const
|
||||
UAnimSequence* FOLSMovementAnimSet_ForwardFacing_StartCycle::GetForward180LeftOrRightByAngle(const float angle) const
|
||||
{
|
||||
return (angle > 0.f) ? Forward180_R : Forward180_L;
|
||||
}
|
||||
|
||||
class UAnimSequence* FOLSMovementAnimSet_ForwardFacing_StartCycle::GetMovementAnimationByAngle(
|
||||
const EOLSCardinalDirection direction, const float angle, const float feetPositionValue) const
|
||||
const EOLSCardinalDirection direction, const float angle, const bool isRightFootFront) const
|
||||
{
|
||||
TObjectPtr<UAnimSequence> result = nullptr;
|
||||
|
||||
switch (direction)
|
||||
{
|
||||
case EOLSCardinalDirection::EForward:
|
||||
result = GetForwardLeftOrRightFoot(feetPositionValue);
|
||||
result = GetForwardLeftOrRightFootByAngle(isRightFootFront);
|
||||
break;
|
||||
case EOLSCardinalDirection::ELeft:
|
||||
result = Left;
|
||||
@ -110,26 +110,15 @@ class UAnimSequence* FOLSMovementAnimSet_ForwardFacing_StartCycle::GetMovementAn
|
||||
result = Right;
|
||||
break;
|
||||
case EOLSCardinalDirection::EBackward:
|
||||
result = GetForward180LeftOrRight(angle);
|
||||
result = GetForward180LeftOrRightByAngle(angle);
|
||||
break;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
class UAnimSequence* FOLSMovementAnimSet_ForwardFacing_Stop::GetLeftOrRightStopAnim(const float feetPosition) const
|
||||
{
|
||||
return (feetPosition > 0.f ? StopR : StopL);
|
||||
}
|
||||
|
||||
void FOLSMovementAnimSets_ForwardFacing_Pivot::GetLeftOrRightAnimSet(float feetPosition,
|
||||
FOLSMovementAnimSet_ForwardFacing_Pivot& outAnimSet) const
|
||||
{
|
||||
outAnimSet = (feetPosition > 0.f) ? Pivot_RightFoot : Pivot_LeftFoot;
|
||||
}
|
||||
|
||||
void FOLSMovementAnimSets_ForwardFacing_Pivot::GetLeftOrRightAnimSet(const bool isLeftFootPlanted,
|
||||
const bool isRightFootPlanted, FOLSMovementAnimSet_ForwardFacing_Pivot& outAnimSet) const
|
||||
const bool isRightFootPlanted, FOLSMovementAnimSet_ForwardFacing_Pivot& outAnimSet) const
|
||||
{
|
||||
if (isLeftFootPlanted)
|
||||
{
|
||||
@ -141,25 +130,18 @@ void FOLSMovementAnimSets_ForwardFacing_Pivot::GetLeftOrRightAnimSet(const bool
|
||||
}
|
||||
}
|
||||
|
||||
class UAnimSequence* FOLSMovementAnimSets_ForwardFacing_Pivot::GetLeftOrRightAnim(const float angle,
|
||||
const bool isLeftFootPlanted, const bool isRightFootPlanted, float& outPivotTime) const
|
||||
UAnimSequence* FOLSMovementAnimSets_ForwardFacing_StopCycle::GetLeftOrRightAnim(const bool isRightFootPlanted) const
|
||||
{
|
||||
return (isRightFootPlanted ? StopCycle_RightFoot : StopCycle_LeftFoot);
|
||||
}
|
||||
|
||||
class UAnimSequence* FOLSMovementAnimSets_ForwardFacing_Pivot::GetLeftOrRightByAngle(const float angle,
|
||||
const bool isLeftFootPlanted,
|
||||
const bool isRightFootPlanted) const
|
||||
{
|
||||
FOLSMovementAnimSet_ForwardFacing_Pivot animSet;
|
||||
GetLeftOrRightAnimSet(isLeftFootPlanted, isRightFootPlanted, animSet);
|
||||
|
||||
outPivotTime = PivotTime;
|
||||
|
||||
return (angle > 0.f) ? animSet.Pivot180R : animSet.Pivot180L;
|
||||
}
|
||||
|
||||
class UAnimSequence* FOLSMovementAnimSets_ForwardFacing_Pivot::GetLeftOrRightAnim(const float angle,
|
||||
const float feetPosition, float& outPivotTime) const
|
||||
{
|
||||
FOLSMovementAnimSet_ForwardFacing_Pivot animSet;
|
||||
GetLeftOrRightAnimSet(feetPosition, animSet);
|
||||
|
||||
outPivotTime = PivotTime;
|
||||
|
||||
return (angle > 0.f) ? animSet.Pivot180R : animSet.Pivot180L;
|
||||
}
|
||||
|
||||
|
||||
@ -82,8 +82,7 @@ protected:
|
||||
const EOLSGait gait,
|
||||
const EOLSCardinalDirection velocityDirection,
|
||||
const EOLSHipDirection hipDirection,
|
||||
const float angle,
|
||||
float& outPivotTime) const;
|
||||
const float angle) const;
|
||||
|
||||
UFUNCTION(BlueprintCallable, meta = (BlueprintThreadSafe), Category = "ThreadSafe|Selectors")
|
||||
class UAnimSequence* SelectStopCycleAnimation(const bool isCrouching,
|
||||
@ -121,9 +120,6 @@ protected:
|
||||
UFUNCTION(BlueprintCallable, meta = (BlueprintThreadSafe), Category = "ThreadSafe|Pivot")
|
||||
bool ShouldLookingOrAimingDirectionSelectNewPivotAnimation(const float lastPivotTime) const;
|
||||
|
||||
UFUNCTION(BlueprintCallable, meta = (BlueprintThreadSafe), Category = "ThreadSafe|Pivot")
|
||||
bool ShouldVelocityDirectionSelectNewPivotAnimation(const float lastPivotTime) const;
|
||||
|
||||
protected:
|
||||
|
||||
UFUNCTION(BlueprintCallable, meta = (BlueprintThreadSafe))
|
||||
@ -203,23 +199,16 @@ protected:
|
||||
UPROPERTY(BlueprintReadWrite, Category = "ThreadSafe|SkeletonControl|OrientationWarping")
|
||||
float OrientationWarpingAlpha = 0.f;
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
UPROPERTY(BlueprintReadWrite, Category = "ThreadSafe|SkeletonControl|FeetPosition")
|
||||
float FeetPositionCurve = 0.0f;
|
||||
|
||||
UPROPERTY(BlueprintReadWrite, Category = "ThreadSafe|SkeletonControl|FeetPosition")
|
||||
uint8 bWasRightFootPlantingChanged : 1 = false;
|
||||
|
||||
UPROPERTY(BlueprintReadWrite, Category = "ThreadSafe|SkeletonControl|FeetPosition")
|
||||
uint8 bWasLeftFootPlantingChanged : 1 = false;
|
||||
uint8 bIsRightFootFarFromTarget : 1 = true;
|
||||
|
||||
UPROPERTY(BlueprintReadWrite, Category = "ThreadSafe|SkeletonControl|FeetPosition")
|
||||
uint8 bIsRightFootPlanted : 1 = true;
|
||||
|
||||
UPROPERTY(BlueprintReadWrite, Category = "ThreadSafe|SkeletonControl|FeetPosition")
|
||||
uint8 bIsLeftFootPlanted : 1 = true;
|
||||
uint8 bIsLeftFootFarFromTarget : 1 = true;
|
||||
|
||||
protected:
|
||||
|
||||
@ -231,9 +220,6 @@ protected:
|
||||
|
||||
UPROPERTY(BlueprintReadWrite, Category = "ThreadSafe|Pivots")
|
||||
float TimeAtPivotStop = 0.f;
|
||||
|
||||
UPROPERTY(BlueprintReadWrite, Category = "ThreadSafe|Pivots")
|
||||
float PivotTime = 0.f;
|
||||
|
||||
protected:
|
||||
|
||||
@ -278,36 +264,19 @@ protected:
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Settings|AnimSet|FeetPosition")
|
||||
FName FeetPositionCurveName = NAME_None;
|
||||
/**
|
||||
* Threshold value to determine if a foot is considered planted on the ground.
|
||||
* Range: 0.0 to 1.0, where:
|
||||
* - Values closer to 0 make foot planting detection more sensitive
|
||||
* - Values closer to 1 require more definitive foot contact
|
||||
* Default value of 0.4 provides a balanced detection for most animations
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Settings|AnimSet|FeetPosition",
|
||||
meta = (ClampMin = "0.0", ClampMax = "1.0", UIMin = "0.0", UIMax = "1.0"))
|
||||
float FootPlantedThreshold = 0.4f;
|
||||
|
||||
/**
|
||||
* Determines the method used for selecting pivot animations based on foot positioning.
|
||||
*
|
||||
* When true:
|
||||
* - Uses explicit foot planting flags (isLeftFootPlanted, isRightFootPlanted)
|
||||
* - More precise control over pivot selection
|
||||
* - Better for complex animation transitions
|
||||
*
|
||||
* When false:
|
||||
* - Uses simplified feet position value
|
||||
* - Relies on animation curves for foot position
|
||||
* - More suitable for basic movement patterns
|
||||
*
|
||||
* @note This affects how pivot animations are chosen in FOLSMovementAnimSets_ForwardFacing_Pivot
|
||||
* @see FOLSMovementAnimSets_ForwardFacing_Pivot::GetLeftOrRightAnim
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Settings|AnimSet|FeetPosition")
|
||||
uint8 bUseFeetFlagsForPivot : 1 = true;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Settings|AnimSet|FeetPosition")
|
||||
FName IKFootRight = NAME_None;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Settings|AnimSet|FeetPosition")
|
||||
FName IKTargetFootRight = NAME_None;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Settings|AnimSet|FeetPosition")
|
||||
FName IKFootLeft = NAME_None;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Settings|AnimSet|FeetPosition")
|
||||
FName IKTargetFootLeft = NAME_None;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Settings|StrideWarping")
|
||||
float StrideWarpingBlendInDurationScaled = .2f;
|
||||
|
||||
|
||||
@ -153,11 +153,11 @@ struct FOLSMovementAnimSet_ForwardFacing_StartCycle
|
||||
|
||||
public:
|
||||
|
||||
class UAnimSequence* GetForwardLeftOrRightFoot(const float feetPositionValue) const;
|
||||
class UAnimSequence* GetForward180LeftOrRight(const float angle) const;
|
||||
class UAnimSequence* GetForwardLeftOrRightFootByAngle(const bool isRightFootFront) const;
|
||||
class UAnimSequence* GetForward180LeftOrRightByAngle(const float angle) const;
|
||||
class UAnimSequence* GetMovementAnimationByAngle(const EOLSCardinalDirection direction,
|
||||
const float angle,
|
||||
const float feetPositionValue) const;
|
||||
const bool isRightFootFront) const;
|
||||
|
||||
public:
|
||||
|
||||
@ -180,30 +180,11 @@ public:
|
||||
TObjectPtr<class UAnimSequence> Left = nullptr;
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FOLSMovementAnimSet_ForwardFacing_Stop
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
|
||||
class UAnimSequence* GetLeftOrRightStopAnim(const float feetPosition) const;
|
||||
|
||||
public:
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Movement Stop Anim Set")
|
||||
TObjectPtr<class UAnimSequence> StopL = nullptr;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Movement Stop Anim Set")
|
||||
TObjectPtr<class UAnimSequence> StopR = nullptr;
|
||||
};
|
||||
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FOLSMovementAnimSet_ForwardFacing_Pivot
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
|
||||
public:
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Movement Pivot Anim Set")
|
||||
@ -221,23 +202,14 @@ struct FOLSMovementAnimSets_ForwardFacing_Pivot
|
||||
|
||||
protected:
|
||||
|
||||
void GetLeftOrRightAnimSet(const bool isLeftFootPlanted,
|
||||
const bool isRightFootPlanted,
|
||||
void GetLeftOrRightAnimSet(const bool isLeftFootPlanted, const bool isRightFootPlanted,
|
||||
FOLSMovementAnimSet_ForwardFacing_Pivot& outAnimSet) const;
|
||||
|
||||
void GetLeftOrRightAnimSet(float feetPosition,
|
||||
FOLSMovementAnimSet_ForwardFacing_Pivot& outAnimSet) const;
|
||||
|
||||
public:
|
||||
|
||||
class UAnimSequence* GetLeftOrRightAnim(const float angle,
|
||||
class UAnimSequence* GetLeftOrRightByAngle(const float angle,
|
||||
const bool isLeftFootPlanted,
|
||||
const bool isRightFootPlanted,
|
||||
float& outPivotTime) const;
|
||||
|
||||
class UAnimSequence* GetLeftOrRightAnim(const float angle,
|
||||
const float feetPosition,
|
||||
float& outPivotTime) const;
|
||||
const bool isRightFootPlanted) const;
|
||||
|
||||
public:
|
||||
|
||||
@ -246,9 +218,24 @@ public:
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Movement Pivot Anim Set")
|
||||
FOLSMovementAnimSet_ForwardFacing_Pivot Pivot_RightFoot;
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FOLSMovementAnimSets_ForwardFacing_StopCycle
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
|
||||
class UAnimSequence* GetLeftOrRightAnim(const bool isRightFootPlanted) const;
|
||||
|
||||
public:
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Movement Pivot Anim Set")
|
||||
float PivotTime = 0.0f;
|
||||
TObjectPtr<class UAnimSequence> StopCycle_LeftFoot;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Movement Pivot Anim Set")
|
||||
TObjectPtr<class UAnimSequence> StopCycle_RightFoot;
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
@ -270,14 +257,15 @@ public:
|
||||
void GetPlayRateByLocomotionState(const EOLSLocomotionStatePlayRate& state, FVector2D& outPlayRate) const;
|
||||
|
||||
public:
|
||||
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Gait Anim Sets")
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Stance Anim Sets")
|
||||
FVector2D PlayRate_Start = FVector2D::ZeroVector;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Gait Anim Sets")
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Stance Anim Sets")
|
||||
FVector2D PlayRate_Pivot = FVector2D::ZeroVector;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Gait Anim Sets")
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Stance Anim Sets")
|
||||
FVector2D PlayRate_Cycle = FVector2D::ZeroVector;
|
||||
};
|
||||
|
||||
@ -298,7 +286,7 @@ public:
|
||||
FOLSMovementAnimSets_ForwardFacing_Pivot Pivot;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Gait Anim Set")
|
||||
FOLSMovementAnimSet_ForwardFacing_Stop Stop;
|
||||
FOLSMovementAnimSets_ForwardFacing_StopCycle StopCycle;
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
@ -393,6 +381,9 @@ public:
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Stance Anim Sets")
|
||||
FOLSGaitAnimSets WalkAnimSets;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Stance Anim Sets")
|
||||
uint8 bUseFeetPosition : 1 = false;
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"FileVersion": 3,
|
||||
"EngineAssociation": "5.5",
|
||||
"EngineAssociation": "5.6",
|
||||
"Category": "",
|
||||
"Description": "",
|
||||
"Modules": [
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user