Copy link to clipboard
Copied
I'm animating in photoshop.
I have all the frames highlighted, and would like to set each frame duration on 2's.
When I adjust the size of one of them, only that one frame gets adjusted, but not all the other frames that are highlighted.
Thank you.
This can be done with a script. Initital state:
#target photoshop
s2t = stringIDToTypeID;
(r = new ActionReference()).putProperty(s2t('property'), p = s2t('targetLayersIDs'));
r.putEnumerated(s2t('documen
...
Copy link to clipboard
Copied
With all of the frames selected, just change the "seconds" dropdown value in one frame, the others should all change to the same value.
Copy link to clipboard
Copied
I can't seem to find where the "seconds" dropdown value is.
Copy link to clipboard
Copied
Oh wait, I found the dropdown, but only in the frame timeline. Is it not possible to adjust the frame duration like this for the video timeline mode?
Copy link to clipboard
Copied
Select your first frame, then shift select the last frame.
The timing drop down in on the bottom right of the frame you first selected.
Copy link to clipboard
Copied
Thank you.
But is there a way to do this in the Video Timeline mode?
Copy link to clipboard
Copied
No there isn't. Premiere Pro would be a better program to do this in if you want advanced controls.
Copy link to clipboard
Copied
This can be done with a script. Initital state:
#target photoshop
s2t = stringIDToTypeID;
(r = new ActionReference()).putProperty(s2t('property'), p = s2t('targetLayersIDs'));
r.putEnumerated(s2t('document'), s2t('ordinal'), s2t('targetEnum'));
var selectedLayers = executeActionGet(r).getList(p),
layers = [],
frameRate;
(r = new ActionReference()).putProperty(s2t("property"), s2t("time"));
r.putClass(s2t("timeline"));
(d = new ActionDescriptor()).putReference(s2t("null"), r);
(d1 = new ActionDescriptor()).putInteger(s2t("seconds"), 0);
d1.putInteger(s2t("frame"), 0);
d.putObject(s2t("to"), s2t("timecode"), d1);
executeAction(s2t("set"), d, DialogModes.NO);
(r = new ActionReference()).putProperty(s2t('property'), p = s2t('frameRate'));
r.putClass(s2t('timeline'));
frameRate = executeActionGet(r).getDouble(p);
for (var i = 0; i < selectedLayers.count; i++) {
(r = new ActionReference()).putIdentifier(s2t('layer'), selectedLayers.getReference(i).getIdentifier());
(d = new ActionDescriptor()).putReference(s2t('null'), r);
executeAction(s2t('select'), d, DialogModes.NO);
(d1 = new ActionDescriptor()).putObject(s2t("resetTime"), s2t("timecode"), new ActionDescriptor());
executeAction(s2t("moveOutTime"), d1, DialogModes.NO);
(d = new ActionDescriptor()).putInteger(s2t("seconds"), 2);
d.putInteger(s2t("frame"), -1);
d.putDouble(s2t('frameRate'), frameRate);
(d1 = new ActionDescriptor()).putObject(s2t("timeOffset"), s2t("timecode"), d);
executeAction(s2t("moveOutTime"), d1, DialogModes.NO);
}
Copy link to clipboard
Copied
Thank you!
Copy link to clipboard
Copied
Im trying to do the same but go from 12fps to 8fps and have all the frames have a length of 1. how would I edit the script to do that?
Copy link to clipboard
Copied
The script works if you use the video timeline mode. I admit that it may not handle all possible cases, since I only considered the situation described by the author of the topic.
Show a screenshot of your timeline, perhaps this will help to understand what the problem is.
Normally, it is enough to change this line of code and set the desired number of seconds for the selected frames:
(d = new ActionDescriptor()).putInteger(s2t("seconds"), 8);
Copy link to clipboard
Copied
Hi! I really don't know how to put the lines of code in photoshop. Is there a jsx. file i could use? Would make it much simpler
Copy link to clipboard
Copied
Hi! I really don't know how to put the lines of code in photoshop. Is there a jsx. file i could use? Would make it much simpler
By @micha�l_4585
Adobe Photoshop Script Installation Location
Scripts are installed in the /Presets/Scripts folder
Mac OS Example:
Find more inspiration, events, and resources on the new Adobe Community
Explore Now