Fix a crash when transition when crouching moving to jog

This commit is contained in:
LongLy 2024-11-15 10:27:22 -07:00
parent 1669d9b7ea
commit acc9e789f0
5 changed files with 27 additions and 3 deletions

View File

@ -1,7 +1,7 @@
/Engine=C:/Program Files/Epic Games/UE_5.5/Engine/Shaders
/ShaderAutogen=H:/Projects/OLS/Intermediate/ShaderAutogen
/NFORDenoise=C:/Program Files/Epic Games/UE_5.5/Engine/Plugins/Experimental/NFORDenoise/Shaders
/NNEDenoiserShaders=C:/Program Files/Epic Games/UE_5.5/Engine/Plugins/NNE/NNEDenoiser/Shaders
/NFORDenoise=C:/Program Files/Epic Games/UE_5.5/Engine/Plugins/Experimental/NFORDenoise/Shaders
/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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 49 KiB

View File

@ -93,8 +93,26 @@ FOLSStanceAnimSets UOLSBaseLinkedLayerAnimInstance::GetStanceAnimSets(const bool
const FOLSGaitAnimSets& UOLSBaseLinkedLayerAnimInstance::GetGaitAnimSets(
const bool isCrouching, const EOLSGait& locomotionState) const
{
//@TODO: add nullptr log.
return *GetStanceAnimSets(isCrouching).SelectGaitAnimSetByGait(locomotionState);
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;
}
UAnimSequence* UOLSBaseLinkedLayerAnimInstance::SelectIdleAnimation(const bool isCrouching) const

View File

@ -180,6 +180,8 @@ const FOLSGaitAnimSets* FOLSStanceAnimSets::SelectGaitAnimSetByGait(const EOLSGa
return GaitAnimSets.Find(gait);
}
FOLSGaitAnimSets FOLSGaitAnimSets::EmptyAnimSet = FOLSGaitAnimSets();
const FVector2D& FOLSRootYawOffsetClamp::GetRootYawOffsetClamp(const EOLSStance stance) const
{
return (stance == EOLSStance::EStanding ? RootYawOffsetClamp_Standing : RootYawOffsetClamp_Crouching);

View File

@ -250,6 +250,10 @@ public:
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Gait Anim Sets")
FOLSGaitAnimSet_CameraFacing GaitAnimSet_CameraFacing;
public:
static FOLSGaitAnimSets EmptyAnimSet;
};
USTRUCT(BlueprintType)