Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unloading Unconscious Patients Can Cause Ragdoll Carnage #8655

Closed
654wak654 opened this issue Oct 31, 2021 · 7 comments
Closed

Unloading Unconscious Patients Can Cause Ragdoll Carnage #8655

654wak654 opened this issue Oct 31, 2021 · 7 comments
Labels

Comments

@654wak654
Copy link
Contributor

654wak654 commented Oct 31, 2021

Mods (complete and add to the following information):

  • Arma 3: 2.06
  • CBA: 3.15.6
  • ACE3: 3.14.0

Description:
If someone goes unconscious in a vehicle, they'll do a ragdoll when they're first unloaded. That's bad news since ragdolls are known to have the physical force of 50kN.

Steps to reproduce:

  1. Put person in vehicle
  2. Make them unconscious
  3. Unload person

Expected behavior:
Patient preferably shouldn't have collision or ragdoll.

Where did the issue occur?

  • All environments

Screenshots:
https://clips.twitch.tv/JazzyManlyStrawberryWTRuck-yKDwg5U175U_Fhs6

Issue is easily re-creatable, though obviously it doesn't always cause as much chaos as in the video.


@diwako I wanted to do a simple patch where we just don't call setUnconscious for people going unconscious in vehicles; but it looks like setUnconscious is used to actually keep some state (through lifeState). What do you think would be the best way to approach this?

@diwako
Copy link
Contributor

diwako commented Oct 31, 2021

The lifeState must be upheld, too much depends on it. So doing _unit setUnconscious false is out of the question. at least in my opinion.

There are 2 ideas that might work, one of them was thrown around in the slack some while ago.

  1. Setting the mass of an unconscious player to something very low to make the physic engine not go haywire
  2. disable collisions between unit and vehicle

For first idea, setting mass might help, but it will most likely cause other issues along the way with the unit now behaving somewhat weird.

Second idea means you need to double check everything as locality is now in play. Which mean sending events, keeping an eye on the units state, checking if units gets loaded in or out of a vehicle, race conditions, network lag etc etc

None of these are perfect solutions and it means way more discussions about it, maybe someone has even a better idea.

@severgun
Copy link
Contributor

better idea

gently ask dedmen for commands that can controll ragdoll

@veteran29
Copy link
Member

There's this:

class PhysXParams {
    ragdollVehicleCollision = 0;
};

but it does not seem to work, ideally we would get an engine fix which prevents ragdolls from colliding with physx entities.

@LinkIsGrim
Copy link
Contributor

gently ask dedmen for commands that can controll ragdoll

https://community.bistudio.com/wiki/awake & https://community.bistudio.com/wiki/isAwake in 2.08

@severgun
Copy link
Contributor

Did you test it?

@Mike-MF
Copy link
Member

Mike-MF commented Sep 19, 2023

Closing due to age, inactivity or already solved. May be re-opened if the issue is still present, even better just open a new up-to-date Issue.

@Mike-MF Mike-MF closed this as not planned Won't fix, can't repro, duplicate, stale Sep 19, 2023
@johnb432
Copy link
Contributor

For #10092 I looked into solving this problem for dead units, as they can also cause this type of carnage. I tried both allowDamage and awake, but I couldn't get them to resolve the issue. getMass on corpses returns 0, so setting PhysX mass to 0 wouldn't change anything. enableSimulationGlobal postpones the inevitable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants