Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Animation: when adding new Bezier track, first key value is not recorded (is always 0) #81929

Closed
hsandt opened this issue Sep 19, 2023 · 1 comment · Fixed by #82012
Closed

Comments

@hsandt
Copy link
Contributor

hsandt commented Sep 19, 2023

Godot version

v4.1.1.stable.official [bd6af8e]

System information

Godot v4.1.1.stable - Ubuntu 22.04.3 LTS 22.04 - Vulkan (Compatibility) - Mesa Intel(R) HD Graphics 4600 (HSW GT2) () - Intel(R) Core(TM) i7-4710HQ CPU @ 2.50GHz (8 Threads)

Issue description

When recording an animation key with the key button near a property for the first time, user is prompted to create a new track. If user selects to Use Bezier Curves, the new bezier curve will start at 0 instead of taking the current value = recorded key value as start value.

Godot 4 1 1 - new Bezier track does not remember first new key value

Steps to reproduce

  1. Setup: either download the MRP below, or create a Sprite2D + AnimationPlayer under some parent node.
  2. Click on the AnimationPlayer or Animation pane to enable Animation mode.
  3. Click on the Sprite2D node. You should see key buttons near every property.
  4. Rotate the Sprite2D via Rotate Mode (E) or directly by dragging the Rotation slider to some non-0 value
  5. Click on the key button to record the value
  6. In the prompt popup, make sure to check Use Bezier Curves
  7. Verify the key value: it is 0
  8. Drag animation time a little to force refresh rotation: sprite is back to no rotation

Minimal reproduction project

Godot 4.1.1 - Animation key on new track does not remember new value.zip

@hsandt
Copy link
Contributor Author

hsandt commented Sep 19, 2023

It's worse than I thought: in some cases, it will also not remember future key value changes.

Godot 4 1 1 - new Bezier track does not remember further key values

It worked the other times I tried it and now it's 100% repro on the leg. I'm not sure what the conditions are, you can try to repro this on the MWR...

I don't see any usable workaround (the only 100% reliable action is to select the key point and set the value directly, which defeats the point of visual editing), so I'm stuck and unable to animate my character body parts at the moment...

BrinerLovo added a commit to BrinerLovo/godot that referenced this issue Sep 20, 2023
Fix the reported issue godotengine#81929

The issue was caused due to 'insert_queue' was prematurely set to false before awaiting dialog confirmation for track insertion. Additionally, refactored the code to eliminate redundancy and enhance code reusability.
@akien-mga akien-mga added this to the 4.3 milestone Jul 8, 2024
sorascode pushed a commit to sorascode/godot-soras-version that referenced this issue Jul 22, 2024
Fixes godotengine#81929.

In Float and Integer types, there is no subindex – only the primary value.
Currently, trying to retrieve a subindex from these types in the Variant leads
to a return value of null. To address this, the proposed change ensures that
the default value is returned for these types instead of attempting an invalid
subindex retrieval.
Akeal pushed a commit to Akeal/godot that referenced this issue Jul 24, 2024
Fixes godotengine#81929.

In Float and Integer types, there is no subindex – only the primary value.
Currently, trying to retrieve a subindex from these types in the Variant leads
to a return value of null. To address this, the proposed change ensures that
the default value is returned for these types instead of attempting an invalid
subindex retrieval.
Luis-Wong pushed a commit to Luis-Wong/godot that referenced this issue Jul 26, 2024
Fixes godotengine#81929.

In Float and Integer types, there is no subindex – only the primary value.
Currently, trying to retrieve a subindex from these types in the Variant leads
to a return value of null. To address this, the proposed change ensures that
the default value is returned for these types instead of attempting an invalid
subindex retrieval.
RadiantUwU pushed a commit to RadiantUwU/godot that referenced this issue Jul 27, 2024
Fixes godotengine#81929.

In Float and Integer types, there is no subindex – only the primary value.
Currently, trying to retrieve a subindex from these types in the Variant leads
to a return value of null. To address this, the proposed change ensures that
the default value is returned for these types instead of attempting an invalid
subindex retrieval.
2nafish117 pushed a commit to 2nafish117/godot that referenced this issue Aug 5, 2024
Fixes godotengine#81929.

In Float and Integer types, there is no subindex – only the primary value.
Currently, trying to retrieve a subindex from these types in the Variant leads
to a return value of null. To address this, the proposed change ensures that
the default value is returned for these types instead of attempting an invalid
subindex retrieval.
chryan pushed a commit to chryan/godot that referenced this issue Aug 6, 2024
Fixes godotengine#81929.

In Float and Integer types, there is no subindex – only the primary value.
Currently, trying to retrieve a subindex from these types in the Variant leads
to a return value of null. To address this, the proposed change ensures that
the default value is returned for these types instead of attempting an invalid
subindex retrieval.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants