I have an animation sequence, in which the first layer of the animation appears and the rest are hidden. I want to save the following commands as an Action:
1. Duplicate current frame
2. Show all other layers
3. Select backward layer
4. Hide all other layers
When I perform this action manually on the keyboard, using the following corresponding shortcuts:
1. option +command + /
2. option + command + ,
3. option + [
4. option + command + shift + ,
it works fine. However, when I do the same commands to record an action, it does not work when the action is replayed. The Actions Panel records the following data:
1. Duplicate current animation frame
2. Show , ...
3. Select Backward Layer
4. Hide , ...
The idea is to make an animation sequence. Screenshot 1-4 show the recording of the actions using the shortcuts. Screenshot 5 shows the result after playing the recorded action (Animate Numbers), not the result expected since the number 3 should be visible and layer 3 should be selected.
Photoshop Version: 23.2.2 Release
Copy link to clipboard
alt-clicking the eye-icon in the Layers Panel seems to record fine.
I tried alt (in Mac case, Option) + clicking on the layers panel and I get the same erroneous result on the Actions menu. In you case, I see that the Action is recorded as "Show current Layer With Toggle Others". I do not get that message on my Actions panel.
What if you ctrl-click the visibility icon and select from that menu?
Yes. From what I can see on your screenshot, when you do this command it gets recorded on the Actions panel as "Show current layer with toggle others". When I do the same thing, the following action gets recorded "Show layer "background" of layer "1" of layer "2" of layer "3". Here is where the problem is, I think.
Shot-in-the-dark, but is your History set to »Make Layer Visibility Changes Undoable«?
Yes it is.
I deselected it, but the problem persists.
Just so we are on the same page, when you option + click on the visibility icon and select "Show/Hide all other layers", the action that gets recorded on your Actions panel is "Show current layer With Toggle Others", is that correct?
Actually no, I hadn’t tested that and just assumed it would record same as alt-clicking.
But if I alt-click the visibility-icon it gets recorded as »Show current layer«, see gif.
cool, that is the same for me. I'd like to ask you a favor. What I want to know is what action gets recorded on the Actions panel both when you ...
1. option click the visibility icon and choose the "Show/Hide all other layers" AND what gets recorded when you...
2. use the shortcut alt + control + ","
to be clear, the shortcut on the 2 should be the same as 1. Thanks!
Cool, so we are on the same page: I get the same action listed on the Actions panel. For some reason, when I perform these commands I get the intended result, which is to make the previous layer not visible and the next layer visible, thus making a frame animation of still images. However, when I record the actions on the Actions panel, so that I dont have to do the manual work of performing these repeated actions, Photoshop doesnt respond in the correct way.
So far, I have gotten around this issue by setting all the layers of the animation to Visible, but setting all of their opacity levels to 0%. Then, I perform a repeated action of cycling to the next layer and setting it to Visible. This is a suboptimal solution, however, because it makes it hard for me to know which layer is visible on a given frame (all the eye/visibility symbols appear ON).
Sorry, what I meant to say on the second paragraph is that, after setting the opacity levels to 0%, I perform a repeated action of cycling to the next layer and setting the opacity level to 100%.
The problem here is that Photoshop is recording name of the layers so when you play action it will hide only Layers that are listed or hard coded into action, you must also have layers with that particular names when playing action, that is limitation.
Copy link to clipboard
I am not sure if I understand the task completely, but maybe this suffices.
//select next layer below; // ======================================================= var idslct = charIDToTypeID( "slct" ); var desc6 = new ActionDescriptor(); var idnull = charIDToTypeID( "null" ); var ref4 = new ActionReference(); var idLyr = charIDToTypeID( "Lyr " ); var idOrdn = charIDToTypeID( "Ordn" ); var idBckw = charIDToTypeID( "Bckw" ); ref4.putEnumerated( idLyr, idOrdn, idBckw ); desc6.putReference( idnull, ref4 ); var idMkVs = charIDToTypeID( "MkVs" ); desc6.putBoolean( idMkVs, false ); executeAction( idslct, desc6, DialogModes.NO );
I'll definitely take a look into that! I didn't even know Scripting existed until you told me about it today, so I don't know how to implement the code above yet, but I hope I'll learn soon enough. Thank you very very much for your help today!
Copy link to clipboard
I'm not sure if I am understanding your procedure correctly or not, however, in the Timeline panel there is an option to convert layers to a frame animation which may fast-track this process for you if you are trying to manually create the frames via an action frame by frame. Create frame animation button then make layers from frames menu option.