So as you probably know, in most production, whenever we make certain in-game motions, you usually start with a ''starting motion'' that starts with the ''idle pose'' for example, then after that starting motion, you directly follow it with a loop
into which both starting frame and ending frame are the same pose, and then after the loop, we finish the motion with an ending motion.
For exmaple, a character looking at his watch or a map:
Frame 1: idle pose
Frame 1 to 24: raises arm to check his watch pose
Frame 24 to 56:Is looking at his watch(that would be the loop)
(so frame 24 and 56 are the same pose)
frame 56 to 74: goes back to idle pose
Pretty common and asic stuff right however....
My biggest problem when making these is the looping part...
Sure making the first and last pose of the loop is easy but there's still some jankyness in the animation whenever you look at it. And that's essentially because the tangents of both keys aren't the same. If you do try making the tangnets the same, it doesn't smooth in and out correctly with keys that are before and after....
Here's a pic hoping you understand what I mean...
So Am I doing sometinhg wrong? Is there a better workflow for animation cycles? A script?
Thank you for your help!
Replies
So when i have my start and end pose the same i turn on curve infinity and have it cycle loop which looks like you have on at-least. (cycle may not be possible if you've inserted a loop into the middle of an animation obviously) but when i tweak the end keys, i select both and then select the same tangent on each key and move them. That way each tangent is being moved to line up during the transition.
Some people have different views on the next part but your 24 and 56 keys are playing twice so you hold that pose for a frame as it loops back creating a hold and a feeling of a pop - have you tried maybe doing 24 to 55? that way it plays the pose frame once.
I would also go through and do this on every key i have. (moving the end and start keys' tangents together at once so in the infinity curve it looks smooth - but as yours in the middle of an animation that's harder to judge)
quick edit - dont just have the tangents of the keys on auto, they might be 'flat' and ease in and out which might not work, hence moving the individual tangents together gives it a seamless curve rather than it slowing in and out.
Then bake down the anim and have the before section blend into the looping part as best as you can. Same for the after section.
Not sure if that's a solution.
you could copy/paste the first frame to the last in the loop, that copies the tangents as well. then adjust the breakdown in the transition from look loop to idle loop.
Tim Borrelli has a script that smooths out loop frame tangents
you could blend the transition in game to smooth it out. probably easiest, if not the best looking, option in a case like this.
In the end I think for the case you're describing, you have to redesign the overall action so you don't have weird overshoots in the middle loop points, you have to compromise a little with the in/out transitions by making them more linear.
Good advice my friend but unfortunately, I know all of this already.
See, this is exactly what I do when my whole animation is a loop. Everybody knows the old ''show infinity''+ ''curve/post-infinity/cycle''. And yes, whenever doing this I manually adjust the tangent of start and ending frames..however for a loop insert between 2 motions in the timeline, this will not work...:(
That's definitely a solution to my problem..although, I expected something more simple and easy..I guess, I'm have to do it this way...
Hope it helps.
Edit: I just tested, and this is very hard to do if you didn't make a different layer for each animation from the start unfortunately. Still might work if you export your layers.
If you use quicktime pro it's very easy to extend loops seamlessly on there as well with the crl c a commands.
None of this would work if you were animating the camera as well, the best way to do that would be in anim layers, well probably the trax editor but I haven't used this feature that much to comment on it.
Another thing to consider is what are the condition for the player to exit this loop? If it's based off a system where it plays the loop X amount of times, then this work will be worth it. If this needs to feel responsive and the player can break out of this loop at any time, forcing the exit anim to play, then there's little benefit in making the transition from idle to exit super smooth. In this case you'd just want to make sure your in-engine settings use enough interp to cover the gap between wherever the hand is in the loop, and the first frame of the exit.