Description

From a community member:

Are you responsible also for the FootPlacement node? Its fantastic, but there is a possible bug with the walkable surface handling. It tries to step even on vertical surfaces. I set the sweep radius to 15.0 to make the issue show up easily.

The fix is already there in the code itself, it just wasn't applied to this use-case. From FindPlantTraceImpact():

if (!bHit)
{
    // If the hit fails, use the ground plane position and a default impact normal (negated trace direction)
    OutImpactLocationWS = PointDirectionPlaneIntersection(StartPositionWS, TraceDirectionWS, FPlane(Context.GetMovementComponentFloorLocation(), -TraceDirectionWS));
    OutImpactNormalWS = -TraceDirectionWS;
    return false;
}

OutImpactLocationWS = HitResult.ImpactPoint;
if (!Context.GetMovementComponentIsWalkable(HitResult))
{
    // If the surface hit isn't walkable, use the negated trace direction as the impact normal
    OutImpactNormalWS = -TraceDirectionWS;
    return false;
}


I just copy/paste this line also into the if (!Context.GetMovementComponentIsWalkable(HitResult)) check and it fixes it.

OutImpactLocationWS = PointDirectionPlaneIntersection(StartPositionWS, TraceDirectionWS, FPlane(Context.GetMovementComponentFloorLocation(), -TraceDirectionWS));



This does actually mean the leg 'clips' into the surface a little, so an improvement if you're interested could be to move the leg laterally in this case but not vertically 

 

Steps to Reproduce
  1. Create an anim blueprint using foot placement
  2. Increase sweep radius to 15.0
  3. Walk near a vertical surface
  4. Feet attempt to step on a vertical surface

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-199366 in the post.

0
Login to Vote

Fixed
ComponentUE - Anim - Gameplay
Affects Versions5.1
Target Fix5.4
Fix Commit31282608
Main Commit31282645
Release Commit31282622
CreatedOct 31, 2023
ResolvedFeb 8, 2024
UpdatedFeb 14, 2024
View Jira Issue