Context
Cross-engine research (Unity/Unreal/Godot official docs) confirms all three engines independently converge on the same rule: concave/trimesh collision only works on static, non-simulated bodies.
- Unity: a non-convex (concave) Mesh Collider cannot attach to a non-kinematic Rigidbody.
- Godot:
ConcavePolygonShape3D is documented as usable only within StaticBody3D.
- Unreal: using Complex Collision As Simple explicitly disables physics simulation for that object.
Simple Collider's Full-detail Mesh (copy) and Re-meshed collider types are exactly this kind of concave/trimesh geometry. Nothing in the addon currently checks whether one of these is attached to an object also tagged as a rigid body (via set_rigid_body's naming). That combination would silently misbehave on import to any of the three target engines - the object would either fail to simulate, be rejected, or behave unpredictably depending on the engine.
Proposal
Add a new validation check (alongside the existing checks in validation/checks.py) that flags a collider using the Full-Mesh or Re-meshed shape type when its render-mesh parent (or the collider itself) is also tagged as a rigid body per the active naming convention. Follows the same pattern as the existing check_collision_shape_mismatch-style checks.
Acceptance criteria
- New check appears in Validation panel results with a clear message explaining the concave-collision-on-simulated-body conflict.
- Check correctly identifies rigid-body tagging via the same naming-detection logic already used elsewhere (e.g.
convert_from_name).
- Test coverage alongside existing validation check tests.
Context
Cross-engine research (Unity/Unreal/Godot official docs) confirms all three engines independently converge on the same rule: concave/trimesh collision only works on static, non-simulated bodies.
ConcavePolygonShape3Dis documented as usable only withinStaticBody3D.Simple Collider's Full-detail Mesh (copy) and Re-meshed collider types are exactly this kind of concave/trimesh geometry. Nothing in the addon currently checks whether one of these is attached to an object also tagged as a rigid body (via
set_rigid_body's naming). That combination would silently misbehave on import to any of the three target engines - the object would either fail to simulate, be rejected, or behave unpredictably depending on the engine.Proposal
Add a new validation check (alongside the existing checks in
validation/checks.py) that flags a collider using the Full-Mesh or Re-meshed shape type when its render-mesh parent (or the collider itself) is also tagged as a rigid body per the active naming convention. Follows the same pattern as the existingcheck_collision_shape_mismatch-style checks.Acceptance criteria
convert_from_name).