This is an issue I have researched here on the forums and the only other relevant thread I found was created back in Feb. 2010 and it is still labelled as "unsolved".. Here is a link to that if anyone needs the proof: Re: Eraser tool erase stuff on all layers....
To start, I am using Adobe Animate CC and my issue is with the eraser tool. I am working on 5 different, overlapping layers for a character that I am drawing out. While working on one of the layers, I decide to use the eraser tool to erase part of a mistake I made. However, upon attempting to erase just the elements on that specific layer (which is also the only one I have selected, the eraser tool ends up erasing everything from all other layers in addition to the one I have selected.
This forces me to have to lock all other layers before erasing the target layer and then unlocking those layers again afterwards to then be able to work on them again. In the long run, this will suck up a lot of my time (locking and unlocking) and will only get worse as the character I am drawing gains more layers of detail. I have experimented with the 5 other Eraser Mode options, yet each of them serve their own unique purpose and don't really solve my issue. A good example of what I am looking for in my eraser tool is similar to the eraser tool in Pohotshop. There I can erase, edit, add adjustment layers, overlay shading,/colours etc. etc. to a single layer that I have selected and have it not affect any of my other layers whether on top or beneath the target layer I am working on.
Perhaps there is a simple way of fixing this in the Adobe Animate settings, although I am unsure of where to look and what settings to adjust. If there are no such settings, I would like to ask how people cope with an eraser tool that erases everything on all layers it touches?
Thanks for the help.
I think that the way you see it working is how it always worked. You can see that in the Photoshop world they have the opposite feature request:
Often you're using different layers for different body parts, and if it's to be animated the parts will be in symbols, so you wouldn't hit the problem. If there's another use case you could select a layer and Group it. That way you can still move that layer's items around, and the eraser won't erase it. You can ungroup later if need be.
I'm curious what Mike Milo would say about the situation. I've watched him draw for many hours, and can't remember seeing him troubled by the way things work. He has a Twitch session on Saturdays, noon west coast time, if you want to drop in:
Thanks for the reply Colin,
I will see if I can check out Mike's stream at some point.
I can definitely consider turning my drawn components on my layers into symbols, or via group method you mentioned, yet it all becomes an extra step for me to add to my workflow, and of course in the long run it will only consume more time. It's interesting that the Photoshop forums request for the opposite, I guess there are users on either platform that demand to have both erasing methods as an available option to them for when they need it.
Well thanks for confirming some alternatives to this, now that I realize there is no such setting I can simply change, I will experiment with symbols some more on my project and see how to efficiently incorporate it into my workflow.
I created a command script that unlocks any layer that you have selected and locks the rest.
Download: Lock Other Layers.jsfl - Google Drive
You just need to add that file to the Commands folder and then you can add a keyboard shortcut for it. You can find the commands folder if you open the start menu and search for: %localappdata%. Then open Adobe > Animate CC (year) > (language) > Configuration > Commands.
To add keyboard shortcuts, in Animate CC go to Edit > Keyboard Shortcuts... To edit them you first need to click the button next to the dropdown at the top to save a new preset. Then you can find the command under the Commands tab or you can search for it.
Thank you so much for taking the time to create this script!
It seems those who know how to create scripts like these are the ones who can truly solve any obstacle found on this software. I should really start looking into script coding myself.. I will install your script and test it out.
Thanks again for all the help.
Sorry for getting back so late. I finally had the time to test out the script today!
For my first test, I had the script file in a folder on my desktop and I clicked/dragged the file from the folder onto my open Adobe Animate project and ran the script as a "Command". This test worked perfectly and the script functioned exactly how you explained.
The next test, I copied the script file into the Commands folder: ..Adobe > Animate CC (year) > (language) > Configuration > Commands. I then gave the command a keyboard shortcut and tried using it. Unfortunately, upon using the keyboard shortcut, I am presented with this error message:
I opened the script in edit mode on Adobe Animate to take a look at line 12 but being an amateur with script coding that I am unsure what the issue could be. What do you think?
Odd, it wouldn't have worked with that error. "doc", which is not defined, used to be a variable I used to store "fl.getDocumentDOM()". And on line 12 I must have forgot to change it from "doc.getTimeline()" to "timeline". As you can see, the variable "timeline" is used to store "fl.getDocumentDOM().getTimeline()" and is simply used to shorten the lines of code that needs a reference to the timeline.
So to fix it, change line 12 from:
var layersLength = doc.getTimeline().layers.length;
var layersLength = timeline.layers.length;
It worked! Perfect, this will be super helpful for me and definitely save me time in the long run. This command is ideal for quickly hopping from one layer to another, isolating the target layer by locking all other layers around it. I wonder, once I activate the command to lock all layers except for the selected layer, would there be a way to unlock the locked layers back to their original state?
An example workflow would go something like this:
- I am working on 10 layers.
- I select the 1st layer and activate the command to isolate it. I proceed to draw/edit on the target layer.
- I then select the 2nd layer and activate the command to isolate it. I proceed to draw/edit on the target layer.
- I Repeat this cycle until I am finished drawing/editing each of the 10 layers (or 20, 30, however many layers).
- Once I am finished working on each of the layers individually, I would then need to use a different command to unlock all of the locked layers so that I may perhaps use the "free transform" tool and manipulate all of the layers together simultaneously.
So I guess my question is, if you happen to have another script that can do this?
Thank you for taking the time to read this* I greatly appreciate the help.
Hey again RandomlyFish
To follow up with my previous post. I realize that anyone could tell me to just use the "lock/unlock all layers" button on the timeline panel to undo all of the locked layers caused by the script. However, during my workflow I tend to jump between individual layer editing (drawing/erasing on a single layer), and all layer editing (free transform tool scaling of all layers) quite often. This in turn would make the process to have to manually drag my cursor over the "unlock all layers" button each time I want to edit all of my layers together at once a bit tedious in the long run.
I checked the Adobe Animate shortcut panel to see if there is already a shortcut that allow one to "unlock all layers", although unfortunately, it doesn't exist. Instead, there is only a shortcut available to "unlock all" groups and symbols (objects) only, as shown here:
^ this command can also be found at "Modify > Arrange > Unlock All" to unlock all locked groups and symbols (objects).
So in conclusion, my question is, if there is a 2nd script (to "unlock all layers") that you may have that works in tandem with the 1st script you created?
I hope I could make sense with all of my posts.. If you have any questions with anything that I have said, please feel free to let me know.
Thanks a lot.
I modified the script to do just that, but I would recommend you make a copy of the Lock Other Layers script and see if you can figure out how. Hint: you only need to remove 4 lines of code to get the desired functionality, though there are more lines that aren't needed.
Download: Unlock All Layers.jsfl - Google Drive
This is perfect, thank you.
I will look into the original script and try to mimic the reverse effect you've created without looking at the new script's code.
Alt - click on the lock for the layer you want to erase, and all the other layers but that one will lock.
We have added an option to Erase on active layer in the eraser tool PI.