Smooth motion issues... multiple questions.
Posted: Sat Dec 11, 2010 9:55 pm
Sorry if it's on here. I just started working with it, and it's my first time doing any animation. I've done a bit of looking for the answer, both in the manual and on here, but I'm not sure I know the terminology well enough to find it.
I am attempting to get smooth cyclical motion. Right now, I'm just using the cycle feature to jump back to a start frame. I haven't rendered, but if the motion is anything at all like what I'm seeing in preview, there's an issue I need to resolve:
I'll start with the simpler bit first. The second one may be a bit more involved.
In the simplest case, I have an object rotating. If I set it to do one full loop and then repeat the cycle, a few questions come up.
The first is where exactly the keyframes should be. If you are doing 30fps, and are just trying to keep everything in easy multiples, do you make your keyframe frame 30? Frame 31? I'm wondering because unless I'm confused, it starts on frame 1 right? (not frame zero)
If so, then I would think that I should go with frame 31. Assuming that's right so far, if my first keyframe was frame zero, and it's looping from frame 1 to frame 30, does it treat frame 1 just exactly like frame zero, or is it already interpolating motion at that point?
If so, should I be making frame 1 my first keyframe? Stick with frame zero, and use 30, 60, 90, etc... and just know that my first actual frame (frame 1, 31, etc... is the start of motion rather than the starting point?
Now that's the easy part, and hopefully there's an easy best answer.
The real headscratcher is in the way it decides how fast to move. I was expecting linear motion... in other words, if I take 240 frames to have something rotate around 360 degrees, and I loop 240 frames, I would expect that it would just appear to be spinning with no hiccup at the start point.
Now, I haven't rendered final video, but I've done multiple tests, and it's very clear in the preview screen at least that this is not what's happening. It starts slowly, picks up some speed towards the middle, and slows down finally coming to a very brief stop at the loop point, then repeats.
I've done some much more detailed testing and found that it appears to be looking AHEAD of it's next keyframe to at least the target beyond that... and most likely the entire arc. From what I can tell, it appears to be doing internal calculus to determine the best fitted curve on a timeline in order to move as smoothly as possible through the key points.
If so (and I'm pretty sure it is), it's an amazing feature. Unfortunately, it's exactly what I DON'T want for the effects I'm trying. I want smooth motion... LINEAR motion that loops without being able to detect the loop points.
So, this brings up a few questions:
Is there a global ability to switch this feature off so simple repetitive loops just work the way you might guess?
Is there a better way of looping that allows it to look ahead and circumvents the issue?
Do I need to just keep plotting keyframes all the way through rather than cycling so that it will see them at regular intervals and behave predictably?
Believe it or not, that's the easier bit?
I'm actually attempting to do something much harder. I came up with an animated tessellation that REPEATS, but does not CYCLE. In other words, I can't figure out a way to make it cycle in AS. As the pieces morph, they eventually end up with what LOOKS on the screen to be an absolutely identical picture to the first frame. Unfortunately for me and my time, it's NOT actually the identical picture since it's all shifted. The shape that started over here has morphed into the shape that's now over there. The one that was over there is now off the screen on the bottom, and the piece that's identical to the starting piece has come from something that started offscreen.
If it helps, picture one of MC Escher's drawings with all the interlocking animals... now imagine they move, and end up forming the same picture, but they've all marched forward.
So... the issue is that I can't figure out how to make AS understand this since it's tracking points, and those points have moved. If I just loop back to the beginning, it looks PAST the last keyframe to see how it should behave toward the end. So... if there is nothing past it, it slows and comes to a brief stop... then the first frame starts over, and it goes on...
I'm trying to make it SMOOTH, so I want to get rid of the hiccup.
Let's say it's a 120 frame cycle with keyframes every 30 frames. I've tried programming the next couple keyframes beyond 120 so that it keeps going fullspeed up until the last frame, but even that doesn't seem to work entirely.
Now, I've done multiple tests with having keyframes on frames 1 and 121, 0 and 240, with and without extra keyframes (on 151 and 181 even though it's looping back at 120)
No matter what I do, though, it seems to be slowing down a bit for a brief pause at the cycle start.
Hopefully I've made the issue clear enough. I know it's a bit much to communicate.
But the question is simple:
How do I get it to cycle smoothly so it doesn't speed up, slow down, or pause at all at the cycle points?
thank you
I am attempting to get smooth cyclical motion. Right now, I'm just using the cycle feature to jump back to a start frame. I haven't rendered, but if the motion is anything at all like what I'm seeing in preview, there's an issue I need to resolve:
I'll start with the simpler bit first. The second one may be a bit more involved.
In the simplest case, I have an object rotating. If I set it to do one full loop and then repeat the cycle, a few questions come up.
The first is where exactly the keyframes should be. If you are doing 30fps, and are just trying to keep everything in easy multiples, do you make your keyframe frame 30? Frame 31? I'm wondering because unless I'm confused, it starts on frame 1 right? (not frame zero)
If so, then I would think that I should go with frame 31. Assuming that's right so far, if my first keyframe was frame zero, and it's looping from frame 1 to frame 30, does it treat frame 1 just exactly like frame zero, or is it already interpolating motion at that point?
If so, should I be making frame 1 my first keyframe? Stick with frame zero, and use 30, 60, 90, etc... and just know that my first actual frame (frame 1, 31, etc... is the start of motion rather than the starting point?
Now that's the easy part, and hopefully there's an easy best answer.
The real headscratcher is in the way it decides how fast to move. I was expecting linear motion... in other words, if I take 240 frames to have something rotate around 360 degrees, and I loop 240 frames, I would expect that it would just appear to be spinning with no hiccup at the start point.
Now, I haven't rendered final video, but I've done multiple tests, and it's very clear in the preview screen at least that this is not what's happening. It starts slowly, picks up some speed towards the middle, and slows down finally coming to a very brief stop at the loop point, then repeats.
I've done some much more detailed testing and found that it appears to be looking AHEAD of it's next keyframe to at least the target beyond that... and most likely the entire arc. From what I can tell, it appears to be doing internal calculus to determine the best fitted curve on a timeline in order to move as smoothly as possible through the key points.
If so (and I'm pretty sure it is), it's an amazing feature. Unfortunately, it's exactly what I DON'T want for the effects I'm trying. I want smooth motion... LINEAR motion that loops without being able to detect the loop points.
So, this brings up a few questions:
Is there a global ability to switch this feature off so simple repetitive loops just work the way you might guess?
Is there a better way of looping that allows it to look ahead and circumvents the issue?
Do I need to just keep plotting keyframes all the way through rather than cycling so that it will see them at regular intervals and behave predictably?
Believe it or not, that's the easier bit?
I'm actually attempting to do something much harder. I came up with an animated tessellation that REPEATS, but does not CYCLE. In other words, I can't figure out a way to make it cycle in AS. As the pieces morph, they eventually end up with what LOOKS on the screen to be an absolutely identical picture to the first frame. Unfortunately for me and my time, it's NOT actually the identical picture since it's all shifted. The shape that started over here has morphed into the shape that's now over there. The one that was over there is now off the screen on the bottom, and the piece that's identical to the starting piece has come from something that started offscreen.
If it helps, picture one of MC Escher's drawings with all the interlocking animals... now imagine they move, and end up forming the same picture, but they've all marched forward.
So... the issue is that I can't figure out how to make AS understand this since it's tracking points, and those points have moved. If I just loop back to the beginning, it looks PAST the last keyframe to see how it should behave toward the end. So... if there is nothing past it, it slows and comes to a brief stop... then the first frame starts over, and it goes on...
I'm trying to make it SMOOTH, so I want to get rid of the hiccup.
Let's say it's a 120 frame cycle with keyframes every 30 frames. I've tried programming the next couple keyframes beyond 120 so that it keeps going fullspeed up until the last frame, but even that doesn't seem to work entirely.
Now, I've done multiple tests with having keyframes on frames 1 and 121, 0 and 240, with and without extra keyframes (on 151 and 181 even though it's looping back at 120)
No matter what I do, though, it seems to be slowing down a bit for a brief pause at the cycle start.
Hopefully I've made the issue clear enough. I know it's a bit much to communicate.
But the question is simple:
How do I get it to cycle smoothly so it doesn't speed up, slow down, or pause at all at the cycle points?
thank you