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

Smooth interpolation non differentiability in loop #1965

Closed
AlexandreChaussard opened this issue Jul 26, 2023 · 3 comments
Closed

Smooth interpolation non differentiability in loop #1965

AlexandreChaussard opened this issue Jul 26, 2023 · 3 comments

Comments

@AlexandreChaussard
Copy link

What are you trying to do, and what do you expect to happen?

Hi ! 👋

When using smooth interpolation in looping animations, it seems that the last keyframe is not interpolated with the first one of the loop, leading to a breaking point in the curve - non differentiability. (see picture 1 below)
Practically speaking, this leads to a weird momentum in the animation that doesn't feel natural.

image

Currently, this is fixable using the baking plugin, by turning everything in linear interpolation. The procedure is the following, so that the interpolation is captured correctly:

  • Copy the whole loop
  • Paste it twice
  • Bake the middle part (correct interpolation being performed)
  • Replace the whole animation by the baked section

This gives the following result (see picture 2 below):

image

This procedure works, but it makes the editing of the animation impossible after baking sadly.

What happens instead?

My suggestion is then the following: simply account for a "ghost" animation after the last keyframe that is a copy of the animation, and perform the interpolation accordingly (see picture below)

image

Model format in which the issue occurs

generic

Blockbench variant

Program

Blockbench version

4.7.4

Operating System

Windows

Installed Blockbench plugins

Bakery, Animation Sliders

@Glitch752
Copy link

@JannisX11 Would you be open to a pull request fixing this issue? This would make walking animations far smoother.

@cronvel
Copy link

cronvel commented Feb 25, 2024

I'm running on the same issue, trying to get a walk animation right.
Everything is set to smooth, and the legs are slowing down around the loop.

It's possible to fix this with the Bezier mode, but Bezier do not works with any surrounding smooth keyframe, so this means turning all keyframes into Bezier : a very long and boring process.

@Tempest-5ky
Copy link

Getting what I believe is the same issue, resulting in an odd pause in the animation seemingly between loops

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants