6 Replies Latest reply on Jul 21, 2009 12:03 PM by Adolfo Rozenfeld

    smoothing manual tracking

    mr. ichybob Level 1

      Hi, I've had to manualy track something (frame by frame), as it's just impossible to get a good track (black outfit, dark background). I want to "smooth" the motion out a bit as it's a bit jerky, I tried converting all the position keyframes to roto-bezier which made it both smoother but also seemed to exagerate some of the bumpiness. I was wondering if their is an expression or any other method to "smooth" out the motion.

       

      Thanks

        • 1. Re: smoothing manual tracking
          Adolfo Rozenfeld Adobe Employee

          Bob:

          Changing keyframe interpolation will make things worse, since you'll get speed changes from keyframe to keyframe.

          There are two ways to smooth keyframes.

          One is to use the Smoother panel (Window > Smoother). You select all  keyframes, specify a smoothing tolerance and hit "Apply". Tolerance specifies a value, below which any keyframe is considered too similar and it's removed. For example, if you enter "10" any keyframe that doesn't have a difference of at least 10 units compared to the previous one is removed.

          The problem with Smoother is that it's destructive - it really removes keyframes.

           

          The other way is using the smooth() expression.

          If you enable the expression field for position (alt click the stop watch) and enter something like smooth(2,2), the expression will simplify/smooth the animation pattern in a "live way" without killing the keyframes.

          • 2. Re: smoothing manual tracking
            mr. ichybob Level 1

            Thanks, (smoother) was exactly what I wanted. Does it have any issues with less than a pixel i.e. (smoother .5, .3)?

            1 person found this helpful
            • 3. Re: smoothing manual tracking
              Adolfo Rozenfeld Adobe Employee

              smooth() doesn't specify units (ie, pixels for position, etc).

              The two arguments are width and samples.

              Esoteric? I know

               

              The best explanation I saw is in Mark Christiansen's amazing "After Effects CS4 Studio Techniques" book:

               

              "Width determines how much time (before and after the current time)  is averaged to create the result. A setting of 2 samples 2 seconds means 1 second before and 1 second after the current time. The samples argument determines how many individual points within that range are actually sampled for the result; generally, the more samples, the smoother the curve".

              1 person found this helpful
              • 4. Re: smoothing manual tracking
                Adolfo Rozenfeld Adobe Employee

                Oops!

                Sorry, you asked about Smoother, not smooth()

                Yes, you can use that kind of value.

                • 5. Re: smoothing manual tracking
                  mr. ichybob Level 1

                  oops, I meant to say smooth() was what  wanted, and if smooth (.5,.3) works well

                  Thanks again!

                   

                  Edit - Now I see your answer - yes, those arguments for smooth make sense - thanks!

                  • 6. Re: smoothing manual tracking
                    Adolfo Rozenfeld Adobe Employee

                    Let's see...

                     

                    .5 for width will work  - it means that the "time window" in which values are averaged would be from 0.25 seconds before to 0.25 seconds after current time.

                     

                    The samples argument has to be larger than 1, because again, it's not property units (pixels for position, degrees for rotation), but how many points in  time window are taken into account for averaging.