OldUnreal / UnrealTournamentPatches

Other
991 stars 29 forks source link

Collision issue at map MH-DesertstormV0.unr #1653

Closed SeriousBarbie closed 24 minutes ago

SeriousBarbie commented 2 hours ago

Server OldUnreal-UTPatch469e3.15-Linux-x86 log says

MH-DesertstormV0.CaveManta13 flew out of the world at (X=5408.679688,Y=-761.721619,Z=888.642334)!! MH-DesertstormV0.CaveManta3 flew out of the world at (X=7382.004395,Y=-345.633728,Z=893.785156)!! MH-DesertstormV0.CaveManta12 flew out of the world at (X=7337.304688,Y=-214.358521,Z=895.542297)!! MH-DesertstormV0.CaveManta0 flew out of the world at (X=7413.826660,Y=-74.238647,Z=883.454468)!! MH-DesertstormV0.CaveManta21 flew out of the world at (X=6125.521484,Y=-545.031067,Z=886.926758)!! MH-DesertstormV0.CaveManta5 flew out of the world at (X=5927.730469,Y=-407.578064,Z=892.239136)!! MH-DesertstormV0.CaveManta9 flew out of the world at (X=6083.663574,Y=-530.783508,Z=887.217529)!! MH-DesertstormV0.CaveManta19 flew out of the world at (X=6013.772949,Y=-441.053741,Z=887.686768)!! MH-DesertstormV0.CaveManta22 flew out of the world at (X=6257.479004,Y=-456.713104,Z=893.355591)!! MH-DesertstormV0.CaveManta23 flew out of the world at (X=6454.711426,Y=-142.330704,Z=894.188721)!! MH-DesertstormV0.CaveManta18 flew out of the world at (X=7220.017090,Y=-292.361267,Z=887.121277)!! MH-DesertstormV0.CaveManta2 flew out of the world at (X=6516.188965,Y=-146.731812,Z=891.477600)!! MH-DesertstormV0.CaveManta11 flew out of the world at (X=6068.176758,Y=-479.390656,Z=904.790039)!! MH-DesertstormV0.CaveManta1 flew out of the world at (X=6400.785645,Y=-56.683224,Z=884.520813)!! MH-DesertstormV0.CaveManta8 flew out of the world at (X=6658.363770,Y=-476.238098,Z=888.363586)!! MH-DesertstormV0.CaveManta16 flew out of the world at (X=6801.987305,Y=-301.613281,Z=888.890442)!!

If you inspect for example the location of CaveManta12 in editor you'll see that this is the upper surface of subtract Brush1519 where normally nothing should escape into void. (Because these Mantas carried en Event, map couldn't be ended. Consider raising their event if things go out of the world.) MH-DesertstormV0-EscapeSpot

SeriousBarbie commented 2 hours ago

Additional info:

grep "flew out of the world" ucc.init.sh-2024-10-*|wc
    191    1528   26273
SeriousBuggie commented 35 minutes ago

It is actually map bug. Top surface with normal (0, 0, -1) use only next collision hulls:

Log: 38632: 0 (X=-0.471397,Y=-0.881921,Z=0.000000,W=-280.229919)
Log: 38632: 1 (X=-0.471397,Y=0.881921,Z=0.000000,W=564.693604)
Log: 38632: 2 (X=-1.000000,Y=-0.000000,Z=-0.000000,W=-3687.374512)
Log: 38632: 3 (X=1.000000,Y=0.000000,Z=0.000000,W=5885.410156)

There no any plane with Z not zero. Which mean there no collision on top.

However pre-469e it collide on top, because exists bug when bounding box collide like regular plane. And top plane of this box make collision, which prevent mantas fly away.

If you rebuild map on 469e, issue gone. because top plane get proper collision hulls:

Log: 41450: 0 (X=-1.000000,Y=0.000000,Z=-0.000000,W=-4124.725586)
Log: 41450: 1 (X=-0.000000,Y=1.000000,Z=0.000002,W=-368.359131)
Log: 41450: 2 (X=0.350215,Y=0.936669,Z=0.000000,W=1111.724365)
Log: 41450: 3 (X=-0.063234,Y=-0.997999,Z=0.000000,W=437.594391)
Log: 41450: 4 (X=-0.160751,Y=-0.986995,Z=0.000000,W=-7.774902)
Log: 41450: 5 (X=-0.000000,Y=-0.000000,Z=-1.000000,W=-880.000000)

As you see, plane with index 5 use proper normal, which match to node normal.

I guess there happen next:

We fix bug and and issue appear.

So proper answer: map bugged and need be rebuilt/fixed.

However, I suspect there floating a lot such maps, so we will push change to collision system, which partially revert our fix, and make AABB collide for top surface.

I hope that will be enough for all similar cases.