Activity › Forums › Adobe After Effects › paste layer at playhead
-
paste layer at playhead
Posted by Peter Jones on July 31, 2017 at 10:59 amFor some reason my latest update 14.2.0.198 doesn’t paste layer at playhead
When I copy a layer within the composition timeline it pastes it back at the same time as the copied layer even when I have moved the time to the new in point!
When I create a new null object or colour solid it pastes correctly at the playhead time.
In preferences I have set the Create Layers at Composition Start Time OFF
I am sure there used to be an Add New Layer at Playhead preference?
This really slows down my workflow
Also dragging still media on to the composition places the layer at a random time! Whereas overlaying or Inserting media footage places it at the correct Playhead!
There is no logic to this!
senior editor
Adam Leverett replied 7 years, 11 months ago 4 Members · 9 Replies -
9 Replies
-
Walter Soyka
August 1, 2017 at 3:14 pmI know this doesn’t directly answer your question, but Ctrl+V (Windows) or Cmd+V (Mac) immediately followed by [ will get you what you need. That open-square-bracket keystroke will move the selected layers’ start points to the current time indicator. (Likewise, close-square-bracket will move the selected layers’ end points to the CTI.)
Walter Soyka
Designer & Mad Scientist at Keen Live [link]
Motion Graphics, Widescreen Events, Presentation Design, and Consulting
@keenlive | RenderBreak [blog] | Profile [LinkedIn] -
Roei Tzoref
August 1, 2017 at 3:42 pm[Peter Jones] “For some reason my latest update 14.2.0.198 doesn’t paste layer at playhead
“
this is the normal behavior. a layer is always pasted on the same place in time you copied it from, no matter where the playhead is. if you want “paste in place”, use the shortcut Ctrl+Alt+V on Windows. or alternatively use the method walter suggested, or simply drag the layer holding Shift key to snap it to the playhead.[Peter Jones] “When I create a new null object or colour solid it pastes correctly at the playhead time.
“
this is a different thing. creating new layers is controlled by the preference “create new layers at composition start time” which default to ON.[Peter Jones] “Also dragging still media on to the composition places the layer at a random time! Whereas overlaying or Inserting media footage places it at the correct Playhead!”
this too is related the the feature “create new layers at composition start time” and not related to copy pasting.Roei Tzoref
After Effects Artist & Instructor
♫ Ae Blues Tutorials -
Adam Leverett
August 28, 2018 at 10:33 amOne question comes to mind…let’s say you’re pasting 3 layers that don’t all start at the same time. Is there a way to do the pasting and then the ‘]’ or ‘[‘ key as you suggested, plus perhaps another key that would maintain those differences in start times? I’m guessing no but thought I’d ask. 🙂
-
Walter Soyka
August 28, 2018 at 5:00 pm[Adam Leverett] “One question comes to mind…let’s say you’re pasting 3 layers that don’t all start at the same time. Is there a way to do the pasting and then the ‘]’ or ‘[‘ key as you suggested, plus perhaps another key that would maintain those differences in start times? I’m guessing no but thought I’d ask. :)”
As Roei suggests, “Paste layers at current time” is the way to go! It doesn’t show up in the menu, but you can do it with a simple hotkey:
Ctrl+Alt+V (Windows)
Command+Option+V (macOS)Walter Soyka
Designer & Mad Scientist at Keen Live [link]
Motion Graphics, Widescreen Events, Presentation Design, and Consulting
@keenlive | RenderBreak [blog] | Profile [LinkedIn] -
Adam Leverett
August 29, 2018 at 8:37 amYes, but what I meant was, if you select (for example) 3 clips that all slightly begin at different times, copy them, then paste them somewhere else, then hit ‘[‘ or ‘]’, ALL of the clips will start or end at the playhead. It will not maintain the different start points. Was just wondering if that was possible…not sure if I’m explaining clearly.
-
Walter Soyka
August 29, 2018 at 10:39 am[Adam Leverett] “Yes, but what I meant was, if you select (for example) 3 clips that all slightly begin at different times, copy them, then paste them somewhere else, then hit ‘[‘ or ‘]’, ALL of the clips will start or end at the playhead. It will not maintain the different start points. Was just wondering if that was possible…not sure if I’m explaining clearly.”
Correct, there is no shortcut (I know of) to move layers on the timeline and retain their relative temporal positioning. However, if you’re going to copy and paste anyway, you can copy, move the current time indicator to where you want the first layer to begin, then use “paste at current time” as described above.
If you super-need a keyboard shortcut for this, I wrote a quick script to do it. Here’s the code:
// quick script to move the selected layers in time to the current time indicator,
// preserving their temporal relationship. The clip with the earliest start will begin
// at the CTI, and the others will retain their relationship
// written by Walter Soyka, first published at https://forums.creativecow.net/thread/2/1123156if (app.project.activeItem instanceof CompItem && app.project.activeItem.selectedLayers.length > 0) {
app.beginUndoGroup("Move selection start points in time");
var currentTime = app.project.activeItem.time;// find the earliest in point among the selection
var earliestStartTime = app.project.activeItem.selectedLayers[0].startTime;
for (var i = 1; i < app.project.activeItem.selectedLayers.length; i ++) {
if (app.project.activeItem.selectedLayers[i].startTime < earliestStartTime) {
earliestStartTime = app.project.activeItem.selectedLayers[i].startTime;
}
}// figure out the offset between the earliest start time and the current time
var timeOffset = currentTime - earliestStartTime;// move all selected layers by the time offset (so the earliest layer starts at the current time, and the others
// keep the same relative timing
for (var i = 0; i < app.project.activeItem.selectedLayers.length; i++) {
app.project.activeItem.selectedLayers[i].startTime += timeOffset;
}
app.endUndoGroup();
}Here’s what to do:
1. Copy and paste this code into a text editor, and save it as 01 keen-MoveSelectionStartPoints.jsx in your scripts folder.
2. Relaunch After Effects.
3. Edit > Keyboard Shortcuts
4. Type “01 keen” in the search filter box (located on the left underneath the virtual keyboard).
5. Locate and select 01 keen-MoveSelectionStartPoints.jsx in the list.
6. Click into the Shortcut space (next to the Command) and press Ctrl+Alt+Shift+[ on Windows, or Cmd+Opt+Shift+[ on a Mac.
7. Click the OK button to save your new shortcut.
NOTE: Ae’s keyboard shortcut system uses 19 “script slots” that are assigned by sorting the script files alphabetically. We’re putting “01” at the front of the name to force it to the front of that list. If you were to add a “00” script later, then that new script would take the first script slot and respond to the shortcut. If you want to add a number of scripts to different shortcuts, keep this in mind and use the numbering system carefully to enforce the order you want to keep the assignments from bouncing around.
Walter Soyka
Designer & Mad Scientist at Keen Live [link]
Motion Graphics, Widescreen Events, Presentation Design, and Consulting
@keenlive | RenderBreak [blog] | Profile [LinkedIn] -
Walter Soyka
August 29, 2018 at 10:50 amAnd here’s a quick modification to do the same thing with END points instead of start points.
(I’d suggest naming this 02 keen-MoveSelectionEndPoints.jsx for consistency.)
// quick script to move the selected layers in time to the current time indicator,
// preserving their temporal relationship. The clip with the latest end will end
// at the CTI, and the others will retain their relationship
// written by Walter Soyka, first published at https://forums.creativecow.net/thread/2/1123156if (app.project.activeItem instanceof CompItem && app.project.activeItem.selectedLayers.length > 0) {
app.beginUndoGroup("Move selection end points in time");
var currentTime = app.project.activeItem.time;// find the earliest in point among the selection
var earliestStartTime = app.project.activeItem.selectedLayers[0].startTime;
for (var i = 1; i < app.project.activeItem.selectedLayers.length; i ++) {
var currentStartTime = app.project.activeItem.selectedLayers[i].startTime;
if (currentStartTime < earliestStartTime) {
earliestStartTime = app.project.activeItem.selectedLayers[i].startTime;
}
}// figure out the longest duration so we can make this work on END points instead of the start point
var longestDuration = app.project.activeItem.selectedLayers[0].outPoint - app.project.activeItem.selectedLayers[0].inPoint;
for (var i = 1; i < app.project.activeItem.selectedLayers.length; i++) {
var currentDuration = app.project.activeItem.selectedLayers[i].outPoint - app.project.activeItem.selectedLayers[i].inPoint;
if (currentDuration > longestDuration) {
longestDuration = currentDuration;
}
}// figure out the offset between the earliest start time and the current time
var timeOffset = currentTime - earliestStartTime - longestDuration;// move all selected layers by the time offset (so the earliest layer starts at the current time, and the others
// keep the same relative timing
for (var i = 0; i < app.project.activeItem.selectedLayers.length; i++) {
app.project.activeItem.selectedLayers[i].startTime += timeOffset;
}
app.endUndoGroup();
}Walter Soyka
Designer & Mad Scientist at Keen Live [link]
Motion Graphics, Widescreen Events, Presentation Design, and Consulting
@keenlive | RenderBreak [blog] | Profile [LinkedIn] -
Adam Leverett
August 29, 2018 at 11:22 amWow, that’s amazing, thank you! I love getting to know AE more and more. All the best.
Reply to this Discussion! Login or Sign Up