dyanikoglu / ALS-Community

Replicated and optimized community version of Advanced Locomotion System V4 for Unreal Engine 5.3 with additional features & bug fixes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FallingCatch Mantle on low walls or objects

bullet28 opened this issue · comments

Describe the bug
If you collide with an object or wall in flight, then a mantle is applied, but if this wall or object is too low, then when the animation is played, the character's legs fall through the floor. Also Mantle in this situation is rather doubtful from a gameplay point of view.

To Reproduce
Jump and hold W while flying towards wall

Screenshots and Videos
2
3
1

Additional context
I decided to disable mantle for such situations in my project by putting this code between "Step 4" and "Step 5" of the UALSMantleComponent::MantleCheck function

	if (MantleType == EALSMantleType::FallingCatch)
	{
		FVector GroundTraceStart = CapsuleBaseLocation;
		GroundTraceStart.Z = DownTraceLocation.Z;
		FVector GroundTraceEnd = GroundTraceStart;
		GroundTraceEnd.Z -= 70.0f;
		
		const float CapsuleRadius = OwnerCharacter->GetCapsuleComponent()->GetScaledCapsuleRadius();
		const FCollisionShape CapsuleCollisionShape = FCollisionShape::MakeCapsule(CapsuleRadius, CapsuleRadius);
		const bool bHitGround = World->SweepSingleByProfile(HitResult, GroundTraceStart, GroundTraceEnd, FQuat::Identity, MantleObjectDetectionProfile, CapsuleCollisionShape, Params);

		if (bHitGround)
		{
			return false;
		}
	}

Bug & fix results: https://youtu.be/1wKzH5DO1J8

Bug & fix results: https://youtu.be/1wKzH5DO1J8

Thank you so much man. good stuff.

I just applied this fix, and it works. I also vote to get this merged!