View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0004509||The Dark Mod||Physics||public||19.04.2017 14:51||21.02.2019 20:31|
|Target Version||TDM 2.08||Fixed in Version||TDM 2.08|
|Summary||0004509: Mantling a moving entity may make the player clip into world geometry when the mantle animation is finished|
|Description||When player attempts to mantle, the code computes the ending point for mantling animation, and checks that this endpoint does not collide with any solid objects. Then mantling animation follows, which is quite lengthy. During this time player is taken completely out of collision detection.|
At the end of mantling animation, player may find himself colliding with walls/ceilings/etc. This may happen in two cases:
1. Player collides with an object, which has moved since the beginning of mantling.
2. Player was mantling to an object, which has moved since the beginning of mantling.
As a result, the player can go through wall, ceiling or some other solid object.
|Steps To Reproduce||In the "New Job" mission you can get from the elevator (lift) straight into the room V (which is on the upper floor) by tunnelling the ceiling.|
Here are steps to reproduce:
1. Stand near the elevator on its upper level.
2. Ensure that the elevator is on its lower level.
3. Call the elevator to you (it would go up).
4. When the elevator is almost on the upper level, jump onto the wooden ledge above platform (it is moving too).
5. You'll start mantling to this ledge, but you'll end up colliding with the ceiling.
6. Now you should already see the room V (above ceiling). Jump again to mantle up to the room.
Here is link to video: https://www.youtube.com/watch?v=Mljylcu7_mc
|Tags||No tags attached.|
|I was able to reproduce this, but it took me about a dozen times before it finally worked; most times I clipped down through the wooden supports and landed back on the elevator (the preferred result).|
Sorry, I guess I did not write the exact conditions for the issue.
I think it is 100% reproducible, and I can do it reliably in this particular case. If you fail to reproduce, it is only due to bad timing of jump.
You should ensure that:
1. When you start mantling, there is enough room for crouched player on the top of the mantled thing.
2. When you finish mantling, there is already not enough room for crouched player.
In this particular example, if you jump too early, then the player would finish mantling in crouched state without colliding the ceiling yet. Then he would hit the ceiling with his head as usual.
If you jump too late, then at the moment mantling is about to start, the player would see that there is already not enough room for him (crouched) at the mantling destination, so mantling would not even start.
I have two possible ideas to fix this:
a) The clean but dangerous way: Would be to enable clipping detection during the whole mantle process. However, this would require new mantling animations and a whole bunch of testing. Considering how TDM is frequently praised for its mantling, I would not want to mess with this too much.
b) The dirty but save way: Check clipping at the mantle-end-position each frame. As soon as the player clips at the end position, the mantle is canceled, a viewport animations returns the player view to the last non-clipping location between the mantle-start-position and the current position. Then, clipping detection is enabled again, as well as regular movement physics.
|Version (b) sound much better.|
Option (b) implemented in Rev. 7963.
We might want to consider also adding a voice taunt, when the mantle is canceled.
There is also another issue with that specific elevator mentioned above. Regardless of whether there is enough room above it or not, the player will always end up clipping into the "wooden ledge above the platform" while standing on it. It works perfectly fine when I try the same with the platform (instead of that ledge) and start from the cellar. I am away for the weekend, so I will have to investigate this issue later. I have tracked this follow-up issue under 0004994.
Rev. 7973 / 15642 adds a grunt sound to canceling the mantle.
|19.04.2017 14:51||stgatilov||New Issue|
|19.04.2017 14:58||stgatilov||Relationship added||related to 0000652|
|24.04.2017 00:43||Springheel||Note Added: 0008808|
|24.04.2017 13:02||stgatilov||Note Added: 0008809|
|25.01.2019 06:33||STiFU||Note Added: 0011489|
|25.01.2019 15:23||stgatilov||Note Added: 0011492|
|15.02.2019 10:29||STiFU||Assigned To||=> STiFU|
|15.02.2019 10:29||STiFU||Status||new => assigned|
|15.02.2019 13:51||STiFU||Note Added: 0011599|
|15.02.2019 14:59||STiFU||Note Edited: 0011599||View Revisions|
|21.02.2019 17:48||STiFU||Issue cloned: 0004994|
|21.02.2019 17:51||STiFU||Relationship added||related to 0004994|
|21.02.2019 17:53||STiFU||Target Version||=> TDM 2.08|
|21.02.2019 17:53||STiFU||Summary||Mantling sometimes allows to clip through solid objects => Mantling a moving entity may make the player clip into world geometry when the mantle animation is finished|
|21.02.2019 17:54||STiFU||Note Edited: 0011599||View Revisions|
|21.02.2019 18:44||STiFU||Note Added: 0011645|
|21.02.2019 18:45||STiFU||Status||assigned => resolved|
|21.02.2019 18:45||STiFU||Resolution||open => fixed|
|21.02.2019 18:45||STiFU||Fixed in Version||=> TDM 2.08|
|21.02.2019 20:31||STiFU||Note Edited: 0011645||View Revisions|