Skip to content

Curves view edits the curve before a selected key when no next key exists #1079

Description

@misaki-eymard

Description:
In 4.3, when a selected key has no following key, the Curves view intentionally displays the curve between that key and the previous key.

However, this can produce inconsistent and confusing behavior when multiple keys from different timelines are selected together. For example, if the selected key on a translate timeline has a following key, while the selected key on a scale timeline does not, the Curves view displays:

  • The curve between the selected translate key and its following key.
  • The curve between the previous scale key and the selected scale key.

As a result, curves extending in opposite directions from the selected keys are displayed and edited together. When the handles are adjusted in the Curves view, the translate curve after the selected key and the scale curve before the selected key are modified at the same time, which may lead to unintended changes and confusion.

Expected behavior:
When multiple keys from different timelines are selected together, the Curves view should not display or edit curves extending in different directions from those keys.

The behavior should be made consistent so that the curves displayed and edited for all selected keys correspond to the same side of the selected keys.

Steps to reproduce:

  1. Create a new project in Spine 4.3.23.
  2. Switch to Animate mode and select the root bone.
  3. Add translate keys at frames 0, 10, and 20.
  4. Add scale keys at frames 0 and 10.
  5. Select both the translate key and the scale key at frame 10.
  6. Open the Curves view.
  7. Change the displayed curves to Bezier and adjust their handles.

Notice that the translate timeline edits the curve between frames 10 and 20, while the scale timeline edits the curve between frames 0 and 10.

Version where this issue was observed:
4.3.23

This issue was reported in the following forum thread:
https://esotericsoftware.com/forum/d/30523-4323%E8%B0%83%E6%95%B4%E5%88%B0%E9%A2%84%E6%9C%9F%E4%B9%8B%E5%A4%96%E7%9A%84%E6%9B%B2%E7%BA%BF

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions