ZeroK-RTS / Zero-K

Open source RTS game running on the Spring/Recoil engine
https://zero-k.info
GNU General Public License v2.0
666 stars 200 forks source link

Many grey sphere origins are stuck to the ground #4920

Open GoogleFrog opened 1 year ago

GoogleFrog commented 1 year ago

image The grey sphere seems to be immobile. This happens for any unit with a custom collision volume. Perhaps an engine regression? I swear we could move these in the past.

sprunk commented 1 year ago

I've been trying to maintain compat with 104-287 (the Steam release engine version from 2018) for regression testing.

lhog commented 1 year ago

I think we're talking about that part of code:

https://github.com/beyond-all-reason/spring/blob/BAR105/rts/Rendering/DebugColVolDrawer.cpp#L290-L297 It hasn't changed since vanilla times and you can't and couldn't move it.

It's supposed to draw unit radius in case a unit

Does that answer the question?

GoogleFrog commented 1 year ago

In this context I am concerned about unit-unit collisions. The grey sphere seems to indicate the collision sphere for units colliding with each other when not on the ground. It is also the origin for the purpose of rotating while flying through the air. Ideally I would put the origin near the centre of mass to avoid the wacky "head over heels flip" style rotation that units like Funnelweb do.

It is clearly controllable because Glaive (for example) has its grey sphere centered on its hips. I was attempting to move the origin for Aspis, but the only way I found to bring the grey sphere off the feet of Aspis was to avoid giving it the non-default collision volume (purple volume). But Glaive has a non-default collision volume, hence the confusion.