2 Replies Latest reply on Nov 20, 2013 1:24 AM by pOngey

    How to apply same Animation to different Objects?

    pOngey Level 1



      So, as the question stated, I am trying to animate multiple objects in the scene with the same animation.


      For example, I have a SQUARE and a CIRCLE in the scene, both of them in different layers. I want them to both scale from 0% to 120%, then back to 90%, and finally to 100%. What I do is going in the SQUARE "scale" section and add keyframes to the time I want each elements (percentage) to be at. When done, the SQUARE works perfectly (scaling from 0>120>90>100 percent). Then, I copy and paste the keyframes I use with the SQUARE to the CIRCLE, which gives me the same animation as the SQUARE (0>120>90>100 percent). But when I want to make changes to both of them, I need to change each keyframes in each objects (SQUARE and CIRCLE) one by one...


      Having only two objects in the scene isn't bad, but I have around 30 objects that needs to be animated exactly the same... so changing them one by one is pretty time-consuming.


      So, the question is, is there a way where I can easily apply a type of animation (scaling 0>120>90>100, and adjustable afterwards) to different objects (SQUARE, CIRCLE, etc.) in my composition without doing it one by one?


      This might be a stupid question, but I'm new with After Effects so this is quite complicated for me...


      Thank you,


        • 1. Re: How to apply same Animation to different Objects?
          UQg Level 4

          Several ways, parenting and expressions.


          Parenting: Create a small solid or a null object that will be 'controlling' the other layers. Parent the CIRCLE and the SQUARE to it (to achive this, in the Parent column of the Composition Panel, select the name of the controlling layer or directly pickwhip the layer).

          Once done, when you scale/rotate/move the controlling layer the parented layers transform accordingly. It doesnt affect opacity.

          Be aware that parenting modifies the values you see in the Composition panel for each of these properties (scale/rotation/position) for each of the parented layers. This is because the transform properties are now expressed in the coordinate system of the parent layer, and not in the one of the comp. Modifying the transform properties of the parented layers tranform these layers relatively to the controlling one.


          Expressions: You can enter expressions in the transform properties of your layers. For instance, if your controlling layer is named 'controller', alt+click the stopwatch of the property 'Scale' of the SQUARE for instance and enter this in the expression box:




          Now when you scale the controller, the SQUARE scales accordingly. It works for any property.

          Note that since the expression doesnt refer to the property's own keyframes, those keys are now ignored. To refer to the property's own key value in an expression, use simply 'value'. For instance:


          s = thisComp.layer("controller").transform.scale/100;

          [s[0]*value[0], s[1]*value[1]];


          The possibilities are pretty much infinite.

          1 person found this helpful
          • 2. Re: How to apply same Animation to different Objects?
            pOngey Level 1

            Thank you for the answer, but it didn't quite work the way I want them to as all of my objects in the composition have different "on screen position" and "timeline position"...


            I'm now using a custom Animation Preset with all the objects that are animated exactly the same. It's not that different from copying and pasting the keyframes, but I hope (fingers crossed) that I might be able to just edit the keyframes inside the Animation Preset, which will then edit the keyframes to all the objects that uses that Animation Preset accordingly.


            Thank you again.