Is there a simpler way to keyframe several separate adjustments?
For example, at frame 1000 I want to begin reducing the opacity of a layer from 100 to 0 over 30 frames while at the same time changing values in two different effects on other layers. I realize I can do this manually for each item, but I need to use this same set of adjustments several more times elsewhere in the video. It would be wonderful to be able to simply copy and paste a "group" of keyframed adjustments -- if that makes any sense.
It's possible. Open the keyframe editor (CMD+8). Go to the parameter for the layer you want to adjust (ie: Layer 1's opacity) and click the animation menu. Choose: show in keyframe editor. Do this for the parameters of the other layers you want to adjust. Make your keyframe adjustments. Select all these keyframes and copy (CMD+C) and then move to the next place in your project that you want to apply these keyframes and paste (CMD+V). Hope this makes sense.
Thank you for replying, Andy. I had to be away from Motion for a few days but am back now, and have played with your suggestion. It sounds like what you're suggesting is to create an ad hoc "group" on the fly by making all the desired keyframed elements visible in the keyframe editor, then copying and pasting them elsewhere in the keyframe editor timeline, right?
I had hoped there'd be a way to make this more easily repeatable. For example, once this group of keyframes are all highlighted I believe you can drag them to the Favorites (Library) and make them a single item, which definitely consolidates them. But I have not figured out how to use the resulting "favorite" item to repeat the set of keyframes like I'd hoped to.
I think what I'm not understanding is: what is copied when you select/copy/paste a group of keyframes? I had assumed that when repeating a group of keyframes using your method I would be pasting the identity of the object or effect, the value for any parameters that the keyframes pertain to, as well as the parameter itself. The only thing changing is the time position for that keyframe.
For example, let's say that at frame 10 the opacity for a specific layer called "Fred" is 100%. Set a keyframe. 30 frames later you reduce opacity to 0% and set a keyframe. Now select the two keyframes, Copy, and then move the playhead to frame 1000 in the timeline. I assumed that when you select Edit | Paste, the layer named "Fred" would have its opacity set to 100% at frame 1000, and at frame 1030 the "Fred" layer's opacity would drop to 0%.
And to make this more like what I originally asked about, let's throw in some additional keyframed elements within this 30 frame period, that I want to repeat:
1. "Fred" has a keyframed effect,
2. another layer that's behind "Fred" has a keyframed Effect
3. a third layer has a Star Generator that changes size using keyframes
... so you want all of these keyframed elements to be repeated verbatim later in the timeline using your suggested technique.
I'm not getting this to work at all for groups of keyframes like what you replied about. I can achieve this with single items in the timeline. I'm probably just missing some little detail so I hope you can lead me out of this dead end. How about doing one of your great tutorials that I found at your site!?
I only skimmed through reading this thread, but here's a nice macbreak studio video about copy/pasting keyframes in motion. Be sure to watch through to the end to see all three methods.
Thank you David. An interesting video. It didn't address my particular issue but I appreciated your attempt to help, and the video is definitely worth noting.
It would make a good tutorial, but I'll try to help you out specifically here since it takes awhile to make a full tutorial and you'd probably like this resolved.
The method I described (which is different from the video David linked to), involves copying animation keyframes to properties later in a project which is what it sounds like you want.
[Tim Wilde] "I assumed that when you select Edit | Paste, the layer named "Fred" would have its opacity set to 100% at frame 1000, and at frame 1030 the "Fred" layer's opacity would drop to 0%."
This is exactly how it works. The only caveat is that from frame 40 to frame 1000, the opacity would slowly ramp back up to 100. If that's not what you want, then you need to set a placeholder keyframe on frame 999.
Here's an example that hopefully will help you. Here I have 3 shapes, each with a different animation. If you open the keyframe editor (cmd+8) and select all 3 layers in the layers pane, you should see all the animated keyframes for each layer like below.
If it doesn't show, make sure that "animated" is chosen from the menu at the top left of the keyframe editor.
Lasso all the keyframes for all the layers and hit CMD+C to copy their values.
Move forward in the project. For the sake of this project, I want the same animation to happen at the 4 sec. mark. So, I'm going to place the playhead at 3:29 (one frame before 4:00). Since the keyframes are all still selected (and so also the parameters themselves), click any of the selected parameters keyframe buttons to set a placeholder keyframe on all the selected parameters at the same time.
Move forward one frame to 4:00, and hit CMD+V to paste the copied keyframes.
That's all there is to it. I copied the animations of 3 separate layers and pasted them again later in the project timeline. If this is an animation that is going to be repeated often, you may prefer a secondary method which is used to create looping animations. I'll explain that one if you need it.
Hope this helps.
Thank you!! I'd send you a rasher of bacon right now if I could. I hope I can reciprocate someday.
Your explanation is crystal clear. Exceptional!
Right you are about the need for a placeholder keyframe. I discovered that the hard way previously but your tip about how to create the placeholder keyframe for all the selected layers at once is tres cool.
Would the "Save an Animation Curve" feature allow me to save the selected layers and keyframes?
Would saving this group as a Curve Set help speed up the process of selecting the layers and keyframes?
[Tim Wilde] "Would the "Save an Animation Curve" feature allow me to save the selected layers and keyframes? "
Yes and No. You can save the group of parameters as a curve set and name it, but the only thing that's being saved is the configuration of parameters. If you say, deleted the keyframes for a layer, you could not get them back by invoking the curve set.
[Tim Wilde] "Would saving this group as a Curve Set help speed up the process of selecting the layers and keyframes?"
Yes. This is especially true if you have other layers animated (that you don't want to include in a copy/paste function) or you want to animate parameters that don't usually show up in the keyframe editor. The great thing about curve sets is that you don't have to select the layers you want to manipulate first. Just open the keyframe editor and select your curve set from the drop down. All the parameters that you keyframed will be gathered there, and you can just copy and paste at will.
I must be a moron. See the attached very simple example Motion 5 project. Two rectangles move independently. Please use your technique to copy their move -- as a group -- to frame 100. In my original much more complex project the keyframes all paste but their relative timing is lost. So I created this ultra simple test and the same thing happens. Please tell me where I'm screwing up. Thanks.
No problem Tim. I was thinking that the third example in the video, dragging parameters right from the inspector would be an easy way to do what you want. When Mark accidentally dropped a parameter on a clip, with the play head at a point some number of frames into the project, and the animation pasted right at the play head, it seemed to do just what you want. Not sure if you can drag a parameter to the same clip it came from, to paste the effect later in the clip though.
In the example screenshot you posted, I think the issue is that the purple parameter does not have a keyframe at the start of the project. So in your case, motion is lining up the first keyframes of each parameter when you paste, which is what you want it to do, your just missing a keyframe. Try adding a keyframe at the same frame as the first keyframe as the other parameter
You're not a moron, Tim. As I was writing a tutorial to explain advanced keyframing in Motion (thanks for the idea), I had to explain this exact situation you're going through.
Because your keyframes are on separate layers, Motion doesn't respect their absolute positions respective of each other. Instead, it takes the first keyframe of layer 1 and places it at the same point as the first keyframe of layer 2. If you look at the first keyframes you copied, there is an offset of frames between one layer and the other.
One way to fix that problem is to set a keyframe for both layers at the same point in time so their relative positions are preserved. Think of it like a placeholder at the beginning of your animation.
You can also deselect the layer with the correct timing so you only see the keyframes for the incorrect timing, select them and slide them over (holding shift to maintain their values).
Another possibility that you might like is to use the After Last Keyframe function which can endlessly repeat keyframes of layers after only building the animation once. I'm not sure if you need to copy this animation more than once but if you do, perhaps that's the way to go.
Thank you again for your help. Spot on.
Some observations for your tutorial:
1. The layers related to the keyframes you want to repeat must be selected in the Layers panel and visible in the Animated view of keyframe editor before selecting and copying the keyframes as a group.
2. As soon as you've copied the keyframes to the clipboard move the playhead to the destination where they are to be repeated and Paste.
3. It helps to think of the keyframes to be copied as a "group", with a start point having a keyframe (yellow diamond with red center) for every layer and an end point also having a keyframe for every layer.
4. When "designing" a group to be copied there's usually additional keyframing needed, because you must add keyframes to lock in the state of every layer's adjustments before and after the group of effects. This is hard to explain but it'll be obvious when you get into it.
5. Saving this group as a Curve Set, which I've tried several times for different groups of effects, serves only as a reference for which layers are involved, because you still must manually select all the relevant layers before copying the keyframe group to the clipboard.
6. While having a technique for repeating groups of effects is better than recreating them "manually", this still feels like a kluge. As a Motion noob I may be showing my ignorance in the following suggestion (because it might already exist!), but here goes: it would be better if, after creating a group of effects like this, you could save it. THEN, when you want to reuse it later in the timeline you could simply open the defined group and all relevant layers would be selected, and the keyframes would be placed on the clipboard, ready for pasting at the playhead. Even better, the length of the group in frames would be visible in the group name so if you want the group effect to end at a specific timecode the playhead's placement is easily calculated.
I suspect you're well ahead of me but I wanted to reciprocate in whatever way I can.
Thank you again and good luck with the tutorial.