Layer Storage
  • The biggest problem I have with this and other grouping scripts is that you cant have comp specific groups. If I need different kind of groups in different kind of comps the list of groups gets huge.

    In a way I like the simple approach to the grouping that this script has.
  • If you connect the group with a comp, it gets very similar to PreComps very quickly though. I think that's the standout feature of Layer Storage, because it makes you very flexible in terms of moving layers around and adding the same layer to different groups without having to duplicate it!

    What I am saying is that this was a conscious decision - maybe you will give it a try! :)
  • This looks great, but, I would also prefer to have per comp local groupings (as well as a global grouping why not?).

    It wouldn't be like PreComps, it would be a lot more flexible for managing  layers.

    When you duplicate a Comp you would want the group setup duplicated with it.
    (You could create an alternate Dupe Comp button so connections are managed)

    A large project will have many comps, sub-comps  and versions within it and a global group list would get too complicated after a while.

    The local Groups could be included in the Global Groups for added global control, that would be good.
    Also, a Scan Comp button would be useful to create some automated groupings.
    Auto groups could include layer types (adjustment layers/nulls/solids), label groups by colour.
    This would be great for organising existing Comps.

  • Hi Adam,

    thanks for this comprehensive feedback!

    There are advantages and disadvantages to connecting them to comps. I will say again that it was a conscious decision not to connect them with comps for various reasons, but I am taking your input very seriously and will present it to the team! The Scan Comp button is also interesting to say the least.

    We had this running in a small usability test where people deleted and created groups a lot, because it is so quick and easy to do so. So there were never too many groups, but I can see that you don't want to be forced into doing that.
  • Is it possible to import the layer storage data from other projects?
  • Hi Rodrigo,

    so I assume you mean if you import a project into another one? Anything else wouldn't make sense, since the layers in two different projects are never the exact same.

    That doesn't work for technical reasons, unfortunately…
  • Hi,

    I tried the script and I like the functionalities of managing the groups and layers.

    But I noticed that it gets a bit slow when adding/managing a lot of layers in a group. 

    I added over a 100 layers to a group. Switching the group to shy took around 8 to 10 seconds,
    which is not that much of a problem, but I wandered if this is due to an After Effects settings or something
    else. I am working on a new fast workstation, so I don't see a problem here.

    When using a lot of layers in a comp, and this happens quickly in AE if you don't have the habbit of comping
    layers to avoid layer clutter, grouping the layers for showing and hiding could be very handy and could also avoid
    this comping of layers just to manage layer clutter. But it should also respond very quick to show/hide/manage layers.

  • Hi Frederik,

    A processing time of 8 – 10 seconds is definitely way above average, even for 100+ layers. In our performance tests, operations on 150 layers took about 0.4 seconds (and 0.2 seconds on subsequent calls, due to caching).

    Please give us some more information on your setup, so we can try to reproduce this:
    * What version of After Effects are you running?
    * What kinds of layers are you using?
    * Are you working with PreComps?
    * Does the long processing time only occur when showing/hiding layers or also when using other functions (solo, shy, select)?
    * Do you have any other issues with large projects in After Effects in general (when not using Layer Storage)?

  • Hi Joachim,

    * What version of After Effects are you running?
    - I am running version 2015.3

    * What kinds of layers are you using?
    - Those +100 layers were all audio layers.

    * Are you working with PreComps?
    - Yes, a lot of precomps in the scene, but not in that specific layer group. Another layer group consists of precomps.

    * Does the long processing time only occur when showing/hiding layers or also when using other functions (solo, shy, select)?
    It happens also with the other functions; solo. It does not happen when I selected all the (audio) layers and set the shy setting on the layer in AE
    itself, this responds fast. Using the shy button,in the tool bar, to actaully make them shy also reacts fast.

    * Do you have any other issues with large projects in After Effects in general (when not using Layer Storage)?
    It's quite a heavy scene with a lot of comps, puppet layers, deep nested comps, audio. Saving and loading the scene already takes some time.
    But this is only in this specific scene. Other less complex scenes work fast.
    Loading the layer groups with LayerStorage into the project also takes a long time.

    I have a 10x dual core (2,3ghz / 2016) Xeon workstation, 128GB ram and 3 GeForce980 Ti GPU cards. Working also on ssd drives.

  • Hi Frederik. So we tried to reproduce your issue, but even with 150 unique audio files duplicated several times, it worked pretty much instantly. (Also precomping does not make a difference.)

    The only possible difference is that we used Windows 7.

    So in other words, we can't really help you out. Maybe you have other scripts running that might cause this? It obviously can't be your machine. So please report back if you get these issues with other projects as well!
  • Hi Joachim,

    I gonna try to determine it by simplifying the scene, and at the same time start with a basic scene and see if I can find some solutions this way. 

    Keep you posted,

  • Hi Joachim,

    Starting from my template AE scene and filling this with a lot of (audio) layers does not seem to slow down the layer storage
    operations. That's good, :-) Trying to figure out now what made that specific AE scene become slow on the layer storage operations.

  • Hi Joachim,

    I removed assets, bit by bit, from my complex AE scene. The original scene was 182mb, which is probably quite heavy for an AE scene. A lot of AE scenes where imported into the main scene. As I removed more and more assets, Layer Storage responded faster and faster, until the scene was around 30mb. Ath this point Layer Storage almost responded instantly on setting layers to shy, selecting layers, ...

    So for me it seems that the response time is directly related to the amount of assets loaded in the scene. I noticed that removing imported AE scene seem to make a greater difference, but I guess this is also a collection of assets so it just depends on how many assets are imported from the AE scene.

    When the script is executed, do you have to adress all the assets, and check if they belong to a layer group ? Or do you have to read out an ID list, that gets larger and larger when more assets are added to the scene ?

  • Hello, 

    So I really love the idea of the script but I'm running into a couple of issues.

    1. If I select multiple layers to add to a group with some layers visibility turned on and some off, once I create a group if I hit the shy button in the script it turns all the layers visibility on. (This seems like a bug, but I'm not sure.) If I then turn the layers back off and use the shy toggle again, it respects the layers that are on and off.

    2. Same setup, if I add several layers to a group with some with their visibility on and some with it off, when I hit the visibility toggle in the script, what I'm expecting is for it to respect what layers I have on and off, but it turns ALL the layers visibility on regardless of what their visibility status was before I added them to the group. So this means I have to go in each time and turn off the appropriate layers each time, which basically makes that function useless to me. Is this what you intended or is this a bug? I'd imagine that something like this would maybe follow the format of something like Photoshop.
  • Hi Frederik,
    That's an interesting observation – thanks for testing this.

    Here's how the script works in a very basic way:

    * When you add a layer to a group, the layer receives a unique Layer Storage id (unless it already has one). This id is set in the layer's comment field (you can view it if you have the comments column enabled). The id is also stored in the group, so the group always knows which layers it contains.
    * Whenever you perform a group action (hide, solo, shy, select, isolate), the script first gets all the layers in your project and then searches for those that have ids which are stored in the group. Once a layer has been found, it gets cached so that this operation doesn't have to be run again. This is why the first group action usually takes a bit longer to complete than the following ones.

    So performance should not at all depend on the amount of assets you have in your scene. At least not for subsequent group actions, due to the caching. Was there a noticeable difference in execution time when using an action repeatedly (e.g. when toggling hide multiple times)?
  • Hi Christopher,
    1. The group's visibility settings are applied as soon as a layer is added to the group. So when you add layers to a group, the added layers' properties get equalized to match the group settings. For example: If you have a group with the solo toggle set to "on" and add a layer to it, the layer automatically gets soloed. This is to ensure that the layers in a group always share the properties. This is not a bug, but a design decision.
    2. The script is working as intended. Layer Storage lets you quickly apply the same settings (!) to all the layers of a group. There is no added hierarchy; that means you only ought to combine layers in groups that you want to act 100% the same. In your case, the way to solve this would be to create two groups: one for layers that are supposed to be hidden, and one for visible layers.
  • Hi Joachim,

    So in the first issue I spoke of I wasn't referring to the layer visibility in terms of soloed/unsoloed. I meant the layer visibility in the comp(the eyeball). So to clarify, I have layers that have their visibility(eyeball) in various states, some off some on. I add them to a group and hit the shy switch and it turns all their visibility(eyeballs) on. The reason I mentioned this seemed like a bug is because it only does this behavior the first time I press the shy switch. If I (once the layers have been added to the group) go back in and turn off the layers visibility(eyeballs) then hit the shy switch in the script, it respects the layers visibility(eyeball) status. Is this by design?
  • 2 crashes in under 10 minutes, does anyone have this problem on CC 2015.3?

    I am using the trial version, but i would really want to purchase if it's more stable.

  • Hey there,
    what exactly happens when you say it crashes?
  • Hey there,
    what exactly happens when you say it crashes?
    I honestly don't know the answer. I've been working on a massive project in the last month with 0 crashes from After Effects. Having so many layers I felt the need to use a plugin like yours and luckily I found it. I have installed the trial mode and since then my AE crashed over 5-6 times in just 1 day. 

    Once I created a group/folder and I wanted to add a new layer to it. It crashed 
    And for other ones the bug manifested in a similar way.  I had that folder created and isolated. This function hided all the layers from all the compositions. I was having maybe 10 compositions opened in the timeline and I wanted to close few of them (Ctrl + W). When I have started to close them, after 3-4 compositions my AE crushed. I guess it has to do with the fact that your plugin has affected all the compositions of the project. Before the installation I never encountered this issue.

    This is the best I could do to explain the problem.  

  • Could you please close the script while in this same project and see if AE still crashes?

    We have not seen this happen before.
  • Is there a way to rename a group? The only way to change the name of a group now is to delete and create a new group. 

    Btw. will the issue with layer visibility be fixed?
  • Hi Miika,

    to rename the group, select it and then hit the Return key!

    What issue do you mean?
  • Does this plugin offer sub-groups? If not, there are other plugins that have exactly the same feature set but are free.
  • Hi Alex,
    no and no.
    1) Layer Storage is unique in that it does not create yet another layer of hierarchy! That's a big deal, because it makes you way more flexible: you can put layers into multiple groups or move them around afterwards.
    2) No other plugin uses this approach and none of the quality productivity tools are free, but there sure is some great free stuff out there.
  • Hi Joachim,

    First, thanks for this great script! I'm so glad I found the tool I needed. 
    I'm currently working on a 400+ layers comp and it works way better (and faster) than MtMograph Focus or Duduf Dugr. 

    I suggest some features that would be helpful additions :
    1. Select multiple groups at once : I understand that groups have different states, but it would be nice to add a "uncertain" state when you have several selected...? For example once you click on shy it unshy all groups selected, if you click again it shy them all.
    2. Select multiple layers inside groups in the script panel, to batch delete them from the panel.
    3. Rearrange and sort groups (drag-and-drop by hand, or alpha-numerically).

    Thanks :)
  • Hi Fabien!

    Thank you for taking the time and writing this - posts like yours help make this script better!

    1) This comes up quite often, especially with power users. Selecting multiple groups or items would be amazing and you would thing that this kind of thing is trivial. Unfortunately, we couldn't implement this from a technical point of view, as the API just doesn't provide that feature.
    …which is why for now, you would have to add the contents of one group into another one in order to get a similar result.
    2) Same thing. Selecting multiple layers just isn't possible in this particular setup. It's embarrassing to even write this (even though it certainly is not our fault), but it just seems so trivial :S
    3) Unfortunately, the programming interface does not provide the drag-n-drop functionality that you are used to from the rest of After Effects. Because of this, there are only two sorting options left (date of creation and alphabetical) - we decided for the former, because if there are a lot of layers, you might not even notice that something happened when you created a group whose name comes late in the alphabet.
  • Hi Joachim,

    Thank you for the answer. Too bad the API is such limiting :|
    3) Unfortunately, the programming interface does not provide the drag-n-drop functionality that you are used to from the rest of After Effects. Because of this, there are only two sorting options left (date of creation and alphabetical) - we decided for the former, because if there are a lot of layers, you might not even notice that something happened when you created a group whose name comes late in the alphabet.
    Would it be possible to let the user toggle between these sorting options? I'm using a pretty hardcore naming convention and it would greatly improve my use of the script. 
    From a UI point of view, is it possible to scroll automatically in the panel to the new group position, when created?

  • Yes that would be possible, and I am seriously considering implementing that. I usually err on the side of simplicity of UI (as in 'the less buttons the better'), but I think this is a case where one could make an exception.

    Unfortunately no, scrolling is also not accessible in the API. :S
  • Can you add option in order to lock all connected layers ?
  • Hey Basem,
    you're right, that's the missing piece. Until then, you can maybe make use of the select function and then ticking the lock button. That should lock at least all of the ones within the same comp.
  • Like another poster I too am having crashing issues. It causes AE to crash entirely. I once got the "you've got one chance to save" but all other times its been a complete bail back to the OS.
    Its a heavy project -  350 layers in the main comp. I'm only using the script in the main comp. When I found this script today I thought.great, it will help organize this monster for me. But I only started organizing about 50 of the layers in about 7 different groups and then it started failing and I can't seem to get any further. This is a project thats been going for a few months and the file has been stable to this point (prior to installing the script)
    The first time I was able to save and then load the groups from the project, but once I added more layers to a group it just crashes AE and I can't get any further.
    Win 7 SP2 GTX970, 64gb Ram i7 12 cores AE 2018 15.00
    Project at 6K and is using 3D layers extensively alongside Element 3D and Particular (both current revs), but no raytracing. Even with the Caps Lock on it fails so I don't thinks its content specific. It just seems to be a limit on either number of groups or number of things in those groups.
  • Steve has opened a support ticket and we are trying to help him out there.
  • This is almost a perfect script with one MAJOR flaw.  

    If you ever duplicate your comps as new instances say with True Comp Duplicator (which I do often) then be prepared to be asked which layers to use with Layer Storage.  Now, this wouldn't be a problem if I didn't have hundreds of layers, but I do.  So what ends up happening is I am saying "ok" to a dialog that pops up literally hundreds of times.  

    The only way I can see getting around this is to create a copy of the AE project file and delete one of the comps.  For obvious reasons this a pretty annoying workaround.

    If there is a way to get around this issue of this dialog box, or at least have a "ok to all" option please let me know. 
  • Hi Austin,

    I have had this happen to me as well. Duplicating huge amounts of comps/layers is really annoying. I have added this to the feature request list; please don't expect an update soon though!
  • So, no progress on the duplicate issue eh?

    This is almost a perfect script.  Is this project still alive?
  • When I add items to a group, it the script seems to turn on the visibility, even if it was off. This is a big deal, because I don't want all layers in a group on. They may be mattes, or they may be for reference, it shouldn't mess with that.
  • Hi Joshua,

    that makes total sense – thanks for the feedback!

    Just to clarify: You are using selecting several layers at once, some of which are visible and others aren't, and you are creating a group with them? As you do, the group turns them all visible. Correct?
  • Hi,
    just noticed, that when importing a project instead of opening it, the Layer-storage is lost.
    Any solution, except NOT importing it?
  • Hi Uwe,

    unfortunately, the script only works when you actually open a project instead of importing it...
  • I like it so far, can you add nested groups (if not make it a feature request)? Like folders within folders? So like when creating multiple characters. Another cool feature would be to color highlight the layers based on your LayerStorage hierarchy.

    • Character 1
      • Left
        • Hands
        • Feet
      • Right
        • Hands 
        • Feet
    • Character 2
      • Left
        • Hands
        • Feet
      • Right
        • Hands 
        • Feet
  • Hi Anthony, 
    thanks for the feedback - those are great ideas! What do you mean by "color highlight the layers based on hierarchy"?
  • how to select multi groups ? I have to choose each group to solo so it's tiring if there are 100 groups
  • Hi Ryan,
    that's some good input! We'll put it on out feature request list
  • Great looking script.

    What if I were to build a project using this script and then pass it on to someone who does not have it installed to continue working on it? Would they still be able to work on the project without problems? Say I had left layers or layer groups hidden before passing it along? Would that affect their ability to use the project file if they did not have the script?
  • Hi Sean,

    absolutely! And even better - if they pass it back to you (or to someone else who has the script), you (or they) would then see all the groups again!

    I still recommend un-hiding all groups before you pass it along, because then it's easier for your co-workers to understand your compositions.