Hexels 2.5 Transform Tools

Hello!  This is my second in a series of Hexels mini-tutorials that look at some of the finer points of that strange-but-wonderful little art program.  For this post, I’ll be discussing the three different ways you can move your hexels around on the canvas.  In particular, I’ll be discussing when you should use which tool and how they work behind the scenes.  My hope is that you’ll understand each tool better and have an idea of why it acts the way it does.

If you’re just looking for the short summary, I’ll get to that first:

Click-and-Drag Transform:  Easy, operates on your selection, doesn’t animate, rotate, or scale.

Free Transform:  More difficult to use.  Doesn’t animate, but can rotate or scale your selection to certain angles and sizes without messing up your shapes.

Layer Transform:  Can only modify the entire layer because it moves the grid itself.  Can do any translation, rotation, or scale, and can be animated.  Also, motion blur!


Now for the details.  Or as kids (and I, when trying to annoy my wife) call them, the deetz.

Click-and-Drag:  This one has been around since Hexels 1.0.  Make a selection with one of the selection tools, then mouse over the selection and click and drag it, or use the arrow keys to move your selection.  This tool simply takes each Hexel and moves it to a different spot on the grid.  Or if you hold down ctrl/cmd, it just moves the selection outline and doesn’t modify what’s on the canvas.  The exact way each Hexel moves is determined by the shape mode you’re in, but we do our best to keep the shape together and move it in a way that makes sense given the user input.  With this type of transform, you’ll always up with the same number of Hexels and outlines as you started with.  Click-and-Drag movement will also respect a tiled (wrapped) layer, so moving a selection off one edge of the canvas will cause it to appear on the other side.  This transform type affects only the selected area of an individual Cel, so its effects can be used to make an animation Cel-by-Cel, but the transform itself is not animatable.

Clicking and dragging is a reliable way to move your Hexels, even if they sometimes look a little odd along the way.
Clicking and dragging is a reliable way to move your Hexels, even if they sometimes look a little odd along the way.

Free Transform [ctrl/cmd-T]:  The Free Transform tool in Hexels was designed because a number of our users wanted a way to rotate and scale their selection.  This sort of thing is relatively easy in a pixel-based tool like Photoshop, because you generally don’t need to preserve the exact alignment of each pixel to keep the image looking nice. (Unless you’re specifically making pixel art).   But in Hexels, we needed a way to preserve the shape and alignment of each Hexel, otherwise the image quickly turns to gibberish.

The solution we can up with is what we call a “visual cast”.  The visual cast reinterprets the selection by moving, rotating, and stretching it and then checking to see what shapes in the underlying grid now match up with the transformed image.  This means that you may get a different number of Hexels than you started with.  It also means that your selection will get jumbled with transforms that don’t map fairly closely to the grid.  Don’t worry though, as Hexels will snap to valid points if you’re close to them.  Here’s a GIF showing how how visual cast works.

The Free Transform tool uses a "visual cast" to reinterpret transformed Hexel data onto the grid. In practice, the tool will snap to the grid pretty readily.
The Free Transform tool uses a “visual cast” to reinterpret transformed Hexel data onto the grid. In practice, the tool will snap to the grid pretty readily.

Notice the grey dots.  These represent the center of each Hexel on the grid.  When the original shape (overlaid in red) covers the dot, that Hexel is filled in with the corresponding color.   As you can see, only a small portion of the possible positions can properly be re-mapped to the grid.  It gets even more complex with rotation and scaling, but we handle most of that for you.

Similar to the Click-and-Drag transform, Free Transform can’t be animated.  You would need to create multiple Key Cels and individually position each one.  But it’s the only way you can rotate or scale a selected section of a layer.

Layer Transform [T]:  The final transform method in Hexels is the Layer Transform tool.  This one differs from the others in that it actually modifies the underlying grid that the selected layer is drawn on.  Because it transforms the entire grid, it doesn’t need to do any funny business to make the Hexels fit on the grid.  This means you can do any offset, angle, or scale and all your shapes will look just fine.  I made a GIF that shows the Layer Transform tool in action (although I cheated a bit in making it–you can’t actually rotate and translate in a single mouse click.)

The layer transform tool lets you translate, rotate, and scale however you'd like, but it affects the entire layer.
The layer transform tool lets you translate, rotate, and scale however you’d like, but it affects the entire layer.

Notice how the entire red grid is changing.  The blue cube is on a lower layer, which is set to draw with an exported grid as reference.

Aside from keeping the image coherent as it moves, the Layer Transform tool has the advantage of being animated.  This means you can specify keyframes for the transform in different frames, and Hexels will fill in the intermediate frames with the proper transform.  You can even apply different types of tween curves by right clicking on the different key frames, so you can have your  layer speed up and slow down smoothly.  Just make sure the Key icon next to the Transform track is highlighted, like in the image below.

Make sure the key is highlighted to enable keyframed animation of a layer property, such as Transform.
Make sure the key is highlighted to enable keyframed animation of a layer property, such as Transform.

