Smooth motion issues... multiple questions.
Moderators: Víctor Paredes, Belgarath, slowtiger
-
- Posts: 19
- Joined: Sat Dec 11, 2010 9:23 pm
Smooth motion issues... multiple questions.
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
-
- Posts: 19
- Joined: Sat Dec 11, 2010 9:23 pm
Odd... I've been wrestling with this for two days, and I seem to have found the answers just minutes after posting this... to one part anyway.
I found another resource besides the manual that does a much better job of explaining motion graphs, and I see now how to get the motion linear between points.
Still wondering about the proper positioning of keyframes... frame zero vs frame 1 issue.
Man, lemme just say, though that if you're doing animated backgrounds with geometrics for optical illusions and such, the motion control aspect here is very exciting.
and still fascinated with this idea of making tessellations come to life. Anyone done this? I will have to dig in and do test to see if I can set linear motion to allow the jump from frame 240 back to frame 1 fool the viewer into believing it's a cycle even though it's technically not.
I found another resource besides the manual that does a much better job of explaining motion graphs, and I see now how to get the motion linear between points.
Still wondering about the proper positioning of keyframes... frame zero vs frame 1 issue.
Man, lemme just say, though that if you're doing animated backgrounds with geometrics for optical illusions and such, the motion control aspect here is very exciting.
and still fascinated with this idea of making tessellations come to life. Anyone done this? I will have to dig in and do test to see if I can set linear motion to allow the jump from frame 240 back to frame 1 fool the viewer into believing it's a cycle even though it's technically not.
Goodness knows, I'm fairly clueless with the application, but I can suggest a few things for you to check.
1. Under Edit>Preferences, have you tried changing the Interpolation from "Smooth" (the default) to "Linear?"
I'm not sure, but it seems that "Smooth" is using a form of "Ease In/Out" for animations. "Linear" may give you the results you seek.
As for the second issue, when you move your segments, are you sure they are ending perfectly aligned with the beginning? Are you using the grid to ensure this?
Again, I may be totally blowing this out my hat, but Selgin and the others may be better able to help you if you check these two things.
1. Under Edit>Preferences, have you tried changing the Interpolation from "Smooth" (the default) to "Linear?"
I'm not sure, but it seems that "Smooth" is using a form of "Ease In/Out" for animations. "Linear" may give you the results you seek.
As for the second issue, when you move your segments, are you sure they are ending perfectly aligned with the beginning? Are you using the grid to ensure this?
Again, I may be totally blowing this out my hat, but Selgin and the others may be better able to help you if you check these two things.
~M
Change is inevitable, growth is optional.
Life is short, enjoy the adventure!
Change is inevitable, growth is optional.
Life is short, enjoy the adventure!
-
- Posts: 19
- Joined: Sat Dec 11, 2010 9:23 pm
Yeah, thx.
Yes, it was changing to linear that gave me what I wanted. On the simpler animations, it's all that was needed.
For the tessellations, it's proven more difficult. I wish I could use the grid, but the detail's too fine... thus the 10 hours of replicating exact coordinates of the first keyframe.
I answered one of my other questions as well... short version is if you have keyframe at zero and looping from frame 1 to frame 30, then keyframe identical to frame zero should be at frame 31... just in case anyone sees this and is wondering the same thing. Multiple tests have confirmed that.
Yes, it was changing to linear that gave me what I wanted. On the simpler animations, it's all that was needed.
For the tessellations, it's proven more difficult. I wish I could use the grid, but the detail's too fine... thus the 10 hours of replicating exact coordinates of the first keyframe.
I answered one of my other questions as well... short version is if you have keyframe at zero and looping from frame 1 to frame 30, then keyframe identical to frame zero should be at frame 31... just in case anyone sees this and is wondering the same thing. Multiple tests have confirmed that.
I suggest you to start your animation at frame 1. Frame 0 is intended as a setup frame. Then when making cycles (for example start 1 end 30) you have to make frame 1 and 30 the same (copy and paste) and cycle back to frame 2 with linear transition. There's no need to edit the preferences, just right click on the frame and change the interpolation type.
-
- Posts: 19
- Joined: Sat Dec 11, 2010 9:23 pm
If I made 1 and 30 the same, wouldn't it be playing the same frame twice, so slight freeze in action? Wouldn't I want 1 and 31 to be the same if cycling from 1 to 30?
When I start doing any sort of keyframes on a later frame, it sets keyframes automatically for the original position of the points in question on frame zero.
Am I supposed to copy those keyframes to frame 1? If not, is it repeating the frame zero keypoints on frame 1, or is it already interpolating at that point?
When I start doing any sort of keyframes on a later frame, it sets keyframes automatically for the original position of the points in question on frame zero.
Am I supposed to copy those keyframes to frame 1? If not, is it repeating the frame zero keypoints on frame 1, or is it already interpolating at that point?
Generally, frame 0 is only for building your animation.
You can change that with your Preferences, but that is the Default.
If you check your Project Settings, you should see that your animation starts at frame 1 and ends with whatever frame you have designated (Default in 7.1 is like 240. I reset mine to 72).
When you create something, and you then start animating, it will automatically create frame one, unless you specifically create frame one (as when you have a character "exploded out" at frame 0, and you then assemble it into a whole, unified body, which you do at frame 1).
I agree, read the entire manual, and use the highlighter tool to highlight the important parts that you think you may need to find again or remember.
You can change that with your Preferences, but that is the Default.
If you check your Project Settings, you should see that your animation starts at frame 1 and ends with whatever frame you have designated (Default in 7.1 is like 240. I reset mine to 72).
When you create something, and you then start animating, it will automatically create frame one, unless you specifically create frame one (as when you have a character "exploded out" at frame 0, and you then assemble it into a whole, unified body, which you do at frame 1).
I agree, read the entire manual, and use the highlighter tool to highlight the important parts that you think you may need to find again or remember.
~M
Change is inevitable, growth is optional.
Life is short, enjoy the adventure!
Change is inevitable, growth is optional.
Life is short, enjoy the adventure!
-
- Posts: 19
- Joined: Sat Dec 11, 2010 9:23 pm
-
- Posts: 19
- Joined: Sat Dec 11, 2010 9:23 pm
I have read. on this subject:
The manual.
Murdock's guide.
The above posts.
And it's a valid question.
If you don't understand my question (and I wouldn't blame you as it's a bit wordy), then I apologize for not being clear enough, but it's easy to demonstrate the issue:
Create a simple shape in frame 0. Go out to frame 100, and rotate it 360 degrees... thereby setting up a keyframe on frame 100 identical to the starting point. (which defaults to frame 0)
Rewind to frame 1.
Notice the rotation is NOT zero.
So... although the visual frame may not begin until frame 1, the ANIMATION (movement) has already begun. It is already interpolating at frame 1.
It DOES, however, loop perfectly when I loop from frame 1-100.
So, following the above advice (which I have... and which is the same advice found in Murdock's guide), using frame 0 as a setup frame only, and beginning the startpoint of any motion on frame 1, move the keyframe at frame 0 (where the program defaults it) to frame 1.
Now, do the same loop (frame 1 to frame 100 on linear setting)... and you no longer have perfect rotation. You have, instead, a duplicate frame... the same exact pixel formation playing twice in a row. [In this case, on the last frame (100) followed by the first frame (1).]
My first instincts on day 1 were correct.
It's one or the other... EITHER have a starting point at frame 1 OR set the last frame as the identical one... but doing both doesn't work.
Now... I might stumble through the exercise (as I suspect many people have) by doing the following:
I create a shape at frame 0.
I create a keyframe at frame 100 rotating the layer 360 degrees.
I use the "create keyframe" function or other similar means to create a keyframe at frame 1.
Well, I could do all that... and be blissfully ignorant of the fact that my picture has already moved by the time it gets to the first frame. In reality, all I've done is define a frame that was already interpolated (frame 1)... I would have gotten the exact same result if I had just not bothered creating the keyframe at frame 1.
I could do that, but I wouldn't have learned the lesson... and my lack of understanding will bite me later.
So let's say later I want to have it spin twice as fast or something like that. I go to frame 100, and set the rotation to 720 degrees. Well... if you did this, you'd understand why this all matters. It no longer spins properly. Frame 1 has already begun spinning, but has only spun half as far as it should have. So actually, by just inserting a keyframe into frame 1, all I've done is CREATE a problem later if I decide to change anything about how it's spinning. I would have been better off NOT creating the keyframe at frame 1 at all.
If you understand the above, you understand why I want to start with frame 1 as the ZERO point... no motion yet... so the whole thing can be altered later if needed, easily snapped to a beat for a music video, etc... there are several reasons off the top of my head where you need to define the starting point (zero motion) as opposed to the first interpolated frame.
In other words, I want to have the first frame (need to really for certain things) as having ZERO rotation.
Which brings us back to do... do... do... do..
So here's a multiple choice problem.
You have a shape in a layer.
There is a keyframe at frame 1 which is defined as zero rotation for the layer.
You wish to use the linear motion settings to have the layer rotate perfectly smoothly as it loops from frame 1-100. Each loop is one complete 360 degree rotation, and you want PERFECT motion without duplicated frames or stutters.
Where do you set the keyframe that is an exact pixel match of frame 1 (In this case the frame which defines a 360 degree rotation)?
A) Frame 100
B) Frame 101
If you understand what I've written, you understand that there is only one correct answer.
... and it is NOT the answer found in the "Official Guide."
I'm not confused.
The part about cycling back to frame 2 is correct... if you want to shorten your cycle by a frame... another workable solution... if that's all you're trying to do, and aren't concerned about how that cycle interacts with another that's set to definite frames as opposed to a loop that's dropping a frame each cycle.
It's a little much to explain here, but let's just say I have thousands of shapes moving, and the exact synchronous interaction of various layers is critical to creating the optical illusions.
Anyway, thanks to those who have had something productive to say here.
I've done enough tests now to know for sure what works perfectly and what just seems to work at first glance.
Video is coming along nicely.
The manual.
Murdock's guide.
The above posts.
And it's a valid question.
If you don't understand my question (and I wouldn't blame you as it's a bit wordy), then I apologize for not being clear enough, but it's easy to demonstrate the issue:
Create a simple shape in frame 0. Go out to frame 100, and rotate it 360 degrees... thereby setting up a keyframe on frame 100 identical to the starting point. (which defaults to frame 0)
Rewind to frame 1.
Notice the rotation is NOT zero.
So... although the visual frame may not begin until frame 1, the ANIMATION (movement) has already begun. It is already interpolating at frame 1.
It DOES, however, loop perfectly when I loop from frame 1-100.
So, following the above advice (which I have... and which is the same advice found in Murdock's guide), using frame 0 as a setup frame only, and beginning the startpoint of any motion on frame 1, move the keyframe at frame 0 (where the program defaults it) to frame 1.
Now, do the same loop (frame 1 to frame 100 on linear setting)... and you no longer have perfect rotation. You have, instead, a duplicate frame... the same exact pixel formation playing twice in a row. [In this case, on the last frame (100) followed by the first frame (1).]
My first instincts on day 1 were correct.
It's one or the other... EITHER have a starting point at frame 1 OR set the last frame as the identical one... but doing both doesn't work.
Now... I might stumble through the exercise (as I suspect many people have) by doing the following:
I create a shape at frame 0.
I create a keyframe at frame 100 rotating the layer 360 degrees.
I use the "create keyframe" function or other similar means to create a keyframe at frame 1.
Well, I could do all that... and be blissfully ignorant of the fact that my picture has already moved by the time it gets to the first frame. In reality, all I've done is define a frame that was already interpolated (frame 1)... I would have gotten the exact same result if I had just not bothered creating the keyframe at frame 1.
I could do that, but I wouldn't have learned the lesson... and my lack of understanding will bite me later.
So let's say later I want to have it spin twice as fast or something like that. I go to frame 100, and set the rotation to 720 degrees. Well... if you did this, you'd understand why this all matters. It no longer spins properly. Frame 1 has already begun spinning, but has only spun half as far as it should have. So actually, by just inserting a keyframe into frame 1, all I've done is CREATE a problem later if I decide to change anything about how it's spinning. I would have been better off NOT creating the keyframe at frame 1 at all.
If you understand the above, you understand why I want to start with frame 1 as the ZERO point... no motion yet... so the whole thing can be altered later if needed, easily snapped to a beat for a music video, etc... there are several reasons off the top of my head where you need to define the starting point (zero motion) as opposed to the first interpolated frame.
In other words, I want to have the first frame (need to really for certain things) as having ZERO rotation.
Which brings us back to do... do... do... do..
So here's a multiple choice problem.
You have a shape in a layer.
There is a keyframe at frame 1 which is defined as zero rotation for the layer.
You wish to use the linear motion settings to have the layer rotate perfectly smoothly as it loops from frame 1-100. Each loop is one complete 360 degree rotation, and you want PERFECT motion without duplicated frames or stutters.
Where do you set the keyframe that is an exact pixel match of frame 1 (In this case the frame which defines a 360 degree rotation)?
A) Frame 100
B) Frame 101
If you understand what I've written, you understand that there is only one correct answer.
... and it is NOT the answer found in the "Official Guide."
I'm not confused.
The part about cycling back to frame 2 is correct... if you want to shorten your cycle by a frame... another workable solution... if that's all you're trying to do, and aren't concerned about how that cycle interacts with another that's set to definite frames as opposed to a loop that's dropping a frame each cycle.
It's a little much to explain here, but let's just say I have thousands of shapes moving, and the exact synchronous interaction of various layers is critical to creating the optical illusions.
Anyway, thanks to those who have had something productive to say here.
I've done enough tests now to know for sure what works perfectly and what just seems to work at first glance.
Video is coming along nicely.

- funksmaname
- Posts: 3174
- Joined: Tue May 29, 2007 11:31 am
- Location: New Zealand
sorry man, i dont have the time to read all this - but the one question that stands out about having the same frame at start and finish is correct, you need 1 less frame in your cycle (export) to make the thing loop without a 2 frame pause. Having said that, you also want to make sure that the easing into the end frame is similar to the easing out of the start frame or you'll get funny motion (if its linear then it's not so much an issue)... but for peace of mind, use frame 1 to 100, and export frame 1 to 99... less brain hurt.