Batch replace PSD Layers
Right now, we're able to see each PSD layer as a single file. This feature makes imposible to batch replace layers, with another version of the PSD file.
What I suggest is to enable this option to improve the interoperability between Photoshop and After Effects.
This could be the workflow:
Step 1: Select the desired layers to replace.
Step 2: Right click on one of them and select the 'Batch replace layers' option.
Step 3: After Effects will ask you to import the new PSD file (as when you replace any other file).
Setp 4: Then a two-columns panel will be opened. Here you will be able to match & replace the selected layers if they have the same name, and also import or ignore the ones that doesn't match with you selection.
[I had to split my comment because it was too long to post it - this is part 4/4]
In commercial projects it's common to get multiple file versions from clients later on in the process when lots of layers have already been animated.
Clients often don't understands why this manual time consuming process of footage replacement takes so long. They expect you to execute the changes quickly because all animations are already done.
It's a shame that Adobe does not yet provide a simple solution to this workflow killer.
All 3 workarounds aren't comfortable, it's a time consuming process and error prone.
Workaround 3 proves that it should be easy to implement a feature to AE to batch change filepathes and filenames including all associated footage layers of a PSD file.
From a programming perspective I think this should be a no brainer to implement and I'm wondering why this functionality does not exists?
My Feature Requests:
1. We need a feature to replace multiple selected footage items at onces without a dialog how to import them.
They should import in the same way as the items they should replace. This only needs to work with Photoshop layers which originates from one file.
If multiple footage items from different files are selected this feature could not work and would be inaccessible.
2. We need a feature to replace all footage items from one Photoshop file with another including all Photoshop layers footage items.
Simply saying change the current path and filename from e.g."c:\Projects\ReallyAdobe\Footage\File_V01.psd" to a new path and filename e.g. "c:\Projects\ComeOnAdobe\Footage\File_V02.psd"
Replace as many footage items (PS layers) as possible by matching internal PSD LayerID and rename footage items properly by layer names of PSD file. Ignore all mismatches e.g. deleted layers, new layers ...
This would be the easiest way to implement it. The user has to deal with all the consequences of unsuccessful matches and needs to replace these manually by itself.
If Adobe wants to do it properly keep on reading.
If Photoshop layers got deleted:
Option 1: keep the one to be replaced footage item as it is. Do not delete it or change its path so it doesn't get offline and stays intact.
Option 2: change it's path so it gets offline and to get a fast visual feedback in AE Project for the user.
Option 3: delete it from AE project.
If new Photoshop layers exists in PSD file import them and all Photoshop folders as compositions in a seperat folder e.g. "new Content of File_V02.psd" do not import already existing and replaced footage items (PS layers) again to avoid double footage items.
create a detailed text file report e.g. ReplacedFootageReport_[FILENAME].txt about succesfully and error free replaced footage items, deleted Photoshop layers and new content in PSD file, inform about succesfully replaced footage items which layer size and or position has changed, provide old and new position values for X Y coordinates as well as their offset.
3. It would also be a great addition to have a feature to get back the original position data of a PSD Layer as it is in the PSD file after the layer has been moved/repositioned in AfterEffects.
For example: right click a layer in a composition -> Context Menu -> "Reset/Move layer to original position as it is in Photoshop file"
further options for already animated layers could be: offset all keyframe animations to new position. The timeline curser and the corresponding current keyframe value could be used to calculate the animation offset.
Sorry for my ultra long post but this cumbersome workflow drives me crazy - It's time for a change to the good.
I hope my detailed workaround discriptions are of some help for other users facing similar issues.
I'm greatful if someone knows better solutions and workarounds. If so please let me know.
[I had to split my comment because it was too long to post it - this is part 3/4]
Workaround 3: (the hacker/cracker one but without trust for commercial projects)
1. Save your AE project as "Save a Copy as XML..." in XML format (.aepx) instead of the regular binary format (.aep). e.g. "Project.aepx"
2. open your "Project.aepx" file in a text editor like Notepad or Wordpad.
3. Use the "Find and Replace" command of your text editor to find all sections of text including the path of "File_V01.psd" e.g. "c:\Projects\ReallyAdobe\Footage\File_V01.psd" and replace all with path of File_V02.psd e.g. "c:\Projects\ReallyAdobe\Footage\File_V02.psd".
(What we are doing here is altering the AfterEffects XML project file with a text editor to update the path and filename from File_V01.psd to the new File_V02.psd).
4. Still in text editor save as your altered AfterEffects XML project file to e.g "Project_Path_Updated.aepx" as plain text or as it was opened by your editor - do not change original text format or do any fileformat conversion.
5. Open "Project_Path_Updated.aepx" in After Effects.
6. From now on your AE project file is in XML format (.aepx) and not in binary format anymore! You may continue to work with that XML project file (.aepx) but it has pros and cons.
7. To change your AE project file back to binary format: save your AE project with "save as" command.
8. Attention: AfterEffects does not allow a change back from .aepx to .aep natively by filetype dropdown menu.
9. But on a windows operating system just remove the "x" from "Project_Path_Updated.aepx" to "Project_Path_Updated.aep" while still in save as dialog and then click save.
10. Your AfterEffects project file is now saved in binary format. I havent't tested this on a Mac OS and I don't know if it's working there too.
11. You may open that .aep again in a text editor for verification that it's in binary format now. (if you can't read it in a human sense and see lots of cryptic characters it's binary)
Result of this Workaround:
- The same acceptable and automated results as workaround 1 provides.
- The difference to Workaround 1 is that your AE project footage files now links correctly to File_V02.psd. No file naming confusion anymore! Filename versioning keeps intact.
The enormous benefit of this Workflow is the correctly linked filename File_V02.psd regarding the included content.
The drawback is: Be warned, you altered your AE project file in a text editor!
Although everything seems to work fine, AE project file corruption may have occurred somehow.
It could be later on that you face ugly consequeces, crashes or unknown errors - who knows?
Because of this drawback I can't recommend this Workflow for commercial projects. The risk losing a project is way too big.
I don't know if this workaround is safe or not - only Adobe knows. It would be great to know Adobes opinion about it...!?
[I had to split my comment because it was too long to post it - this is part 2/4]
Workaround 1 (the fastes one but with drawbacks):
1. Close your After Effects project.
3. make sure File_V01.psd and File_V02.psd are at the same file location/folder and AE still links to File_V01.psd
4. Rename File_V01.psd to File_v01_OLD.psd
5. Rename File_V02.psd to File_V01.psd (so that AE is using that file when opening the project again).
6. Open you AfterEffects project.
Result of this workaround:
- All layeres which matches the internal PSD LayerID gets properly replaced but new position values of layers inside the photoshop file do not update in your compositions (but that's to be expected and ok).
- Renamed Layers in the PSD File gets updated and renamed correctly in AE if internal PSD LayerID matches.
- Additional new layers from PSD files needs to get imported manually and as a composition if "Retain Layers Size" was used in the first place to get the correct layer position from the PSD File.
- Deleted layers in the PSD File are offline in AE (but that's to be expected and ok).
- Moved layers in Photoshops layer stack gets replaced properly because of the internal PSD LayerID.
The biggest problem and disadvantage of this workaround is that your AE Project still links to filename File_V01.psd which actually includes the content of File_V02.psd.
This is file naming confusion at it's best! Versioning of files to keep track of everything, which is an absolute requirement in professional postproduction environments, is broken with this workaround.
Workaround 2 (the most time consuming but controlled one):
1. Import the new and updated file File_V02.psd into your project as an additional new composition. Import it exactly the same way you did with File_V01.psd.
2. Now replace with the alt+drag on a layer method every used footage file in all your compositions manually with the newly imported footage files from File_V02.psd.
3. Clean up project (compositions), delete newly created but irrelevant compositions which got created by "Import as Composition" of File_V02.psd.
4. Clean up project (footage), delete old unused footage items (PS layers) manually or with command File -> Dependencies -> Remove Unused Footage.
Result of this workaround:
Ultra time consuming process and for large and complicated projects with lots of precomps often impossible and error prone.
But this workaround provides the best control about what is beeing replaced and how. Filename versioning keeps intact.
[I had to split my comment because it was too long to post it - this is part 1/4]
This feature request is urgently needed!
Consider the following scenario:
Client sends you a layered Photoshop file (e.g. File_V01.psd with 50 layers) for some animations to be done by you.
You import the file as a composition and do all the animation work.
Now your client sends you an updated version (e.g. File.V02.psd) with some graphical changes to existing layers, some additional new layers, some layers got renamed, some layers got deleted and some moved up or down in the layer stack.
Now the mess beginns - Thanks to Adobe for missing functionality in AE:
In After Effects you can't simply relink the 50 PSD layers from File_V01.psd to File_v02.psd in one go!
There is no simple way to replace/relink File_V01.psd with File_V02.psd incuding all layers to update automatically.
You would need to do the "Replace Footage" command for all 50 layers one by one and select each time the desired layer and how to import it.
This is super time consuming and often hard to guess which layer is the correct one to import/replace because there is no visual representation only layer names.
Layers in Photoshop often aren't named properly by graphic designers or have the same name when layers got duplicated.
There are workarounds to tackle the problem but none of them is satisfying.