Accelerating objects in animator
-
Thanks for setting up this example, Fredo6. My problem is that I need the object (the green cube in your example) to already be in constant motion at the start. I then want to accelerate this motion. So if the cube is moving at 1 m/s for a while I then want to accelerate it smoothly up to 5 m/s, In your example when easing is applies to the green cube it starts motionless.
I set up a trial in which a cube is first moving at constant speed in translation #1. I then created 4 m ore translations, each at higher speed. I tried two things:
- I grouped the 4 translations together and then applied easing. The cube moved at constant speed in translation #1. But then it stopped first before it began to accelerate in the 4 grouped and eased translations.
- I then tried not grouping the translations (as I think Schuppe is suggesting). I got constant motion in translation #1 followed by acceleration in translations #2-#5 as I wanted. But the motion was jerky. I could solve this by creating a large number of translations, each with a small increase in speed. With a large enough number of translations I think I’d get smooth acceleration. But that’s a lot of work considering that I have 12 separate motions I need to do this with. So if each needs 60 or 70 separate elements to end up smooth, that’s 12x 60 or 12x70 elements to create. I can do this if necessary but I’m hoping for an less time-consuming solution.
-
Ok, i think you want it super smooth. You do it the hard way ( every 0.1 sec speed a tiny bit up)
The result are a lot movements for one object. So far so bad.
But for the second object you did it with kinematic constrains -- Master-slave.
For the third object and all the others: If you click on the >edit the properties< Button in the box for the kinematic constrains you will find a > clone < button.
With this button you can make slave other objects for the same movement/sequences .... and done!!
You make the work only for one object, what you say?happy animation
Schuppe -
sorry men, NOW i realized. you do not want to move 12 objects with the same movement.
You want to move ONE object with 12 different movements, right?
I am so stupid !!!! shame on me.
Schuppe -
No problem Schuppe
If I had a streamlined way to do one translation I could do the rest.
But also didn't mention that I also need to be able to control acceleration for scaling as part of this project. If I can solve the problem for translation then maybe I can use a kinematic constraint to tie acceleration for scaling to translation acceleration. That would work. I don't know if Animator can constrain a scaling movement to a translation movement.
But so far I don't see a practical solution for the translation acceleration problem to begin with.Is it possible that SketchUp and Animator aren't suited to my application? If no solution emerges I guess I have to try another app. I do like Animator and I've started to get accustomed to using it. My needs aren't super complex but I do need to be able to control acceleration. No complex modeling needed. I'm thinking of trying Blender. It's free and I think it can handle what I need. But it's got a considerable learning curve. I wonder if anyone has other suggestions. I'd even consider 2D though I'd prefer 3D. Maybe Flash?
-
Actually, I am implementing two speeds (for translation and rotation / spin), one for start, the other for end. So this gives a constant acceleration. Easing on top will allow to tweak the acceleration, that is, the transition from the initial speed to the end speed. That should do the trick.
This will go in the next version of Animator, on Monday.
Fredo
-
Great! Thanks.
-
One more question, Fredo6...
I need to apply the same acceleration and deceleration to object scaling. Is that possible? Or can I accomplish this using a kinematic constraint between a translation element (with acceleration or deceleration) and a scaling element?
Thanks for your help.
-
To clarify, I need to be able to give scaling movement a starting velocity rather than have it starting stationary.
-
@sigasiempre said:
To clarify, I need to be able to give scaling movement a starting velocity rather than have it starting stationary.
Not sure your explanation is clear enough. At the start of any movement, the object is stationary in relation to the environment where the movement happens.
If you want to define a specific speed, the only way you can do it in Animator is to declare the distance of movement and the duration of that movement (which is basically the formula for velocity: v=distance/time)Easings are used to have a smooth variation in object's momentary acceleration (based on a curved selected in easings editor).
Without any easing, your movement will be linear from Start to End.
With Easing, you will have the same average velocity (easing won't affect the overall time for the object to travel the distance), but the acceleration measured in each point of travel will be affected by the curve selected in the easing. This way you can make an object start slowly and accelerate, or start suddenly and slow down... and there are many other options, which you will have to test for yourself. -
derei: Currently in Animator it's not possible to specify starting and ending velocities for translations. The velocity of a segment is determined by its distance and time, as you mentioned, or by entering the velocity directly. However translations begin at zero velocity. Fredo6 wrote above that in a new version available Monday it will be possible to specify starting and ending velocities for translations and rotations. However, I also need to specify starting velocity for shape change motions along the axis along which the shape change occurs. I'm not sure if Fredo6 will provide this option also.
-
derei: As you described, easing is applied to a segment without changing the average velocity for the segment as a whole. The same would be true for non-zero starting velocities.
-
@sigasiempre and @derei
Just to clarify, Easingplays with Time and is generic, whereas Accelerationplays with movement and is specific
Easing is simply a function curve starting at (0, 0) and ending at (1, 1) that transforms the base time ratio into the actual time ratio to be used for positioning the animation in time. When there is NO easing, the curve is a straight line, so the actual time ratio is equal to the base time ratio (if your base ratio is 0.7, the actual ratio is also 0.7). If the Easing curve is exponential (start slowly then climb fast), then the low values of the base ratio will corresponds to much lower values of the actual ratio (say base ratio = 0.2, actual ratio = 0.05), and then high base ratio will corresponds to much higher value of the actual ratio. hence the impression of acceleration.
Easing is completely independent of the movement and can be applied to any kind of transition, including for cameras.**Acceleration**is only related to Movement and deals with how the speed varies along the movement. It cannot be simulated by Easing. This simply requires to manage two speeds, initial and final, giving a constant acceleration in between.
I am implementing the accelaration with two fields for the initial and final speed.
Fredo
-
Thanks Fredo6. My understanding is that easing does produce acceleration during particular intervals within a segment since velocity changes during those intervals. But easing does not produce average acceleration for a segment as a whole since average velocity doesn't change for the segment. This is because velocity is fixed by the time and distance for the segment. Therefore any acceleration that occurs in particular intervals of a segment is balanced by deceleration in other intervals. But easing does produce acceleration in the sense the velocity is different at the start than at the end of the segment. However its better for my purposes to be able to control acceleration for a segment by editing the displacement vs. time curve for the segment. Though I doubt that many other users would want this capability.
Thanks much for your help. -
@sigasiempre said:
Thanks Fredo6. My understanding is that easing does produce acceleration during particular intervals within a segment since velocity changes during those intervals. But easing does not produce average acceleration for a segment as a whole since average velocity doesn't change for the segment. This is because velocity is fixed by the time and distance for the segment. Therefore any acceleration that occurs in particular intervals of a segment is balanced by deceleration in other intervals. But easing does produce acceleration in the sense the velocity is different at the start than at the end of the segment. However its better for my purposes to be able to control acceleration for a segment by editing the displacement vs. time curve for the segment. Though I doubt that many other users would want this capability.
Thanks much for your help.You are correct. Easing accelerate Time, which gives of course the impression that the speed is changed and the movement is accelerated.
What you need is a linear variation of speed (i.e. constant acceleration)Note: in the video, the green cube is also accelerated along the circular path.
Fredo
-
The ability to control starting and ending speeds provides the ability to select whatever constant acceleration is desired. Great! Thanks very much Fredo6. However, as I wrote in a previous post, I have realized that I need a parallel ability to control acceleration in shape change motions along an axis. I imagine that I am the only person who needs such a feature. So I doubt it would be worthwhile to add this to Animator.
-
@sigasiempre said:
...I need a parallel ability to control acceleration in shape change motions along an axis. I imagine that I am the only person who needs such a feature. So I doubt it would be worthwhile to add this to Animator.
From the calculation standpoint, tt is possible to vary the acceleration too, but the issue is with the GUI of the sequence Editor.
So I need to take another approach, which I will do, but in another version.Fredo
-
Thanks much Fredo6. But please don't make this change for shapes only for me. It's a lot of work for just one person and I'm sure you have lots of other work to do. If there are other people who would benefit from this perhaps they can mention this in this message thread.
Advertisement