You Only Need ONE Bone for This UE5 Animation Rig [Tutorial]

In this tutorial we’re going to build a simple squash-and-stretch rig in Unreal Engine 5. The goal is straightforward: we’ll take a sphere, give it a single bone, create two controls, and use a little bit of math to make the sphere stretch when the controls move apart and squash when they move together.

SKELETAL MESH

First, you’ll need a sphere mesh.

In this example, the sphere has been created in Blender and imported into Unreal Engine

Make sure your transforms and origin are set properly in your DCC of choice before exporting your mesh

Once the sphere is in your Content Browser, right-click the mesh and choose Convert to Skeletal Mesh

When Unreal asks how you want to convert it, place the root bone at the origin and leave the naming prefix at its default value

Then click Convert

Unreal will create a new Skeletal Mesh from the sphere

Double-click the new Skeletal Mesh to open it

Inside, you’ll see the skeleton

There should be just one bone – the root bone which all we need

For this simple squash-and-stretch setup, there is no reason to build a traditional multi-bone character skeleton

The entire sphere will be driven by this one bone

Save the Skeletal Mesh before moving on


CONTROL RIG (ROOT)

Now that we have a skeletal mesh, let’s give it some controls

Go back to the Content Browser, right-click the Skeletal Mesh, and choose Create → Control Rig

Open the newly created Control Rig

The first thing we’re going to do is create a control for the root bone

In the Rig Hierarchy, right-click the root bone and choose New Element → New Control

This creates our first control

Select the control and look at its Shape Settings

This is where you can change the visual appearance of the controller, including its shape, color, and scale

For this example, choose a Circle Thick shape and increase its scale so you can easily see it

We simply want a controller that’s easy to see and manipulate

We’ll call this our root control


CONTROL RIG

Select the root control and duplicate it with Ctrl + D

We now have two controls

The second one will act as our stretch control

Select the duplicated control and go to its Offset Transform settings

Move it upward on the Z axis so it is on top of the ball

You should now have one control at the bottom and another control at the top

The distance between them is important because we’ll use that distance as the basis for our squash-and-stretch calculation

Before doing the math, let’s make the controls behave like a hierarchy

Drag the second control onto the first control in the Rig Hierarchy so that the second control becomes a child of the root control

NOTE: You may need to reset the Z Location on the second control (not sure if this is a bug or not)

Now try moving the root control

The upper control should follow it

This gives us a useful relationship

The root control determines where the rig is positioned, while the second control can move relative to it to determine how much the sphere stretches


DRIVER

With the controls created, we can finally start building the rig logic

The first thing we want to do is make the root bone follow the root control

Drag the Root bone onto the graph and choose Set Bone

We’ll use this node to drive the transformation of the skeletal root bone

Next, drag the Root Control onto the graph and select Get Bone

Expand the Transform menu, we only need the control’s Location and Rotation

Expand the Value menu on the Set Transform node

Connect the control’s Translation ouput from the Get Transform node to the Set Transform Translation

Connect the control’s Rotation ouput from the Get Transform node to the Set Transform Rotation


DISTANCE

Our squash-and-stretch effect is going to be based on one simple idea – the farther apart the controls are, the more the sphere stretches

The closer they are, the more it squashes

To calculate that, we need to know the distance between the two controls

Drag the second Root Control onto the graph and choose Get Control

We now have the transforms of both controls available

Next, right-click and add a Distance Between Vector node

Take the Translation of the two controls and plug them into the node

When the controls are at their original positions, they are 60 Unreal Units apart (although your distance may be different)

Therefore, the distance calculation initially gives us 60

But 60 isn’t particularly useful as a scale value

We want a ratio where the original configuration equals 1.0

So add a Divide node and divide the calculated distance by 60 or your correct distance

That’s our stretch


STRETCH

Expand the Scale 3D menu on the Set Transform node

Connect the result of our distance calculation to the Z scale

Connect the Forwards Solve node to the Execute input of the Set Transform

Move the upper control upward and the distance increases (the Z scale increases)

The sphere stretches vertically

Move the control downward and the distance decreases (the Z scale decreases)

The sphere becomes shorter

But there’s a problem

If we only change Z, the sphere gets thinner as it stretches, rather than maintaining the characteristic squash-and-stretch shape

So we need to compensate for the change in Z by adjusting X and Y


VOLUME

This is where a little bit of math makes the rig much more convincing

Add a Square Root (Sqrt) and connect the Divide node

Add a second Divide and connect the Square Root to the B-input of the second Divide node

Change the A-value to 1

When we connect this second Divide node to the X and Y Scale, we stretch the sphere while maintaining its volume


CONCLUSION With just one bone, two controls, and a few simple calculations, you can create an effective squash-and-stretch rig in Unreal Engine 5. This simple setup provides a strong foundation for more advanced deformation systems and brings expressive, dynamic motion to your animations.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.