Refactored OLSAnimationData
This commit is contained in:
parent
8448a31e5e
commit
86d30a6228
Binary file not shown.
Binary file not shown.
@ -1,12 +1,12 @@
|
||||
/Engine=C:/Program Files/Epic Games/UE_5.5/Engine/Shaders
|
||||
/ShaderAutogen=H:/Projects/OLS/Intermediate/ShaderAutogen
|
||||
/Plugin/GLTFExporter=C:/Program Files/Epic Games/UE_5.5/Engine/Plugins/Enterprise/GLTFExporter/Shaders
|
||||
/Plugin/FX/Niagara=C:/Program Files/Epic Games/UE_5.5/Engine/Plugins/FX/Niagara/Shaders
|
||||
/Plugin/ExrReaderShaders=C:/Program Files/Epic Games/UE_5.5/Engine/Plugins/Media/ImgMedia/Shaders
|
||||
/Plugin/WmfMedia=C:/Program Files/Epic Games/UE_5.5/Engine/Plugins/Media/WmfMedia/Shaders
|
||||
/NNEDenoiserShaders=C:/Program Files/Epic Games/UE_5.5/Engine/Plugins/NNE/NNEDenoiser/Shaders
|
||||
/Plugin/WmfMedia=C:/Program Files/Epic Games/UE_5.5/Engine/Plugins/Media/WmfMedia/Shaders
|
||||
/Plugin/ComputeFramework=C:/Program Files/Epic Games/UE_5.5/Engine/Plugins/Runtime/ComputeFramework/Shaders
|
||||
/Plugin/Runtime/HairStrands=C:/Program Files/Epic Games/UE_5.5/Engine/Plugins/Runtime/HairStrands/Shaders
|
||||
/Plugin/GLTFExporter=C:/Program Files/Epic Games/UE_5.5/Engine/Plugins/Enterprise/GLTFExporter/Shaders
|
||||
/NFORDenoise=C:/Program Files/Epic Games/UE_5.5/Engine/Plugins/Experimental/NFORDenoise/Shaders
|
||||
/Plugin/HoldoutComposite=C:/Program Files/Epic Games/UE_5.5/Engine/Plugins/Experimental/Compositing/HoldoutComposite/Shaders
|
||||
/Plugin/Optimus=C:/Program Files/Epic Games/UE_5.5/Engine/Plugins/Animation/DeformerGraph/Shaders
|
||||
|
@ -85,34 +85,18 @@ EOLSHipDirection UOLSBaseLinkedLayerAnimInstance::GetHipDirection() const
|
||||
return (isHipForward) ? EOLSHipDirection::EForward : EOLSHipDirection::EBackward;
|
||||
}
|
||||
|
||||
FOLSStanceAnimSets UOLSBaseLinkedLayerAnimInstance::GetStanceAnimSets(const bool isCrouching) const
|
||||
const FOLSStanceAnimSets& UOLSBaseLinkedLayerAnimInstance::GetStanceAnimSets(const bool isCrouching) const
|
||||
{
|
||||
return (isCrouching ? CrouchingAnimSets : StandingAnimSets);
|
||||
return (isCrouching ? Crouching_AnimSets : Standing_AnimSets);
|
||||
}
|
||||
|
||||
const FOLSGaitAnimSets& UOLSBaseLinkedLayerAnimInstance::GetGaitAnimSets(
|
||||
const bool isCrouching, const EOLSGait& locomotionState) const
|
||||
const FOLSGaitAnimSets& UOLSBaseLinkedLayerAnimInstance::GetGaitAnimSets(const bool isCrouching,
|
||||
const EOLSGait& locomotionState) const
|
||||
{
|
||||
const FOLSStanceAnimSets& stanceAnimSets = GetStanceAnimSets(isCrouching);
|
||||
const FOLSGaitAnimSets* result = nullptr;
|
||||
|
||||
// Attempt to select the appropriate gait anim set.
|
||||
result = (isCrouching)
|
||||
? stanceAnimSets.SelectGaitAnimSetByGait(EOLSGait::EWalk)
|
||||
: stanceAnimSets.SelectGaitAnimSetByGait(locomotionState);
|
||||
|
||||
// Log an error if the pointer is null to help debugging.
|
||||
if (!result)
|
||||
{
|
||||
// UE_LOG(LogTemp, Warning, TEXT("UOLSBaseLinkedLayerAnimInstance::GetGaitAnimSets - Failed to find GaitAnimSet for Gait: %d"), static_cast<int32>(locomotionState));
|
||||
// ensureMsgf(false, TEXT("GetGaitAnimSets returned nullptr! Check locomotionState and isCrouching."));
|
||||
|
||||
// Return a fallback or handle the error based on your requirements.
|
||||
return FOLSGaitAnimSets::EmptyAnimSet;
|
||||
}
|
||||
|
||||
// Safely dereference the pointer.
|
||||
return *result;
|
||||
return (isCrouching)
|
||||
? stanceAnimSets.GetGaitAnimSetByGait(EOLSGait::EWalk)
|
||||
: stanceAnimSets.GetGaitAnimSetByGait(locomotionState);
|
||||
}
|
||||
|
||||
UAnimSequence* UOLSBaseLinkedLayerAnimInstance::SelectIdleAnimation(const bool isCrouching) const
|
||||
@ -122,7 +106,7 @@ UAnimSequence* UOLSBaseLinkedLayerAnimInstance::SelectIdleAnimation(const bool i
|
||||
|
||||
UAnimSequence* UOLSBaseLinkedLayerAnimInstance::SelectIdleEntryAnimation(const bool isCrouching) const
|
||||
{
|
||||
return GetStanceAnimSets(isCrouching).GetIdleEntryAnimation();
|
||||
return GetStanceAnimSets(isCrouching).GetIdleExitAnimation();
|
||||
}
|
||||
|
||||
UAnimSequence* UOLSBaseLinkedLayerAnimInstance::SelectIdleBreakAnimation(const bool isCrouching) const
|
||||
|
@ -35,7 +35,7 @@ UAnimSequence* FOLSIdleAnimSet::GetRandomIdleBreakAnimation() const
|
||||
return IdleBreaks[FMath::RandRange(0, idleBreaksNum - 1)];
|
||||
}
|
||||
|
||||
UAnimSequence* FOLSIdleAndTurnInPlaceAnimSet::GetIdleEntryAnimation() const
|
||||
UAnimSequence* FOLSIdleAndTurnInPlaceAnimSet::GetIdleExitAnimation() const
|
||||
{
|
||||
return IdleAnimSet.IdleExit;
|
||||
}
|
||||
@ -155,9 +155,9 @@ UAnimSequence* FOLSStanceAnimSets::GetIdleAnimation() const
|
||||
return IdleAndTurnInPlaceAnimSet.GetIdleAnimation();
|
||||
}
|
||||
|
||||
UAnimSequence* FOLSStanceAnimSets::GetIdleEntryAnimation() const
|
||||
UAnimSequence* FOLSStanceAnimSets::GetIdleExitAnimation() const
|
||||
{
|
||||
return IdleAndTurnInPlaceAnimSet.GetIdleEntryAnimation();
|
||||
return IdleAndTurnInPlaceAnimSet.GetIdleExitAnimation();
|
||||
}
|
||||
|
||||
UAnimSequence* FOLSStanceAnimSets::GetRandomIdleBreakAnimation() const
|
||||
@ -165,29 +165,38 @@ UAnimSequence* FOLSStanceAnimSets::GetRandomIdleBreakAnimation() const
|
||||
return IdleAndTurnInPlaceAnimSet.GetRandomIdleBreakAnimation();
|
||||
}
|
||||
|
||||
bool FOLSStanceAnimSets::CanPlayIdleBreakAnimation() const
|
||||
{
|
||||
return IdleAndTurnInPlaceAnimSet.CanPlayIdleBreakAnimation();
|
||||
}
|
||||
|
||||
UAnimSequence* FOLSStanceAnimSets::GetTurnInPlaceAnimation(const float direction) const
|
||||
{
|
||||
return IdleAndTurnInPlaceAnimSet.GetTurnInPlaceAnimation(direction);
|
||||
}
|
||||
|
||||
const FOLSGaitAnimSets* FOLSStanceAnimSets::SelectGaitAnimSetByGait(const EOLSGait& gait) const
|
||||
bool FOLSStanceAnimSets::CanPlayIdleBreakAnimation() const
|
||||
{
|
||||
return GaitAnimSets.Find(gait);
|
||||
return false;
|
||||
}
|
||||
|
||||
const FOLSGaitAnimSets& FOLSStanceAnimSets::GetGaitAnimSetByGait(const EOLSGait& gait) const
|
||||
{
|
||||
return WalkAnimSets;
|
||||
}
|
||||
|
||||
const FOLSGaitAnimSets& FOLSStanceAnimSets_Standing::GetGaitAnimSetByGait(const EOLSGait& gait) const
|
||||
{
|
||||
switch (gait)
|
||||
{
|
||||
case EOLSGait::EWalk:
|
||||
return WalkAnimSets;
|
||||
break;
|
||||
|
||||
case EOLSGait::EJog:
|
||||
return JogAnimSets;
|
||||
|
||||
case EOLSGait::ESprint:
|
||||
return SprintAnimSets;
|
||||
}
|
||||
|
||||
return FOLSStanceAnimSets::GetGaitAnimSetByGait(gait);
|
||||
}
|
||||
|
||||
FOLSGaitAnimSets FOLSGaitAnimSets::EmptyAnimSet = FOLSGaitAnimSets();
|
||||
|
||||
const FVector2D& FOLSRootYawOffsetClamp::GetRootYawOffsetClamp(const EOLSStance stance) const
|
||||
{
|
||||
return (stance == EOLSStance::EStanding ? RootYawOffsetClamp_Standing : RootYawOffsetClamp_Crouching);
|
||||
}
|
||||
|
||||
const FOLSRootYawOffsetClamp& FOLSRootYawOffsetClamps::GetRootYawOffsetClamp(const EOLSRotationMode& rotationMode) const
|
||||
{
|
||||
return RootYawOffsetClamps.FindChecked(rotationMode);
|
||||
}
|
||||
|
@ -44,7 +44,7 @@ protected: //~ Blueprint thread-safe update functions.
|
||||
protected:
|
||||
|
||||
virtual EOLSHipDirection GetHipDirection() const;
|
||||
FOLSStanceAnimSets GetStanceAnimSets(const bool isCrouching) const;
|
||||
const FOLSStanceAnimSets& GetStanceAnimSets(const bool isCrouching) const;
|
||||
const FOLSGaitAnimSets& GetGaitAnimSets(const bool isCrouching, const EOLSGait& locomotionState) const;
|
||||
|
||||
protected:
|
||||
@ -233,10 +233,10 @@ protected:
|
||||
float HipDirectionBuffer = 5.f;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Settings|AnimSet")
|
||||
FOLSStanceAnimSets StandingAnimSets;
|
||||
FOLSStanceAnimSets Crouching_AnimSets;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Settings|AnimSet")
|
||||
FOLSStanceAnimSets CrouchingAnimSets;
|
||||
FOLSStanceAnimSets_Standing Standing_AnimSets;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Settings|AnimSet|DistanceMatching")
|
||||
FName GroundDistanceCurveName = NAME_None;
|
||||
|
@ -81,7 +81,7 @@ struct FOLSIdleAndTurnInPlaceAnimSet
|
||||
|
||||
public:
|
||||
|
||||
FORCEINLINE class UAnimSequence* GetIdleEntryAnimation() const;
|
||||
FORCEINLINE class UAnimSequence* GetIdleExitAnimation() const;
|
||||
FORCEINLINE class UAnimSequence* GetIdleAnimation() const;
|
||||
FORCEINLINE class UAnimSequence* GetRandomIdleBreakAnimation() const;
|
||||
FORCEINLINE class UAnimSequence* GetTurnInPlaceAnimation(const float direction) const;
|
||||
@ -262,55 +262,51 @@ struct FOLSStanceAnimSets
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
FOLSStanceAnimSets() = default;
|
||||
FOLSStanceAnimSets(const FOLSStanceAnimSets&) = default;
|
||||
FOLSStanceAnimSets(FOLSStanceAnimSets&&) = default;
|
||||
|
||||
FOLSStanceAnimSets& operator=(const FOLSStanceAnimSets&) = default;
|
||||
FOLSStanceAnimSets& operator=(FOLSStanceAnimSets&&) = default;
|
||||
|
||||
virtual ~FOLSStanceAnimSets() = default;
|
||||
|
||||
class UAnimSequence* GetIdleAnimation() const;
|
||||
class UAnimSequence* GetIdleEntryAnimation() const;
|
||||
class UAnimSequence* GetRandomIdleBreakAnimation() const;
|
||||
bool CanPlayIdleBreakAnimation() const;
|
||||
class UAnimSequence* GetTurnInPlaceAnimation(const float direction) const;
|
||||
const FOLSGaitAnimSets* SelectGaitAnimSetByGait(const EOLSGait& gait) const;
|
||||
|
||||
public:
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Stance Anim Sets")
|
||||
TMap<EOLSGait, FOLSGaitAnimSets> GaitAnimSets;
|
||||
class UAnimSequence* GetIdleAnimation() const;
|
||||
class UAnimSequence* GetIdleExitAnimation() const;
|
||||
class UAnimSequence* GetRandomIdleBreakAnimation() const;
|
||||
class UAnimSequence* GetTurnInPlaceAnimation(const float direction) const;
|
||||
|
||||
virtual bool CanPlayIdleBreakAnimation() const;
|
||||
|
||||
public:
|
||||
|
||||
virtual const FOLSGaitAnimSets& GetGaitAnimSetByGait(const EOLSGait& gait) const;
|
||||
|
||||
public:
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Stance Anim Sets")
|
||||
FOLSIdleAndTurnInPlaceAnimSet IdleAndTurnInPlaceAnimSet;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Stance Anim Sets")
|
||||
FOLSAimAnimSet AimAnimSet;
|
||||
FOLSGaitAnimSets WalkAnimSets;
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FOLSRootYawOffsetClamp
|
||||
struct FOLSStanceAnimSets_Standing : public FOLSStanceAnimSets
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
|
||||
const FVector2D& GetRootYawOffsetClamp(const EOLSStance stance) const;
|
||||
|
||||
public:
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Root Yaw Offset Clamp")
|
||||
FVector2D RootYawOffsetClamp_Standing = FVector2D::ZeroVector;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Root Yaw Offset Clamp")
|
||||
FVector2D RootYawOffsetClamp_Crouching = FVector2D::ZeroVector;
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FOLSRootYawOffsetClamps
|
||||
{
|
||||
GENERATED_BODY()
|
||||
virtual const FOLSGaitAnimSets& GetGaitAnimSetByGait(const EOLSGait& gait) const override;
|
||||
|
||||
public:
|
||||
|
||||
const FOLSRootYawOffsetClamp& GetRootYawOffsetClamp(const EOLSRotationMode& rotationMode) const;
|
||||
|
||||
public:
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Stance Anim Sets")
|
||||
TMap<EOLSRotationMode, FOLSRootYawOffsetClamp> RootYawOffsetClamps;
|
||||
};
|
||||
FOLSGaitAnimSets JogAnimSets;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Stance Anim Sets")
|
||||
FOLSGaitAnimSets SprintAnimSets;
|
||||
};
|
Loading…
Reference in New Issue
Block a user