8
$\begingroup$

enter image description here

Let's say That I need to repeat current keyframes 20 times (it is not a "static" loop, as You can see: there is an offset! (NLA won't work in that case)) and in 20'th copy of the keyframes I would like to change something. So I need to apply the modifier.

It is important becouse I want to export the animation to external programs, so I can not leave this with active modifier: I need real keyframes.

Second thing: I know that there is a "Bake Action" option, but I don't want to generate different keyframes that the only ones that I really need.

So is there any way to apply the "Cycles" modifier in Graph Editor ??? Or do I really need to copy and place keyframes by myself?

$\endgroup$
4
$\begingroup$

What you're looking for is keyframe baking, which does exist. There are two baking operators on animation curves: bake curve and bake action. What you want to use is bake action. They are both terrible operations, in my opinion, but they get the basic job done... I will explain why later.

Select the object or bone in question and take note of the distance between your cycled keyframes (in my example I used 22). Make sure your curves are editable and do a spacebar search for "bake action." This will pop up an option window.

options

Set your start and end frames accordingly, then change the frame step to the distance between your keyframes (22 here). Click OK and your action will be baked. If you leave "Overwrite current action" unchecked, it will automatically add and activate a new action for the object/bone. This is basically what you're asking for, but here are some snafus:

  • Tangents are destroyed

This is my biggest pet peeve of this operation. So you spent some time scaling your tangents to get the right kind of curve and cycled it. Great, now you want to edit the positions of some of those keys. Well, too bad, because baking destroys tangents. It will automatically set tangent types to automatic. Again, this totally destroys your work and takes control away from the artist. The only case where this is OK is when all your tangents are completely flat and automatically weighted. Then all you have to do is select all, change pivots to individual centers and scale to 0 on Y. It's a terrible solution.

  • All channels are baked simultaneously

This would be fine if you're doing pose-to-pose keying, where all keys are aligned to the same frames, but totally useless if you have offset curves.

  • Automatically cleans keys

Automatically cleaning keys is bad because you want keys on each bake step, so this is not expected or appropriate behavior.

  • "Bake curve" locks curve from all editing

Obviously locking the curve is out of the question.

You should try both baking operations to see for yourself what they do. They're pretty nasty if you ask me. Unfortunately, these are the only two options I could find.

$\endgroup$
  • $\begingroup$ Thanks for response. As far as I could understand your post, your solution will work if you have animation based on keyframes that are placed beetwen eachother in the same amount of keyframes (in your case it was 22). But my animation is based on few keyframes, and there are different amount of spaces between those keyframes. Please write back: is your solution work in my case? $\endgroup$ – evilferber Nov 4 '15 at 0:24
  • $\begingroup$ Well... I kind of found out work around to solve that problem but it is so ridiculous! It is only going to work on single animation channels (so you need to redo this steps). First you need to find out what is the difference (in X and Y positions of keyframes on the graph) beetwen first and last keyframe of the cycle. Then You copy them, but it is not possible to speciffic precisly Y coordinate, so you can leave new copy of keyframes whatever and than you hit F6 button to specify precisly the offset. Then you hit SHIFT + R button to redo copying with precise offset. Any better solution? :(( $\endgroup$ – evilferber Nov 4 '15 at 0:34
  • $\begingroup$ I wish there was. I can't think of anything off the top of my head. I can play with baking more, but I won't hold my breath. $\endgroup$ – Italic_ Nov 4 '15 at 19:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.