Tween- or Keyframe animation is typical animation suite functionality and it’s important to realise Photoshop is NOT an animation suite. This fact becomes very evident when you’re crazy enough to fight your way through Photoshop’s implementation of Keyframe animation. Personally I thought it would be a Flash-5-like experience but it doesn’t even come close…
From the tone of this little introduction you’ve probably guessed it, I’m NOT a big fan of Keyframe/Tween animation in Photoshop. But the option is there; and for the “Types of Animation” pages I’m willing to explore the possibilities in hopes of finding something useful.
Lets dive in…
No scale and rotation, really?
To test what I could do with keyframe animation I made a layer with a little grey square in it. When I opened the animation properties I was amazed to find that only position, opacity and style could be animated. Ok, ok I get it. Rotation and scale require interpolation of the pixels and is therefore destructive to the original image, while changing the position, opacity or style does not. This might be useful to a web-developer emulating some CSS transitions but we need more.
None destructive scaling and rotation is possible with a Smart Object. I’m converting my little grey square to a Smart Object, lets see what this brings us…
Smart Objects with “smart” transformations
Not the change I was expecting but there’s change indeed. Since position, scale and rotation are transform properties they are probably collected in a single keyframe on the transform animation track.
And when I put it to the test this indeed is the case. I can tween objects across the canvas and change their scale and rotation over time. But while doing this little experiment new limitations arise.
When I try to distort my grey square by pulling individual corners to give it some character, the Smart Object tween fails miserably. A Shape Layer with individual points might be more appropriate for this kind of animation. When I try to recreate the distorted square with a Shape Layer, again I’m limited to basic scaling and sliding across the canvas. The individual points of a shape can’t change their position over time, only the shape as a whole.
Not smart enough for rotation…
One of the first things I tried using rotation was a simple mechanical pendulum swing. I created keyframes for the extreme positions of the rotation making sure I used the top middle reference point location to rotate around to create a nice pendulum rotation. While creating the transformation worked as expected, Photoshop fails to adhere to the reference point location when calculating the rotation-tween as you can see in the animation below ~smart object.
Due to the fact that all transformations and animations are offset based (as in relation to the current state of a layer) Photoshop does not know what reference point to rotate around or to be more exact: all reference points (except the one in the centre) change on a frame to frame basis during a tween, because the top-left reference point will alway be top-left no matter how the layer has changed. You can see what I mean if you use the select tool and tick the “Show Transform Controls” in the properties bar at the top. Even when your Smart Object is rotated (when not in transformation mode) a straight bounding box is drawn around the layer’s content. Rotation tweens are therefore calculated around the layers centre reference point by default, no matter what reference point you used to create the rotation/transformation.
For the sake of this pendulum experiment I altered the the Smart Object’s canvas height to 200% so the centre reference point falls exactly where the top reference point was before ~smarter object. By changing the position of the Artlayer on the canvas inside the Smart Object you can manipulate how your Smart Object rotates visually ~smarter object (tweaked)
Ease in/out? (spacing)
If you’ve read “the animator’s survival kit” by Richard Williams you’re probably familiar with the illustration below.
The spacing of the motion is where you can give character to your animations. A simple ease in or out would boost the usability of keyframe animation in Photoshop. Unfortunately the only options available are linear Interpolation and Hold Interpolation. It’s a good thing extra keyframes can be added to a linear tween and retimed by dragging them to alter the spacing of the animation. This gives you the ability to manually add easing to the tweened animation.
If you want real control over your animation you’re better off skipping tweening altogether and change the keyframe interpolation to “hold” (right-click on a keyframe to change this) and create a keyframe for every frame, effectively changing your tween animation to stop-motion animation.
Keyframe animation based on tweening is too limited and unintuitive to be of good use. No easing, no motion paths, no shape animation, no way of putting tween animation to good use… It’s worth to realise, objects that don’t need to be redrawn every frame can be repositioned using a single layer and hold keyframes for ultimate control.