I can interpolate different animations based on position, rotation, and scale. I want to do the same for different sprites, automatically.

For example, lets say I have a soda can being crushed. I have 2 sprites: One is the soda can uncrushed, and one is the soda can fully crushed. I want to only use those 2 sprites, and have Unity automatically transition from the normal can to the crushes can.

How can I do this without making a bunch of key frames in between?

  • \$\begingroup\$ Can you describe what you want the interpolated frames to look like? If they're simply a cross-fade or an affine (or even mesh-based) distortion of the two end frames, that's doable with a little work, but certain other effects might not be. Either way, there isn't an automatic way to do this built-in, so you'll have to do some degree of custom work. \$\endgroup\$ – DMGregory Dec 12 '15 at 3:10
  • \$\begingroup\$ @DMGregory Honestly, I have no idea what those terms mean, so I am not sure how to answer your question. Another example though is a stick figure doing jumping jacks. I have the start, half-way, and finished jumping jack sprites. I am trying to get Unity to make it look like a full jumping jack at 60 FPS. I am aware I can break up each limb into individual parts and rotate/translate them, but I am trying to avoid doing it this way. \$\endgroup\$ – Evorlor Dec 12 '15 at 3:12
  • 2
    \$\begingroup\$ For something like that, there's no automated shortcut. You can either break each limb into a separate sprite and animate their transformations as you describe, or create a skinned mesh for the sprite with bones for the limbs and animate the bones' transforms. \$\endgroup\$ – DMGregory Dec 12 '15 at 3:20

There is no perfect way to achieve the effect you are after.

But there are some ways to interpolate frames between animations to smooth them out in other software and then import the interpolated frames into Unity. However, please note that the more frames you have, the better the interpolation will work. Using only two frames will result in a strange blending effect.

One way, is to use the free package with After Effects ReelSmart Motion Blur

Here is the result of ReelSmart applied to many stock motion frames.


Not the answer you're looking for? Browse other questions tagged or ask your own question.