Basic Collision Detection Between 3D Physics Characters Doesn't Work

Bug: 3D Boxes and 3D Models with the 3D Physics Character behavior cannot detect collisions between one another properly.

Long story short: Gdevelop simply will not recognize basic collision between two 3D Physics Characters.

Two 3D Boxes on a plane. Each box has 3d Physics Character behavior.

Running one box into the other will (almost) never trigger a collision event except at strange angles/with no apparent rhyme or reason. I have tried the 3D Collision extension as well as the built-in Collision events and it does not matter.

Steps to reproduce

  • Place two 3D Boxes (each with the 3D Physics Character behavior applied) on another 3D Box as the floor (with 3D Physics applied, Static mode)
  • Assign the 3D Platformer Keyboard Mapper behavior to one box.
  • Create a UI layer with a Text object on it.
  • In the events sheet, check if your moveable box is colliding with the other. If so, have it set the text of the Text object to “It’s colliding!”

Every once in a while it will actually register the collision, but usually at incredibly odd angles or only after coming to a complete stop after pushing the other 3D Box.

Meanwhile, the 3D Box is still able to reliably detect collisions with NON-3D Physics Character objects, such as Static and Dynamic 3D Physics objects.

Hi - have you put the box dimensions in the settings within the 3d physics behaviour?

Default settings on a default cube, 100x100x100. Worth noting that regardless of how large or small I make them, nothing changes. The boxes will just begin to either overlap or push each other with air between and still not report a collision.

Playing with the offsets in the advanced settings yields the same results.

I haven’t used 3D much but on the mobile I couldn’t use all the masks or layers depending on whether the object was dynamic or static. IDK if that’s intentional or a bug. If it’s a feature than it would help if it was labeled as such.

Some features won’t work if the object’s aren’t on the same behavior layer.

The 3D part still needs a lot of work.

Usually, the issue with physics collisions is that people use the basic collision instead of the physics. That fails because the objects get separated before the collision test. It seems like the same thing is happening with the 3D physics collision condition.