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
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-199366 in the post.
0 |
Component | UE - Anim - Gameplay |
---|---|
Affects Versions | 5.1 |
Target Fix | 5.4 |
Created | Oct 31, 2023 |
---|---|
Resolved | Feb 8, 2024 |
Updated | Feb 14, 2024 |