godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.17k stars 98 forks source link

Improve Polygon2D editor for better skeletal animation workflow #10997

Open Painthingy opened 1 month ago

Painthingy commented 1 month ago

Describe the project you are working on

I am developing a 2D game that heavily relies on skeletal animations using Godot's built-in Polygon2D and bone system.

Describe the problem or limitation you are having in your project

The current Polygon2D editor has several critical limitations that hinder the skeletal animation workflow:

While these issues could potentially be split into multiple smaller proposals, analysis of the source code reveals that the Polygon2D editor implementation is highly coupled. Submitting a larger pull request (approximately 1000+ lines) is the best solution I could think of, though I welcome suggestions for better approaches. I understand this may increase the review burden, but I haven't found a better way to effectively implement these improvements incrementally.

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

The proposed enhancements to the Polygon2D editor directly address each limitation through new functionality:

I have already implemented some of these features and provided a GIF demonstration. If this proposal is approved, I will proceed with implementing the remaining functionality. friendly_polygon2d_editor_0

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

The implementation includes:

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

These enhancements will be frequently used by anyone creating skeletal animations in Godot. The limitations cannot be worked around with scripts as they involve core editor functionality. The improvements represent fundamental workflow features needed for efficient skeletal animation creation.

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

This must be implemented in the core editor because:

Painthingy commented 8 hours ago

Update some features Image Image Image

Calinou commented 3 hours ago

This is looking great so far, keep it up 🙂