View Issue Details

IDProjectCategoryView StatusLast Update
0004509The Dark ModPhysicspublic21.02.2019 20:31
Reporterstgatilov Assigned ToSTiFU  
PrioritylowSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product VersionSVN 
Target VersionTDM 2.08Fixed in VersionTDM 2.08 
Summary0004509: Mantling a moving entity may make the player clip into world geometry when the mantle animation is finished
DescriptionWhen 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 ReproduceIn 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
TagsNo tags attached.

Relationships

related to 0000652 closedSpringheel Mantle results in noclip through wall corner. 
related to 0004994 confirmed Mantling sometimes allows to clip through solid objects 

Activities

Springheel

Springheel

24.04.2017 00:43

administrator   ~0008808

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).
stgatilov

stgatilov

24.04.2017 13:02

administrator   ~0008809

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.
STiFU

STiFU

25.01.2019 06:33

developer   ~0011489

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.
stgatilov

stgatilov

25.01.2019 15:23

administrator   ~0011492

Version (b) sound much better.
STiFU

STiFU

15.02.2019 13:51

developer   ~0011599

Last edited: 21.02.2019 17:54

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.

STiFU

STiFU

21.02.2019 18:44

developer   ~0011645

Last edited: 21.02.2019 20:31

Rev. 7973 / 15642 adds a grunt sound to canceling the mantle.

Issue History

Date Modified Username Field Change
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
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
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