Skip to content

Validation: flag Full-Mesh/Remesh collider combined with rigid-body tag #670

Description

@Weisl

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions