jarneson / godot-ply

Godot plugin for in-editor box modeling
MIT License
358 stars 25 forks source link

icon godot-ply icon

Godot plugin for in-editor box modelling for gray boxing or prototyping 3d levels.

Editor Screenshot

The main branch is active development for Godot 4. See releases for stable releases.

See demos on youtube.

Join our Discord

Installation

Usage

Create a nodeicon PlyEditor node as the child of a MeshInstance or CSGMesh and select it.

Editing Meshes

There are four selection modes:

Shift + Clicking will add and subtract from the set of selections.
Alt + Clicking in edge or face mode will select loops.

And three gizmo modes:

The gizmo behaves much like the standard Godot gizmo; however, it includes scale handles by default.

The inspector includes translate/rotate/scale tools for fine-tuning, respecting the selected gizmo mode.

There are tools for each selection mode:

Collisions

Collision meshes are updated if there is a CollisionShape child of the parent MeshInstance node at $StaticBody/CollsionShape. This is the default naming if you use the Create Trimesh Static Body tool.

Details

Meshes are meant to only be oriented manifolds. Some properties:

Ply uses a winged edge representation for edges but omits counterclockwise navigation:

omitted
left ccw        right cw
         \     /
          \   /
           \ /
            o destination
            ^
            |
left face   |   right face
            |
            o origin
           / \
          /   \
         /     \
left cw          right ccw
                 omitted

Implications

Given this representation, a few limitations occur that are representable in other tools:

Contributing

Feel free to contribute! Both issues and pull requests are very welcome.

Feel free to contact me on the godot discord server, where my name is hints