godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.16k stars 97 forks source link

Add "Create boundary cube collision sibling" option for mesh #5868

Open krazyjakee opened 1 year ago

krazyjakee commented 1 year ago

Describe the project you are working on

A 3D space game with many large and small collidable meshes.

Describe the problem or limitation you are having in your project

Describe the feature / enhancement and how it helps to overcome the problem or limitation

Having an option in the mesh drop down to create a boundary box collision sibling would very easily allow the developer to quickly create safe and performant colliders around their objects.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

image image

I imagine the code would find the most distant points and create a cube that encapsulate those points.

If this enhancement will not be used often, can it be worked around with a few lines of script?

I propose that for a heavy number of use cases, a simple box collider would be more beneficial for mesh objects, especially static ones. I think that this feature will be used very often.

Is there a reason why this should be core and not an add-on in the asset library?

The reason I feel this should be in the core is that it deals with the fundamentals of 3D interaction via colliders. I propose that many developers are using the collider generators as a means to speed up the development of simple game fundamentals and this tool would give them a free performance and safety boost.

Calinou commented 1 year ago

The Advanced Import Settings dialog already allows you to create primitive collision shapes for various meshes in a 3D scene. See also https://github.com/godotengine/godot-proposals/issues/3155.

While a new option to do this in existing scenes makes sense, I feel it's not flexible enough as you may want to have a capsule, cylinder or sphere shape instead. The difficulty here is providing this kind of flexibility without making the dropdown too complex.

Zireael07 commented 1 year ago

I fail to see how adding a new option, or three, makes the dropdown too complex. If it grows, it can be made into a submenu instead

Ali32bit commented 1 year ago

i like this idea because many times when i setup scenes i have to do a bunch of work setting up colliders for simple objects. it would be nice to have a much simpler one click solution

WickedInsignia commented 1 year ago

The Advanced Import Settings dialog already allows you to create primitive collision shapes for various meshes in a 3D scene. See also #3155.

It is still very tedious to add collision upon import since you must manually edit a box collider (or any other primitive) to fit every single mesh being imported. This would be easier (or not at all necessary) if the bounding box was assumed instead when a box collider is desired. This is the primary use case of a box collider and the way that other major packages function.

Some other major papercuts in the collision import workflow right now: