Capsule component renders incorrectly with non-uniform scale because the render uses the minimum between the X and Y values and the collision code uses the maximum between the two.
This issue is mentioned in the comment in ...\Engine\Plugins\Experimental\DaySequence\Source\DaySequence\Private\DaySequenceModifierComponent.cpp (lines 52-53):
// UCapsuleComponent::GetScaledCapsuleRadius() returns the min scaled X/Y axis for the radius
// while the actual collision query uses the max scaled X/Y axis for the radius. We use Max here to match the collision.
This issue is also a regression because it has been previously reported in the case https://udn.unrealengine.com/s/question/0D54z00008WlgSaCAJ/bug-capsule-component-renders-incorrectly-with-nonuniform-scale.
Open a new level
Place a TriggerCapsule with a scale of (1.0, 2.0, 1.0)
Note that the capsule radius does not grow
Hook up a PrintString node to the capsule's BeginOverlap event
Disable "Actor Hidden In Game" on the placed capsule
Play the level, walk over towards the capsule
Note that the BeginOverlap event fires before reaching the wireframe of the capsule
Expected Behavior: the debug capsule should match the collision capsule
Actual Behavior: the debug capsule is smaller than the collision capsule
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-241329 in the post.
1 |
Component | UE - Simulation - Physics |
---|---|
Affects Versions | 5.6, 5.5.2 |
Created | Jan 30, 2025 |
---|---|
Updated | Feb 7, 2025 |