7 Replies Latest reply on Jun 2, 2016 8:58 AM by Rick Gerard

    Discuss: is there a way (yet) to re-use an animated comp for different texts without using Premiere?

    howiemnet Level 1

      The title doesn't explain it well. And this is an old question, but worth asking again in case the recent architecture changes have made this possible.

       

      I want to be able to re-use a single composition - one containing a text layer - without having to duplicate the composition (and thus "fixing" the animations in stone).

       

      A simple example: say I've done an animated map, with flags popping up at various locations, with the location names on them. At the moment, I create a single comp of one of the location flags, then - once I'm absolutely sure I'm happy with the animation / font / colours etc - I can duplicate the comp as many times as I need and go in and change the text in each one.

       

      If the client says "could you make the text blue instead" I now have a load of comps I have to fix. But they're all identical apart from the text... arrrrg

       

      I constantly find myself needing this functionality. Lower thirds, title sequences, text flags, etc - I often need multiple copies of a comp where the only thing that's different is the text. So I end up with folders full of almost identical comps where I'm praying the client won't want a "global" change. Often it's not the client - I find myself with a spare hour at the end of a project and just think "a bit more polish on those text flags would be nice" - but by then it's too late to alter all those copies.

       

      * the workaround *

       

      There is now a workaround involving Premiere: taking my "map with location flags" example above, you can set the "Location flag" composition as a template in AE. Then import it into Premiere, make all the copies you need laid out on a timeline, and go in and edit the text for each instance separately. Export it as a video with alpha, then import that back into AE, chop it up, stick it where you need it on your animated map.

       

      At least this means that if you need to make a global change to the way the location flags look, you only have one comp to fix. Then you have to open the Premiere project and re-render, export it over the old one, and when you go back to AE, reload the footage. It's not ideal, but it's a solution.

       

      So.

       

      Is there a way yet of doing this without the Premiere round-trip?

       

      I was hoping there'd be a way you could use expressions for this, but AE's caching system precluded it. A way to (say) retrieve the layer name that an instance of a composition used, so you could have lots of copies of a single sub-comp, give them different layer names, and then within the sub-comp itself use an expression to retrieve that instance's Layer name in its parent composition.

       

      Don't think that works yet.

       

      Any thoughts / hacks / expressiony things anyone can suggest? I'm guessing Adobe could use some guidance in how to implement this sort of functionality too, so it'd be worth us at least talking, eh?

       

       

        • 1. Re: Discuss: is there a way (yet) to re-use an animated comp for different texts without using Premiere?
          Szalam Adobe Community Professional & MVP

          I use the Copy With Property Links or Copy With Relative Property links a lot for just this sort of use case.

           

          When client makes changes, it's nice to be able to change it across the whole project!

           

          I usually set up a null as my control object in my main comp. It'll have things like the Expression Effects Color option and some other things that let me change stuff across all the layers of my comp or across a project.

           

          Then anything else I want across the project, I'll just Copy With Property Links and past into a new comp. The new architecture enables you to mess with expressions without as much fuss if you make an error. You can then duplicate this comp with your linked assets as many times as you need.

          • 2. Re: Discuss: is there a way (yet) to re-use an animated comp for different texts without using Premiere?
            Rick Gerard Adobe Community Professional & MVP

            You can, and have been able to for a long time, use scripting to replace text in a comp using a text file. I do this all the time for lower thirds.

             

            You can also create animation presets, I have over 200, for any technique you want to apply to any layer.

             

            Your example of an animated map with flags could be handled by pre-composing everything but the text layer then nesting the animation in new comps that you would add new text to. One nested comp could support hundreds of different comps and allow you to quickly update all by editing the nested animation. That's the way I approach all repetitive projects. 

            • 3. Re: Discuss: is there a way (yet) to re-use an animated comp for different texts without using Premiere?
              howiemnet Level 1

              @szalam: useful technique - great for handling properties you know ahead of time may be risky, or situations where you want to animate properties across multiple layers/comps all in one go. Does mean you need to be able to anticipate what properties you might need to change though - so no good if an updated bit of footage comes back from a client and you realise you're going to have to add a drop-shadow to all your bits of text   (ok, there are other ways of dealing with *that* example, but you get my drift)

               

              @Rick_Gerard: I'm more hacker than artist, so I'll have to look into the scripting, thanks for the tip. I'm pretty good at avoiding duplication in projects, whether AE or Blender or whatever, so I take your point about "nest the common items into a subcomp, then you only have to have individual comps to handle the unique text for each instance" - but that leaves me with my problem of having loads of comps to change if the client says "oops - our branding changed - we need Gill Sans, not Avenir".

               

              I use a variety of hacky methods to get round this: time remapping being a key one. All text in a single comp (my holy grail), as single, sequential frames; then time-remapping in the next outer "parent" comp to freeze the right bit of text on screen at the right time - and it can still be animated, albeit not with the text animators. (This technique can be expanded - create all your animated text flags etc as 10-second segments, laid out sequentially within a composition, then use time-remapping to pick out the chunk you need)

               

              But that's it - i'm more hacker than artist, and I stumble through projects with the barest of a plan, happening upon pleasing outcomes. Mostly. So flexibility - and particularly the freedom to experiment and make mistakes quickly - is the only way an idiot like me survives in this crazy game. I often need to get all the text and subcomps laid out across my master timeline - just for safety! - before I'm really sure what I want them to actually look like.

               

              All this discussion (yay discussion forums) has really highlighted what I want, though. Look at the example of how Premiere works with AE templates - multiple instances of a comp in a timeline can each have their own local variables. Only text, mind, but that's a start.

               

              So I'm trying to frame an AE feature request. Something like this:

               

              Request: "Template" setting for compositions

               

              Expression controls let you build a big, complex composition, but pull various properties that may be scattered throughout many layers and effects into a single Null's effects panel. Now imagine if you could drop that big, complex comp, with its nice tidy "control layer", into another comp - an outer composition - but still access the nested "Control layer" Null's set of controls, but just for that instance of the composition. Perhaps using the layer's Effects panel. Now imagine you could duplicate this sub-comp layer as many times as you needed, and each layer/instance would have its own independent set of controls - all tied to the underlying composition's instance.

               

              Wouldn't that be fantastic? You could create configurable compositions - comps you never need to delve into or duplicate, but that could be configured - text changed, colours altered, animation timings changed - from outside, on an instance-by-instance basis. True re-usability. The mechanics are already in place, just about.

               

              But what about caching, you say? A single comp can't have multiple "versions", with their parameters tweaked differently, surely? Except that we know you can hit the "Collapse Transforms / Continuously Rasterize" button to defer rendering, which stops AE from trying to render and cache the comp until you're rendering the outer composition. Just as well, as with nested 3D compositions, the same composition may appear on screen more than once simultaneously, from different angles, with different time offsets, and looking very different.

               

              So we're really close already.

               

              New feature #1: a new Effect > Expression control: a text property, to augment the existing point / rot / colour controls

               

              New feature #2: a new flag / setting for compositions: "Template". Just a checkbox on the Composition Settings dialog.

              - Does nothing until the composition is dragged / nested into another composition.

              - When and if the comp is nested, and its layer's Collapse Transforms is checked:

                 - AE checks to see if the subcomp has a Null layer called "TemplateControl". If so:

                 - In the outer composition, on the layer the subcomp's sitting on, AE creates adds a pseudo effect populated with any Expression Controls present on the subcomp's TemplateControl layer.

                 - These controls can be animated in the normal way, in the outer composition.

                 - When rendering/previewing, AE treats the sub-composition just like any other collapsed comp - except that in addition to taking any time offsets into account and applying 3D transforms to the sub-comp's layers, it also temporarily applies the layer's expression controls to the sub-comp's TemplateControl layer.

               

              This would be so powerful. It's something you take for granted when using 3D packages - custom per-instance props so you don't waste time / memory on dupes. It'd open the door to real templates, re-usable comps, a market in swishly designed templates that actually didn't need you to dig around in the comp itself - you could just control it from outside. And simple, global changes.

               

              So, fragrant After Effects users, is this not something we should clamour for? Who's with me? Vote Template 2016! (sorry)

               

               

              Note: You can almost - almost - do this manually with Property Links [expressions, basically] by linking a parameter in one comp to a parameter in another. The big gotcha is that while a subcomp can, for example, retrieve a parameter from its parent (albeit a referral by comp name rather than hierarchy), it doesn't take into account any time offsets between the two. So if your subcomp starts at 20 frames into the parent's timeline, the parameter it retrieves for its first frame will always be from frame 0 of the parent, not the value current at the time the comp's active. Coulda been a useful hack if it worked.

              • 4. Re: Discuss: is there a way (yet) to re-use an animated comp for different texts without using Premiere?
                howiemnet Level 1

                * I should say - I'll submit this as a feature request, but before I do, what are your thoughts? Would there be a better way of implementing this sort of functionality?

                • 5. Re: Discuss: is there a way (yet) to re-use an animated comp for different texts without using Premiere?
                  Szalam Adobe Community Professional & MVP

                  howiemnet wrote:

                  New feature #1: a new Effect > Expression control: a text property, to augment the existing point / rot / colour controls

                  This is a separate and potentially very useful feature request. I wish we had more access to properties of text objects. You can't change the font across compositions, for example, which is really annoying. Heck, I'd like to simply be able to keyframe some of the text properties!

                   

                  howiemnet wrote:

                  New feature #2: a new flag / setting for compositions: "Template". Just a checkbox on the Composition Settings dialog.

                  - Does nothing until the composition is dragged / nested into another composition.

                  - When and if the comp is nested, and its layer's Collapse Transforms is checked:

                  - AE checks to see if the subcomp has a Null layer called "TemplateControl". If so:

                  - In the outer composition, on the layer the subcomp's sitting on, AE creates adds a pseudo effect populated with any Expression Controls present on the subcomp's TemplateControl layer.

                  First of all, I think this is a great idea. I can think of some really powerful uses for this. Especially if AE is able to cache the unchanging parts...

                   

                  Ooh, and you could have expression controls in there tied to the outer controls! POWERRRRR! Sorry, I'll calm down.

                   

                  Couple things:

                   

                  We can't call it "template". Since we already have projects that can be saved as "Templates" (.AET files) and since After Effects templates are being sold (and are a big business), this should probably be called something else like "Instance". I'm open for suggestions on this one, but not "template". "Template" implies one thing being changed to fit a need. Whereas your suggestion gives us the possibility to have dozens of little instances, all with slightly different colors/movement, etc., all flying around inside a main comp.

                   

                  Rather than have it looking for a null object with expression controls, it would be better for a comp with that "Instance" setting turned on to have an extra button by all of the keyframeable attributes on all of the layers inside it that lets you flag that attribute for external animation. I don't know a whole lot about the inner working of AE's code, but I think that would be easier to implement vs. trying to get expressions to work completely differently in different instances of a comp. Either one would require some serious re-writing of AE's core, but since they're in the middle of doing that anyway, it wouldn't hurt to look into it.

                   

                  You can't have the "continuously rasterize/collapse transformations" button also be the "activate instance feature" button. You may want to have the 3d layers in the template comp stay 2d in your main comp, you may want blending modes to not bleed over into your main comp, etc., so having this switch turned on would wreck it. We'd need a new button (probably in the effects panel of the instance comp layer) to activate the instance controls.

                  • 6. Re: Discuss: is there a way (yet) to re-use an animated comp for different texts without using Premiere?
                    howiemnet Level 1

                    szalam wrote:

                    Ooh, and you could have expression controls in there tied to the outer controls! POWERRRRR!

                    and

                    Rather than have it looking for a null object with expression controls, it would be better for a comp with that "Instance" setting turned on to have an extra button by all of the keyframeable attributes [...]

                    Fair enough - and your approach wouldn't preclude us from using a null object if we wanted, which is cool - the advantage of having a null "control layer" between the outer comp's controls and the inner comp's properties is that you could use expressions to sanitize things, and if you needed multiple layers in your comp to be controlled by a single value, you could still do it.

                     

                     

                    [difficulties in] trying to get expressions to work completely differently in different instances of a comp

                    There shouldn't be any difficulties; the expressions wouldn't be changing, though the values referred to by them might. But AE has already proven itself adept at handling multiple copies of a sub-comp, with expressions embedded in it, even though each instance's expressions have to be evaluated separately (as different instances of the comp may be offset by different amounts of time in the parent comp).

                     

                    You can't have the "continuously rasterize/collapse transformations" button also be the "activate instance feature" button. You may want to have the 3d layers in the template comp stay 2d in your main comp, you may want blending modes to not bleed over into your main comp, etc., so having this switch turned on would wreck it.

                    Mmm. You may have a point. The 3D layers staying 2D in the parent comp isn't a problem, as that'd require that the layer have its 3D switch set, too. I don't see how you could avoid having this new template/instance functionality being tied to the continuous rasterize switch, though.

                     

                    There will be other gotchas, I'm sure, but this is something I've been wanting ever since I started using AE, over a decade ago. My hackerish instincts tell me it's not as huge a job as it may at first seem. (Not to understate the difficulties of creating new functionality in as complex a package as AE). I just mean AE can already handle multiple instances of comps, evaluating each one separately, comping them all together. And the expression functionality is already there. We just seem so close.

                     

                    The text thing - a text Expression Control - would actually need more UI work to get it to happen, though; you'd need a way to edit rich text (don't stop me kerning, baby) from an effect property, for which there ain't a UI mechanism for at the moment. I'd settle for having nothing interactive in the control itself, just a normal keyframe strip in the timeline I could paste into. That'd do me for now

                    • 7. Re: Discuss: is there a way (yet) to re-use an animated comp for different texts without using Premiere?
                      Rick Gerard Adobe Community Professional & MVP

                      Putting a color control on a text layer is easy, just add a color text animator and use Color Control from the Expression Animators.

                       

                      If you put all of your controls on a null all you have to do is name the comp in the expression control and it will work no matter where the layer or animator is. I do this all the time with my animation presets. I'll have one called Master camera controller that I apply to a null in a comp named "Master" and another animation preset called Active Camera Master that I can apply to a null in any nested comp and the controller in the Master Comp will control the Active Camera in any nested comp. It's just a matter of careful planning. The only requirement is that the nested comp has a camera that covers the entire span of the composition.

                       

                      I do like the idea of a propagating collapse transformations feature. Most of the time I want CT turned on all the way down the chain but there are occasions where one of the layers has to have CT turned of and, as in the second paragraph, the camera in the nested comp must follow the camera in the Master.