Finally, there are a couple nice extra things with about layer transforms.   For one, you can add the Motion Blur effect to layers with animated transforms.  Here’s what that looks like on the animation above:

Motion blur is a nice perk of layer transforms.
Motion blur is a nice perk of layer transforms.

The other cool thing about layer transforms is you can apply them to groups and even to the document itself (click on Document Properties).  This equates to animating your camera!  How else would we be able to watch the Trixelmobile as it makes its epic journey down the driveway?


Hexels 2.5 Animation Looping

The Hexels 2.5 update we recently released adds animated layer properties such as transforms and post-effects.  It also adds some new animation settings you can use to export smoother animations, including looping ones.  I find the looping options in particular to be somewhat difficult to explain without the benefit of images, so I’m giving it a shot here with some GIFs to help.

Let’s get started.  We’re going to make a bouncing ball.

A pretty plain red ball. Probably needs jazzing up.
A pretty plain red ball. Probably needs jazzing up.

Boring.  Let’s throw a Blob post-effect onto it.

Blob with all the settings maxed made the ball a bit more round.

That’s better.  Now let’s animate this ball as it bounces up and down. Switch to Timeline mode, add 6 frames, and expand the little arrow next to Layer 1.  Make sure the key next to the Transform channel is enabled (blue) and use the Transform tool (T) to move the ball downward in frame 4 and back to its original position in frame 7.


The ball now has three positions over seven frames, and the exported animation looks like this:

Our first attempt at a looping animation.
Our first attempt at a looping animation.

See the problem?  Even though the ball returns to its initial position, it hangs in the air for one frame, motionless.  We could fix this by removing the last frame (7) from the animation and manually positioning the ball in the new last frame (6), but we probably wouldn’t be able to get it quite right.  (Unless we added a keyframe to the Transform track in frame 6 BEFORE we delete frame 7, but there’s a better way.)  Go ahead and delete frame 7.  Now, click on the little gear icon at the lower right part of the Timeline to open Animation Settings.  Set Property Looping to “Loop To First”.

Loop-to-First mode.
Loop-to-First mode.

You’ll notice a new frame is now shown at the end of the timeline, but you can’t edit it.  That’s because it’s essentially an alias or reference to frame 1.  It’s there to show you that animated properties (such as layer transform) will use the values from frame 1 as a keyframe that lives just past the end of the animation.  If you export now, you’ll see that your animation now has just 6 frames and loops smoothly:

No duplicate frames this time.
No duplicate frames this time.

Let’s make the animation a little more believable now by right-clicking the Transform keyframes at frame 1 and 4 and setting their tweening to ease-in and ease-out, respectively.

The tween types menu.
The tween types menu.

And here’s the result:


Much better.   But what if we want our bouncing ball to move horizontally?  Let’s start by putting this layer into a group.  This lets us animate the horizontal motion with a separate tween type than vertical motion–gravity produces a parabolic trajectory, and our horizontal motion is linear.

Where do we put the Transform keyframe?  With Loop-to-First enabled, we can’t edit our last frame without changing our first frame.  Moving Group 1 halfway across the screen at frame 4 gives us a very awkward animation:

Use a group to animate horizontal movement with a different tween type.
Use a group to animate horizontal movement with a different tween type.
That didn’t work.

So how do we smoothly animate (and loop) the ball bouncing across the screen?  Let’s start by adding a new frame (7) and setting the Transform of Layer 1 to be identical to that in frame 1.  You can even hold alt and drag the Transform keyframe to copy it to frame 7.  For Group 1, modify the transform so the ball is hanging halfway off the right edge of the canvas.   Oh yeah and double click on Layer 1 to access its properties and set it to Tiled!  Otherwise it won’t wrap around properly.

Use a group to animate horizontal motion with a linear tween.

I’ll spare you the trouble of exporting it.  If you export the animation and play it back, you’ll see the same problem we had with our very first export–it hangs for a frame as it loops because the first and last frame are identical.  This is where the other type of property looping, “Approach Last”, is handy.  Go back to Animation Settings and change Property Looping to Approach Last.

Approach Last is the solution here

Export your animation now and you’ll get a nice loop with no weird hangs.  It’s exactly like what would have happened if you hadn’t chosen any property looping options….except the very last frame isn’t included in the GIF.

No extra frames here.

It’s still a bit choppy though.  What’s that, you say?  You wish it could be smoothed out somehow, using magic or physics or geology?  You’re in luck!  Go back to Animation Settings and click the button to the right of Authored FPS to lock it, then increase Frame Tweening.  From an editing standpoint, this won’t change anything, but when you export your animation, Hexels will insert tween frames in between each frame on your timeline.  Now our animation loop looks even nicer.


That concludes this post.  You can use these new animation settings to make all sorts of complex animations in Hexels, so have at it!  And then post them or send them to us so we can ooh and ahh at them.  Thanks for reading!