Skip to content

[godot] Negative scale mix of transform constraints not working properly #2974

@misaki-eymard

Description

@misaki-eymard

Description:
Setting a negative value for the scale mix in transform constraints causes issues where it does not function correctly within Godot projects. Positive values work fine, and setting negative values for other transform mixes like Translate did not cause problems, so this appears to be an issue specific to scale.
For the record, the skeleton animation used in the test has been confirmed to produce the expected results in SkeletonViewer.

Expected behavior:
When a negative value is set for the scale mix in transform constraints, the scale applied to the constrained bone will be the inverse of the target bone's scale change value.

Steps to reproduce:

  1. Download the attached .zip file: godot-negative-scale- issue.zip
    This includes a spine and a Godot project. The Godot project uses Godot 4.4.1 and GDExtension. The skeleton used in this test is expected to behave as follows: when the red arrow shrinks, the blue arrow should extend. This is created using a transform constraint.
    Image
  2. Open the Godot project using Godot 4.4.1.
  3. When you play back the "test" scene, you'll see that the blue arrow controlled by the transform constraint isn't moving at all:
    Image

The version of Godot in which this problem was found:
4.4.1 (GDExtension) / Spine 4.2.43

This issue was reported in the following thread on the forum:
https://esotericsoftware.com/forum/d/29389-inversing-scale-transform-constraint-does-not-work-in-godot-runtime

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions