# :icon-tabler-bounce-right: Bouncing Icon

<video width="800px" autoplay loop muted playsinline>
   <source src="/static/examples/bouncing_icon.mp4"/>
</video>
<p/>

In this tutorial, we'll use *Curves* to animate an icon bouncing around the
screen. We'll keyframe the following motion paths:

1. The icon will pop in using an overshoot curve.
2. The icon will fall to the ground using a bounce curve.
3. The icon will spin and fly to the upper right of the screen using a smooth curve.
4. The icon will swipe out of the scene using a backed-in accelerate curve.

Curves can apply all of these dynamic animations to a single clip using just
one effect- no cuts, no titles, no adjustment clips!

![](/static/examples/bounce/0-overview.png)

In this tutorial, you'll learn:

- How to animate position, rotation, and scale with Curves.
- How to configure the animation curve to get different effects.
- How to change the animation curve without cutting the clip and reapplying Curves.

## Setup

>>> Create a new project

Create a new Final Cut project and add an image to the timeline. You can
download the exact image I'm using here if you want to follow along:

[!button text="Download Curves Icon"](/static/logo.png)

![](/static/examples/bounce/1-start.png)

>>> Make a Compound Clip

Right click on your image and turn it into a **compound clip**. We need to do
this because the image (1024x1024) is smaller than the project dimensions
(1920x1080) (see [Getting Started](/setup/getting_started) for more about
compound clips).

![Right click -> New Compound Clip](/static/new-compound-clip.png)

>>> Apply the Curves effect

You can find the Curves effect in the effects browser under the "Curves" group.
If you don't see it, make sure you installed the Curves effect from the app
(see [Installation](/setup/installation)).

Add the Curves effect to your image clip:

![Curves in the effects browser](/static/effects-browser.png)

You should see a control point (<img width="50px"
src="/static/positioning/osc.png"/>) appear over the image:

![](/static/examples/bounce/1-applied.png)

If you don't see the control point, click on the Curves effect in the inspector
and it should appear.

>>>

## Pop In

Now that we're set up, we can add our first keyframe!

>>> Initialize scale to 0%

Move the playhead to the start of the clip, click the "Add keyframe" button to
the right of the scale slider (<img
src="/static/keyframes/keyframe_plus.png"/>), and set the scale in the Curves
effect to 0%.

<video width="800px" autoplay loop muted playsinline>
   <source src="/static/examples/bounce/1-init_scale.mp4"/>
</video>
<p/>

Your scale settings should look like this:

![](/static/examples/bounce/2-init_scale.png)

Make sure to adjust the scale slider inside the Curves effect, and not the
built-in "Transform". See [Moving Objects](/guide/positioning) for more info on
adjusting the scale, and [Adding Keyframes](/guide/keyframes) for help with
keyframes.

>>> Set the pop in keyframe

Now, move the playhead forward a bit, and slide the scale up to 35%. A new
keyframe will be automatically created since at least one scale keyframe
already exists.

<video width="800px" autoplay loop muted playsinline>
   <source src="/static/examples/bounce/1-second_scale.mp4"/>
</video>
<p/>

If you play back the project, you'll see the clip smoothly grow:

<video width="800px" autoplay loop muted playsinline>
   <source src="/static/examples/bounce/2-first_keyframe.mp4"/>
</video>
<p/>

While the default curve looks great, what if the animation had more
"springiness"?

>>> Adjust the animation curve

In the Curve Editor at the top of the Curves plugin, switch the mode from
Smooth to Overshoot, and increase the oscillation frequency (the first slider):

<img width="300px" src="/static/examples/bounce/2-overshoot.png"/>
<p/>

Now, instead of smoothly growing, we overshoot and oscillate, giving a dynamic
pop effect:

<video width="800px" autoplay loop muted playsinline>
   <source src="/static/examples/bounce/2-overshoot_key.mp4"/>
</video>
<p/>

You've successfully created your first animation with Curves!

Notice how by simply switching the animation mode and adjusting one slider the
feeling of the animation completely changed. Feel free to play around with the
various modes and sliders to get a feel for how they work.

>>>

## Fall Down

The second motion we want is to make the logo fall to the bottom of the scene
and bounce when it hits the ground.

>>> Open the Video Animation Editor

Since we're going to be working with lots of keyframes, it will be helpful to
have the Final Cut Video Animation Editor open. Select your image clip in the
timeline, then press Control + V to open it.

![Final Cut's Video Animation Editor](/static/examples/bounce/3-viewer.png)

Each keyframe is represented by a diamond (:icon-diamond:). We can see two
diamonds representing the two scale keyframes we've added.

>>> Moving between keyframes

You can manually use the timeline scrubber to move between keyframes, but it
can be tricky to line up the playhead exactly over a given keyframe. Instead,
it's much easier to use Final Cut's keyframe navigation controls.

Use <img src="/static/keyframes/prev.png"/> or <img
src="/static/keyframes/next.png"/> to move exactly to the previous or next
keyframe. These controls appear next to any parameter you've keyframed with
Curves in the inspector.

![](/static/examples/bounce/3-nav.png)

See [Adding Keyframes](/guide/keyframes) for more help with keyframes.

>>> Move to the second keyframe

Use the keyframe navigation controls to move the timeline directly over the
second keyframe.

You'll know if you are over a keyframe because the keyframe light will turn
orange:

![](/static/examples/bounce/3-over_exact.png)

>>> Keyframe the position to fall down

Add a position keyframe, move forward, and drag the clip down to the bottom of
the screen to automatically create a second position keyframe:

<video width="800px" autoplay loop muted playsinline>
   <source src="/static/examples/bounce/3-drop.mp4"/>
</video>
<p/>

You'll see a red line indicating the path of motion. If you play back the
current project, the image pops in, then pops to the bottom:

<video width="800px" autoplay loop muted playsinline>
   <source src="/static/examples/bounce/3-sofar.mp4"/>
</video>
<p/>

Right now, since the path is following the Overshoot curve, the icon overshoots
off screen. Instead, we want it to hit the ground and bounce up. To do that, we
need to change the animation curve to Bounce.

>>> Change the animation curve over time

Curves lets you change which animation curve is used at a given point in time
without having to cut the clip and reapply Curves. Animation curve changes are
accomplished with "Curve Keyframes".

The "Add Keyframe" button in the top left of the graph editor adds a curve
keyframe:

![|300](/static/editor/curvekeyframe.png)

Move to the first keyframe and add a curve keyframe. Then, move to the middle
keyframe and switch the animation mode from Overshoot to Bounce. This
automatically adds a curve keyframe that switches the curve at that point.

<video width="800px" autoplay loop muted playsinline>
   <source src="/static/examples/bounce/3-edit_curve.mp4"/>
</video>
<p/>

Now, the second path will use the Bounce curve instead of Overshoot.

Learn more about curve keyframes at [Animation
Curves](/guide/animation_curves).

>>>

## Fly Up

Now that we know how to add keyframes and change the animation curve, adding
more animations is simple!

>>> Initialize the rotation angle

We want to make the icon spin and fly up to the top of the screen. Move to the
last keyframe we created (the end of the bounce), add a rotation Z keyframe,
and switch the curve to "smooth".

<video width="800px" autoplay loop muted playsinline>
   <source src="/static/examples/bounce/4-addrotz.mp4"/>
</video>

>>> Add the fly up keyframe

Move forward in time, drag the icon to the top right of the screen, and set the
Z rotation to -360 degrees. This will cause the object to flip and fly up to
the top of the screen.

<video width="800px" autoplay loop muted playsinline>
   <source src="/static/examples/bounce/4-flyup.mp4"/>
</video>

>>>

## Swipe Out

We're almost done! The last effect we want is the object to accelerate off the
screen to the left.

>>> Set the curve to Accelerate and adjust backing

Move to the last keyframe so far and change the curve shape to Accelerate.

Adjust the backing slider (bottom one) to make the animation slide to the right
a little bit before accelerating out. This adds a bit of a cartoonish bounce to
the animation.

![|300](/static/examples/bounce/5-accelback.png)

Read more about these sliders on [Animation Curves](/guide/animation_curves).

>>> Keyframe the icon flying away

Move forward in time, then drag the icon off the frame. Curves will
automatically keep the new keyframe aligned to your previous keyframe by
providing a yellow guideline while you are dragging the clip.

<video width="800px" autoplay loop muted playsinline>
   <source src="/static/examples/bounce/5-swipeout.mp4"/>
</video>

>>>

## Conclusion

In this tutorial, we learned how to use Curves to quickly create a variety of
general purpose animation effects. In the next tutorials, we'll look at using
Curves to achieve more specific effects.
