CompsFromSpreadsheet Demo Video This script has a dockable UI, click for an installation video tutorial

Makes multiple versions of your compositions using information from a spreadsheet or database. The script goes through your spreadsheet line by line, making a new version of your comp by replacing footage items and adding text supplied by the spreadsheet automatically.

Download
$49.99 Single User (Add to cart to buy license)
The free trial is the full version of the script which is
fully functional without a license for 2 weeks.
View Cart

CompsFromSpreadsheet Compatible with After Effects CS3Compatible with After Effects CS4Compatible with After Effects CS5Compatible with After Effects CS5.5

Version: 3.02   Sign up to be notified by email when a new version is posted

Automated Versioning of your Comps

The compsFromSpreadsheet script allows you to quickly generate copies of your master comp with data from your spreadsheet used to update text or replace layers.


Getting Started


Before you can use the script you need to setup one or more template compositions to receive data from your spreadsheet. There are three different ways your template comp can be updated from the spreadsheet

  • Text layers that begin with ^(shift 6) will be able to receive data from the spreadsheet as the text for that layer.
    If you need a line break in a text layer DO NOT put a line break in your spreadsheet cell as this will cause the script to think it is the end of that line of data. Instead use <br> and the script will replace that with a newline in your text layer
  • If you have a text layer named ^date it will receive todays date (great if you’re generating slates)
  • If you have a non-text layer in your comp that begins with #, it will be replaced by the project item named in your spreadsheet
  • If you have a non-text layer in your comp that begins with >, it will be replaced by a file. The script will import a file based on the path in your spreadsheet, then that imported file will replace the layer. If you have the same file referenced more than once in your spreadsheet, the script will only import it once and use that item for every other time the file is referenced

If you are running the script as a dockable panel, there will be buttons to automatically create either a text, layer replace, or import object in the currently selected comp. When you create the layers this way a window will pop up asking for the name of the layer, do not put in the ^ > or # in this window as After Effects will do this for you.

So if you click on the button to create text object and type “title” in the window, After Effects will create a text layer named “^title” in the currently selected comp.


Setting up your Spreadsheet

The first line of your spreadsheet must contain the names for each column.
When you run the script it will take each of these column names and and allow you to connect that column with elements in your template comp.

After you do this the script will go through the spreadsheet line by line, each line of the spreadsheet will become a new copy of one of your template comps, with data from that line of the spreadsheet updating the layers in the template comp copy that were targeted to receive it.

If you have set up more than one composition to receive data, you will need to have a column in your spreadsheet that holds the name of the comp to be used as the base. In the above sample spreadsheet the column ‘Core Spot’ will be used, so when the script is run, for the first line of data it will create a copy of the comp named “spot 1″ to be used for that line.

Very important: Before After effects can read your spreadsheet, it needs to be converted into a tab-delimited text file (most spreadsheet programs do this easily). This is a universal text format that will allow After effects to read in your data and organize it by rows and columns.

When you run the script be sure to point it to this newly created text file and not your spreadsheet as After Effects cannot read any spreadsheet format (maybe I should call the script compsFromTabDelimitedTextFile).

A word about Commas

If you have commas in your data, they will probably get stripped. Why? I believe it is a bug in Excel. There are two major types of delimited text documents, tab-delimited (which we are using) and comma delimited text. If using a comma-delimited format, commas are used to separate columns, if there happens to be a comma in your data, the program will need to strip them out prior to saving as they will be falsely interpreted as the end of that column.

If saving as tab-delimited, tabs would likewise need to be stripped out from your data. Commas are fine and should not be removed, as they are NOT a separator. Sadly, Excel still strips out commas, even when you are saving as a Tab-Delimited text file.

To overcome this limitation, if you need a comma in a text field write <c> and the script will replace that with a comma.


Running the Script


compsFromSpreadsheet needs to know which comps in your project have been setup for use with the script.

When you run the script a window will pop up with all the comps in the project in the left column . Double click on the comp names that are to be used to move them to the right “selected comps” column. Click continue when you have added all the comps to be used to the “selected comps” column.

If you only have one comp this window is bypassed.

Tip: If you put all your comps in a folder called TEMPLATES the script will bypass this window and assume that the comps in that folder are to be used.


Synching Column Data to your Comp


When the script reads the first line of your spreadsheet, it needs you to tell it where the data from each column should go in your comp. The Field Init window opens. Each column name from the first line of the spreadsheet appears with a dropdown box underneath.

The dropdown box links the data from that column in the spreadsheet to elements in your template comps. The dropdown box contains the names of all the layers that were set up earlier to receive data (remember, the text layers that started with ^ will receive the data from this column, layers with a # will be replaced with the project item named in this column, and layers with > will be replaced by files imported from the location specified in the column.)

If a column name is the same as an element name in one of your comps, that will be automatically selected in the dropdown i.e. If you have a column in your spreadsheet “phone” and a text layer in one of your template comps named “^phone”, that item will be automatically selected in the dropdown box. If however, your text layer is “^phone number” it will not be selected in the dropdown box.

If you have more than one comp to be used you will need to have a column in your spreadsheet with the name of the comp to be used for that line. Select ‘COMP’ from the dropdown box of the column that holds comp names, if you only have comp to be used ‘COMP’ will not appear in the dropdown as the script will already know which comp to use.


Importing Files Via Spreadsheet

You can have layers in your comps be replaced by files that are not in your project.

Any layer tht begins with > will be replaced by a file imported from the path specified in your spreadsheet. To get the proper path format of a file click on the “Get File Path” button located in the main compsFromSpreadsheet window. When you click this button a window will pop up asking you to navigate to your file; when you click ok the proper path to this file will appear in a window that you can copy and then paste into your spreadsheet.

When the script runs it will import the file from the location specified in the spreadsheet and replace the layer. If you have the same file more than once in the spreadsheet it will only be imported once, and that copy will be used each time that particular file is referenced.


Naming Comps


The next step you need to tell the script how to name the newly created sequence, and where you want the rendered sequences to go. The default naming convention is line number, so the name of the very first Comp is “2″ ( because line 1 holds the column names). and the next comp created is called “3″ and so on until it reaches the last line of the spreadsheet.

Alternately you can have the script keep the name of the original template comp and append a number to the end. so the first time the script creates a comp from “spotA” it is named “spotA_1″, next line that uses that comp will name the new comp “spotA_2″

Lastly, you can choose to get the name from one of your spreadsheet columns. So if you choose “FROM SPREADSHEET | name” from the dropdown, the comp will get its name from the ‘name’ column of the spreadsheet.


Render Settings


Every comp created by the script will be placed in the render que using the default settings for your render que. It will default to saving the renders in the same directory as your project.

If you click the “Render Settings” button (on the “field init” window) you can select which render setting and output module to use for the script and where to put the rendered files. If you check the “Remember Settings” box these settings will be used every time tyou run compsFromSpreadsheet; if not checked, these settings will be used in the current run.


Settings


The settings button on the main UI panel allows you to change the default symbols the script uses to target layers in your Comps.

You can also set the number of columns that appear in the field init window.

And you can also change render settings from here.


Conclusion

The script will run through your data line by line. For each line it will create a new copy of the template comp, put it in a folder called “compsFromSpreadsheet”, update any target layers in that comp with data from the current line, finally, the comp will be placed in the render que using render que defaults and set to render in the same directory as the project (unless you set a different render location in the field init window.

Hit the render button and all your newly created comps will render (go out for a pint while it renders!)


Dockable Panels

The script can either be run as a dockable panel or as a traditional script.

If run as a dockable panel, there will be buttons in the panel to create target text or layer objects to be used with the script. Clicking “Run compsFromSpreadsheet” will bring up the comp select window

If the script is run the traditional way (by accessing it through file – scripts), you will be taken to the comp select window immediately, bypassing the window shown here.


Licensing/Upgrades

Starting with version 3.0, CompsFromSpreadsheet is now a licensed product.
Upgrade notice: If you previously bought CompsFromSpreadsheet (before March 2011) you can receive a discount code equal to the same amount as you paid for it.
To request this discount code please go here.


Version History

  • v3.02 – Oct 2011
    • Fixed orphan target layer bug: previously, when you were connecting spreadsheet columns to target layers in your comp, if you had a target layer not connected to a column, the script would not complain, but when it came to the unlinked target layer it would have an error and stop. Now the script will warn you if you have a target not connected to a column. You can choose to go back and connect the target to a column, or ignore in which case the script will turn of any targeted layer not connected to a column.
    • Fixed import layer bug: previously, if you had a layer name or path name misspelled in your spreadsheet, the error message would not show you the misspelled name, now it does.
  • v3.01 Added error handling when importing corrupted files – July 2011
  • v3.0 – Feb 2011
    • Now allows you to have the script import files via a spreadsheet
      column
    • You can have the system auto select the column for comps to be used by changing the column name to ‘comp’.
    • User-definable special characters.
    • Inline help file
    • Many bug fixes
  • v2.2 – Aug 2010
    • If a cell in the spreadsheet has <br>
      when the script is run it will replace the <br>
      with a carriage return.
  • v2.12 – June 2010
    • Now arranges the field init into multiple rows if you have more that 10 fields (and that number is changeble through a “layout” button)
  • v2.11 – May 2010
    • Small bug fix to new separate folder feature, now correctly places extension after frame number.
  • v2.1 – May 2010
    • You can now choose to have renders go to separate folders, so if you are rendering a tiff sequence for example, each comp will be rendered to an individual folder.
  • v2.01 – May 2010
    • Added file extension to output file name in render queue.
  • v2.0 – May 2010
    • Added ability to insert footage items.
    • Added dockable UI.
    • Blessed for CS5.
  • v1.22
    • Fixed a small bug that prevented the script from running on some non-english systems.
  • v1.21
    • Fixed a bug in the program that caused the script not to run in certain situations. Previously, the script would try to create a folder called “Renders” in the same directory as your project to put your rendered files. The script no longer does this. Now there is a button in the field init window which allows you to designate a folder for renders. If you do not choose one, renders will go wherever your render que is set to put them.
  • v1.2
    • The comp select window now uses scrolling lists to accommodate projects with a lot of comps. The way it works now is there is a list of all comps in the project on the left side of the window. Any comp you want to use, double click on it and it will go the the list on the right. The list on the right is all the comps to be used by the program.
    • If you create a folder called ‘TEMPLATES’ the comp select window will be bypassed and the program will assume that all the comps in this folder are to be used.
  • v1.1
    • Added the ability to choose the naming convention of new comps. Previously the comp was always named the line number of the database, now you can choose if you want line number, original comp name (with an incrementing number), or sync it up with a column in your spreadsheet.
    • Fixed a bug in the new version check.The function is only supposed to run once every 10 days, but the function checked every time the script was run. This has been corrected.
  • v1.0 Initial Release

Last updated October 12th, 2011
22,992 views
Tags: , , , , , , , , , , , ,

Share      

About the author

Mike Cardeiro has been creating graphics with after effects since 1997. He has been programming computers since the early 80's and when Adobe introduced scripting into the mix he jumped in. Mike is currently employed at an ad agency in Philadelphia as an animator/designer. View Resume

Pingbacks

102 Comments

  • I have a multiple comp After effects project. I want to have variable fields in about 10 comps then rendered from the main comp.

    Can’t get demo to work. Is this possible?

    Will there also be a new release soon?

  • Hi Mike…

    Been working thru the script and doing various tests. Looking very good.
    I’m trying to do some automation of formatting for spot encoding for distribution.

    to make it work, there are some things you have that require user input that I’d like to automate simply by including it as additional columns of info in the spread sheet.

    Is this possible or do you offer a code editable version for sale so I can use your script as a basis for further in house development?

  • Hi Michael,

    Just tried to undock the compFromSpreadsheet script.. and it crashes After Effects..

    it’s not the end of the world.. just thought you would like to know

    ALex

  • Hi Michael,

    I’ve got a problem… the script cannot find my layers..

    I run compsfromSpreadsheet, choose my template comp, pick my .txt file. It lines up perfectly with all my Columns.

    I hit return. I immediatley get.. Layer Name Error.. Pick a layer line 2 has an error. there is no item in the project named Indians.mov

    However I can scoot down the list and pick out Indians.mov..

    This continues through the spreadsheet…

    Any ideas ??? and help..

    I’ve got 78 comps to make up…

    cheers

    Alex

    • Hi Michael,

      Thanks for your help.. you were right.. I had spaces at the end of a lot of the lines.

      This is quite hard to spot in excel.. I went back into my project and replaced every space with an underscore..

      then went into textedit and did find and replace on spaces..

      and it worked a treat..

      Wonderful script, bit fidly to set up.. but well well worth it..

      thanks again

      ALex

      • You could also in your text editor replace all the wrong names with the correct names, so if in your text doc you had “titleA.mov ” but the item in your project is named “titleA.mov” (no extra space at the end) just do a global replace “titleA.mov ” to “titleA.mov” (without the quotes of course.

        Glad you like the script, and it is fidly and confusing to set up, but wayyyy better than doing it by hand!

  • Hey Guys,

    I’m new to u people. I came to know about this plugin 2 days before only. It’s very very useful to me to do my work easily. one small problem i’m facing in this. I have created the “Import Object” soild layer with “290 * 290″ Pixel . If i want my selected image with any pixel to fit in it means, What i have to do?

    I’m expecting your reply to do a needful.

    Thanks a lot, Great Plugin Mike

    Cheers,

    -Daya

  • Hey guys

    Do you know of any Vimeo channels or links where I could see what others have done creative wise with this plugin or the multiple comps idea in general..

    Great job mike,
    Cheers

    • Hallo again I have 2 questions sure easy for you!
      1st: Can i have TGA sequences in my BIN ready to replace the # layers ?
      for eample xxxx_[00000-00225].tga

      2nd: Is there any limitation concerning the number of characters in the excel file ?

      Thanks alot great job!!

      Nikitas

  • I have a versioning project. I will need to render out 2500 vsns all based on a master comp.

    The only thing changing will be the images (20 per vsn)

    Will this script hold up under such a massive amount?

    Thanks

    Oliver

    • Wow, 2500…not sure, my guess is it’s gonna choke.

      Your best bet would be doing multiple runs, so you break your 2500 line spreadheet into 5 separate 500 line spreadsheets and you run them one at a time (hopefully 500 comps won’t choke it).

      Certainly if you are running cs5 or higher you will get better results. Experiment on a copy of your project and see where the choke point is.

      Even running 5 separate passes will be better than doing it all by hand!

  • Great tool! I need one more function to make this work for me. Is there any way to use super script on characters like the ™ or ® ?

    Thanks,

    -Ron

  • hi,

    Is there a way to automatically apply the lenght of the audio or a lenght entered in the spreadsheet (in seconds or mm:ss) to the duration of the composition ?

    I have the same composition to process many times but each one will have a different audio and the total diuration of the comp must be the one of the audio.

    anybody can help on that ?
    best regards,
    thank u !
    stephane

  • Hi !
    Is there a way to avoid appearing of the window popup ? I want the script to work into a silent mode.
    How to use script in commandline with AErender.exe ?

    Thank you

    • I don’t know of a way to launch a script from the command line. If there is a way to launch a script from the command line then I could make a silent mode (you’re not the first person to ask for this).

      I think the ball is in Adobe’s court on this one (unless there is some functionality I am not aware of).

  • Is there a way to use images as well as text? This tool has been saving me so much time but now I am working on a project where I need to replace images as well.

    • Absolutely, you can either use items in your project, or you can use a path and have the script import the file for you. Here’s how to do it.

      =========
      To replace layers with items already imported into your project:

      Create a solid in your template comp and put a # before the name i.e. #layer

      In your spreadsheet have a column named layer that lists the name of items in your project to replace that layer.

      So if a line of your spreadsheet had dude.jpg in the layer column, the script will replace the solid named #layer with the dude.jpg from your project.
      =========

      =========
      To import a file and have the import replace a layer:

      create a solid in your template comp and put a > before the name i.e. >import

      In your spreadsheet have a column named import that lists the path of items to be imported and replace that layer.

      To get the proper path click on the “Get File Path” button from the compsFromSpreadsheet window and navigate to the file you want to import. A window will popup with the properly formatted path to that file so you can copy it and paste it into your spreadsheet.
      =========

  • Hi!

    This is an amazing script. I have been trying the demo out since this morning and it does some amazing things.
    However, the task at hand requires handling footage in varying lengths, and applying it to the same composition. Since composition length is pre-determined, some comps are too long and some are too short.
    Is there any way to workaround this issue? I have several thousands clips to process and this tool would be a real life saver.

    thanks!
    – Guy

  • The single licence is for one workstation?
    What if I upgrade to a new workstation and place the script again?
    Thanks

  • GREAT script !! GREAT JOB!!
    but I need your help

    I am updating 10-15 Comps which are part of a “MASTER COMP”

    Every time i update the comps (text and graphic) they get a diferent comp name
    and unfortunatelly DO NOT update the “MASTER COMP”.

    Maybe I am missing something… or this is not my case.

    THANKS

  • Wow. What an amazing script. Thanks for making this and thanks for continuing to improve it!

    Question: I have a situation where I want the script to ignore specific rows. Using one line but ignoring the next four, then using the next line and ignoring the next for after, etc. Is there some way to put a character or some identifier on a spreadsheet row that tells the script to skip that particular row?

    Thanks!

    • Hey Bennett,

      I cant think of an elegant way to work this functionality into the script. The only thing I can think of is have a script that creates a new text from the one you are using, skipping to every 4th row then save out before using this new document with compsFromSpreadsheet

      • Thanks for the response,

        As the COMP column lets the script choose a base comp, could the script also be triggered by this column to choose nothing and move on to the next spreadsheet line if it saw a particular text – like “SKIP” or something?

        I know your previous answer probably stands, but I just wanted to ask in a different way in case I wasn’t as clear as I could have been before.

        Thanks again Michael. Really amazingly useful tool!!!!

  • Hi Michael,
    I have a problem, when I save a new project starting the batch it says “Layer name error” and ask to pick a layer. Waht can I do? thank you

  • It also would be great if the script looks into the Pre Comps.

    • When I first wrote the script I tried updating precomps. The problem is if you duplicate a master comp 10 times and change the precomp for each of those 10 dupes. all 10 duplicated compositions have a precomped layer that refers to 1 composition. each time I dupe the master comp and change the data in the precomp, it is just overwriting the data I wrote for the previous comp.

      In the end you will have 10 comps all will share the same precomp layer with data from when the 10th comp was created and the precomps layers were chaged.

      One workaround would be to run the script in two passes (which can get clunky and may have you relook at your workflow to see if you REALLY need to precomp).
      The first pass would generate copies of your precomp with proper data inserted, the second pass would dupe the master comp and replace the precomp layer with the new precomp created in the first pass. It is all very confusing sounding, but once you get your head around it it should be fairly simple to implement.

      –Example–

      Suppose you have a comp “template 60″ that hase a precomp layer in it named “offer1″. The precomp layer has two text layers that you need to update.
      Here is a simple 2 line spreadsheet.

      ——————————————————————
      base | offer name | offer1 text1 | offer1 text2| template
      =========================================
      Offer1 |first | real cheap | today only | template 60
      Offer1 |second | not cheap | 2 weeks only | template 60
      =========================================

      field “base” holds the name of the precomp contained in template 60 that we want to update. “offer1 text1″ holds the text that you want in the first text layer of the “offer1″ precomp; “offer1 text2″ holds the text to go in the second text layer the “offer1″ precomp. The field “template” is the master template to be used (in the second pass).

      the “offer name” field is going to be used to name the new precomp in the first pass, and replace the layer in the second pass. This needs to have a unique name for each line otherwise you will have problems.

      in your template 60 you are going to change the name of the “Offer 1″ layer to
      be “#offerInsert” (or whatever as long as it begins with #), so that on the
      second pass you will be able to replace that layer with comps created in the
      first pass.

      in the “offer1″ composition, put a ^ infront of both text layers so when you run the script for the first pass you can set the fields “offer1 text1″ and “offer1 text1″ to be update text layers in “offer1″

      now run the script for the first pass set the “base” column to comp so the
      spreadsheet will use that field to grab the comp to update which in this case
      will be the comp “Offer1″

      Sync up “offer1 text1″ and “offer1 text2″ to the appropriate text layers in the
      Offer 1 comp.

      Change the “New composition name setting” to “FROM SPREADSHEET | offer name” and run
      the script. it will create 2 new comps named “first” and “second” with the text
      data updated in each new comp.

      now run the script again this time using the “template” column as your comp
      field, sync up the “offer name” column in the spreadsheet with offerInsert, now when
      you run the script it will dup template 60 and replace the #offerInsert layer
      with the comp “first” which was created with text from the first line, then it
      will dupe template 60 again and replace the #offerInsert layer with the comp
      “second” which has the data from the second line.

      • Hi Michael,

        Great script! I am using it at a cable network that just purchased a site license. I have a project (designed by someone else) with a lot of precomposing and my hands are tied on changing its precomp hierarchy. I am able to work around the precomp issue by running the script multiple times, but I have to make a workflow that’s easy to understand for other artists, and doing manual recursion for every precomp layer is, unfortunately, too complicated to make into a sitewide workflow.

        I’ve made a project where each composition has its precomps renamed with a # in front, so that the precomps can be replaced with new comps created by the script. My spreadsheet contains one column for each precomp in the hierarchy, and each row has a unique name in those columns, so that when I replace a text layer, for example, the script can also generate a unique copy of the entire precomp tree going back up to the master comp. This works if I run the script once for each precomp in the tree, changing the “New composition name” field each time to the name of the next precomp up in the hierarchy.
        To make this easier on other artists, I modified my spreadsheet to be able to work on all of the precomps at once. When I test it, however, I find that the script will make the compositions that I need, but then not be able to find them in the project when attempting to update the next precomp in the hierarchy. So, if I have a tree that goes Master->Precomp1->Precomp2->Text, my spreadsheet will have the script create a comp called Text_001 using Text as a template, then go on to create Precomp2_001 using Precomp2 as a template and replacing the layer named #Text with Text_001. When I run it this way instead of running the script multiple times, the script is unable to find the Text_001 comp that it just created and will stop while making Precomp2_001. If I delete the failed Precomp2_001 and run the script again, it will create Precomp2_001 correctly and then fail while making Precomp1_001.
        To me, this suggests that I could set up my project and spreadsheet to work around the nesting problem in just one run if the script were able to find the compositions it creates in the project during the course of a single run. Would it be possible to have the script either refresh its list of project items after processing each row, or to append the compositions it creates to such a list?

  • This script is awesome, but I have run into problems while testing it. For example sometimes it stops importing the data from the text file. Yesterday I used the same file and it worked fine, today it doesn’t. Another think is that sometimes it doesn’t find my render folder.
    Any ideas?
    Thanks!
    Daniel

  • I absolutely love this script!

    However, I could not figure how to prevent it from adding quotation marks (which are the text delimiters for my csv file) at the beginning and the end of my comp titles and inside my text layers (both are imported from the same column).

    Do you know where my problem comes from and how I can solve it? I have tried to use

    Thank you in advance for your help!

    • hey Baptiste,

      you need to use a tab delimited text file with the script, not a csv. Let me know if you still have issues after changing formats

      Mike Cardeiro

    • hey Baptiste,

      when in open office pick save as “Text CSV”, (for some reason openOffice no longer has tab delimited as an option) hit save.

      next window click “keep current format”

      next window:
      click field delimiter {Tab}
      text delimiter, select what is in the box (either a ‘ or a “) and hit delete. save. It should then save it on the proper format (no quotes)

  • This is a great script and is helping a lot. I was hoping it could change text in nested comps, it seems I can pick the text but it doesn’t change.

    Thanks,
    Jim

    • I don’t mean precomposed, just comps that have text animation in them and then put into a master comp. All those text animations I would like to change thru the script and thus make many master comps.

  • Hi Mike,
    Script works fine when selecting one comp, but when I try any more, I get the error message “You need to select a field with the template name” … I don’t get what I am doing wrong;(
    I can’t wait to get this running, As I seen mentioned before, no spelling errors, and more time for the fun stuff.

    • My bad, I hate when I do that, I skipped the step where you told us to put down the comps, in “Core Spot” So now I have a different question, If I am switching out Title and time, but need 9 different comps for each set, do I still have to type out this info each time. I think I must be missing somehting, Is it also posible for when selecting comp name on output to use multiple colum information…

      • Hi Kevin,

        No, you can only use a single column, so the workaround would be to make a column in the spreadsheet with all the info you need for the comp name and select that column to be used to name the comps (if I am understanding your question properly).

        Mike

  • This script is almost what I need but not exactly.

    I’m filling in text fields using the script and that works fine but I also need to import numbers from a spreadsheet that will become the coordinates of an object in the comp. I can get text layers to see the numbers but unfortunately AE doesn’t recognize source text for numbers.

    Can I add some code that could pull numbers from the spreadsheet and put them into a slider expression? or something similar?

    Thanks
    -jon

  • Hi. Great script. Thank you.

    Is there any way to make it choose “COMP” column from Core Spot column automatically?
    (all other columns match perfectly, except “COMP”).

    • I am currently working on an update to allow the script to import files. I will roll this into that update as it seems like a nice timesaver.

      Mike

  • Hi,
    I purchased your script, that by the way is fantastic!, and everything runs fine.
    However.
    I’m doing a job at a production compagny as a freelancer and to test it there tried to copy it on their mac. At ran like a charm, but on my own machine at home. It didn’t anymore.
    Is that because it’s temporary running on two machines?

    Thanks,
    Wim

  • Great Script!!! Has revolutionized the way I version commercials!!!

    With that said is anyone else having issues with the pulldowns automatically loading matching columns from the spreadsheet? I have double and triple checked and everything between the 2 are identical.

    Thanks
    Scott

  • Is there a way to navigate assets within folders in the project file? If I have an image I want to switch out, I’d like to be able to organize it by doing sub folders in the project.

  • Another problem is that you have to import all the assets into your project for the script to work.

    Would be quite nice if it was possible for the script to import the assets for you.

  • For this to be truly powerful, it needs to be able to fetch images/audio etc. from seperate folders. Structure is so important with these types of workflows. This would enable me to have one large spreadsheet with 50 lines instead of 50 folders with 1 line in the spreadsheet.

    I have been using it for awhile now, and its a really strong script for handling large volumes of boring repetitious work.

  • Fantastic script!

    I’ve just begun using it and run into a problem. In some of my spreadsheet cells I have text that contains line breaks (i.e. Two paragraphs contained in one cell) and the script breaks when it reaches the row with these cells. I can remove the data in these cells and the script runs fine. I would like to be able to carry over paragraphs of text into After Effects. I understand there are limitations to tab-delimited files, but I know that they can carry over line break OR paragraph break information. Any help appreciated!

    Best,
    C

    • I just finished working with Chad on his problem. The script has been modified in the following way.

      If you want to have a newline in a text field, you should type <br> where you want the newline to appear in your text.

      when you run the script, any instance of <br> will be relaced with a newline.

      Mike Cardeiro

  • Hi Michael,

    Great script! It has saved me an enormous amount of time creating massive amounts of comps. Is there a way to allow enter marks in a single spreadsheet cell, and have the script recognize this as 1 comp? I’ve tried inputting eg. a list of items in a single cell, but each time it gets loaded into the script, it generates 1 comp per item in that cell due to the enter mark. If there is an enter mark at the end of the cell’s text, the script sees this as a line error, and asks for a link. Thanks for your time, hard work and excellent script!

    Cheers,
    JeffN

  • Hey Craig,

    I updated the script. Now if you have more than 10 fields in your spreadsheet, the field init window will make a new row for every 10 fields across (you can change this number to any number you like by clicking the “layout” button)

    Mike Cardeiro

  • Hi Mike,

    First off… great script, you have saved us hours….. We do a lot of work where we need to one template which is replaced by lots of names and data.

    One thing we found is that sometimes we might have upwards of 20 placeholders on one screen. When we run your script the init data screen shows all of these horizontally accross the screen. Unfortunately, it doesnt fit all of them in.

    Is there a way that you can choose your init data and have the screen show vertically (or even a scroll bar for the horizontal window)

    Thanks for all your hard work.

  • it’s a great script >>>but there is a problem i faced….
    I’d like to update the text from a different comp and render the master comp…..
    i make a scene and embed all text layers as separate comps so i need to update them from the spreadsheet and render the container comp….. hope i explained what i mean.
    thanks
    Amr Gad

  • Version 2.0 is done. You can now target layers in your comps to be replaced with layers named in your spreadsheet. It can also run as a dockable ui panel.

    Enjoy and please report any flakiness here.

    Mike Cardeiro

  • Fantastic Script!!!

    We have been looking for this exact thing.
    The only two things that could be helpful for us would be:

    1. Support for nested text layers within a selected comp. (can it already do this?)
    2. The ability to replace an audio file from a column in the spreadsheet.

    Again, Fantastic!!!

    Thanks

    • Greg,

      I originally started out with the script looking for text layers within precomps to target. The problem with doing it this was that if the script made 20 dups of the master comp and text within a precomped layer was targeted, they would each be replacing the same text layer so all 20 comps would have the text value from the last comp created.

      version 2.0 will have the ability to add layers from your project to your comp. Not sure when I’ll have time to finish this but it is a work in progress (glad you like the script.

      Mike Cardeiro

  • Hi Mike,

    I agree with …Ed Watkins

  • Thanks for this script Mike, saved me quite a bit of time (well, maybe not yet, but next time anyway!).

    One problem I’ve had is with other – non ‘^’ – layers pointing to the updated layers source text in expressions. As the script renames the layer from the template into the new generated comp from, say, ‘^Name’ to ‘Name’, any expressions that point to layer ‘^Name’ get broken, as they don’t get replaced. If we could have an option to not rename the generated comps layers, or just not do it, that would stop this.

    My workaround for now is to save the template comp with incorrect expressions (no ‘^’, point to the layer name without it), run the script, and then go into every generated comp and click the ‘Enable Expression’ switch – on every single layer that’s affected. Painful, but I do have to go into each one to swap out an image/video layer anyway. It would be nice not to do this though!

    Thanks anyway Mike. Nice work. I’ve looked at the script myself, but my javascript is barely passable, and if I start playing with it god knows what I’ll make it do! Cheers.

    • Hey Daryl,
      A quicker workaround would be to have your expression reference the layer index, as this will not change.

      so instead of :
      thisComp.layer(“^text”).text.sourceText

      you would do this (if your text was layer 3 of the comp):
      thisComp.layer(3).text.sourceText

      normally I wouldn’t reference by layer number because it breaks if you add a layer before the layer you are referencing…but when using compsFromSpreadsheet you generally wouldn’t be adding to the new comps as this would kind of defeat the whole point of the script.

      Mike Cardeiro

  • Hi Mike,

    I got a little problem. Somehow when I start the script i just can’t select any comps? The list of available comps is empty and when I try to double click on some comps nothing happens?

    besides this little staring problem the script would be very useful !

    Thank you very much!

    • I worked with Max on his problem. He was running the script as a dockable UI script. compsFromSpreadsheets wasn’t designed to run as a dockable UI and thus should be put in the “supporting files/scripts” directory of your after effects install and run through the “file->scripts” menu.

      Mike Cardeiro

      • about 5 minute after I posted this, Max got back to me that he was still having the same problem. The problem ended up being a part of the that checks all the items in your project for compositions. the script is looking for typeName == ‘Composition’ but Max’s After Effect was not an english version and actually reffered to comps as typeName == ‘Komposition’.

        The script has been updated so now it checks if the item is instanceof CompItem (which is a way better way to do it anyway).

        More updates coming shortly.

        Mike Cardeiro

  • Hi Mike,

    Your script looks wonderfull, I was wondering if it is able to be tweaked do the following:

    I often have to add top and tail graphics to spots. Is there was a way to use your script to replace footage in a comp (and take into account differneces in footage length) rather only replacing text?

    Thank you, and great work on the script!

    • Hey Ed,

      Glad you like the script. You are not the first person who has asked for this. I am planning on adding the ability to add layers, whether a graphic, audio file or other comp, to your comps at specified timecode.

      Not sure when I will be able to code this as my life has suddenly become very busy, but it is in the works. The biggest challenge with implementing this will be to try and keep the script from becoming more confusing…I will probably have to break down and write a manual (and I hate writing).

      Mike Cardeiro

      • Hello

        Great Script. I used to do a similiar task with automotion , motion and ae6.5.

        Id like to ditto the comment to add movies or pics. Would be super helpful

        Thanks again

        Sean

  • How do you remove all the extra empty cells when saving to a tab-delimited text file?

    • Never mind, I was able to remove the extra fluff from the text doc!
      Too bad Excel can’t export to tab-delimited and keep comma’s for city,state separation.

      • this seems to be a bug with excel. There are 2 different delimited file types, tab-delimited and comma-delimited. Now if you were exporting something comma-delimited, you obviously would not want commas from your field to make it into a comma-delimited doc because this would cause the program you are importing into to think the comma is the start of a new field rather than just a comma.

        I believe Microsoft in their infinite wisdom is using the same code in both tab-delimited and comma delimited docs and stripping out commas when it is not necessary, and actually wrong to do in a tab-delimited doc.

  • Hey guys !
    This script is really usefull, very good job !
    I’m french and I’ve got problems with accent. Is it possible this script work in utf-8 ?

    • In speaking with Jeff, the problem he was encountering had to do with creating the tab-delimited text file on a PC and opening it on a mac for use with the script, somewhere in the process the accents in the text doc got mangled.

  • Request: Have the next version with a column in the SS for a project folder name (source containing assets), and a field for the names of those assets.

    The script inserts assets from the source folder into each new comp, based on asset names in the spreadsheet asset field.

    Excellent work, very inspiring. THANK YOU!

  • I just want to add too, I had the same issue as kyle, and Mike got back to me within the hour with a new and perfectly working script. seriously, hours of work in minutes. minutes! this is amazing. thank you so much for your hard work.

  • Hey guys I just wanted to let everyone know how great Mike has been to work with. He is dedicated to getting this thing working and I really appreciate his hard work.

  • I am having a problem with the script. Once I set up the layers to correspond with the drop down menu items, it asks if I want to do the work in a copy of the project, I say no and it saves. Then the script does nothing. It doesn’t create a render queue and it doesn’t make more comps. Am I doing something wrong? I am working on a intel mac in AE CS4. Any help would be appreciated as I am working on time sensitive material.

  • Ok, so the project I’m currently working on has a TON of comps, so when I go to use the script, the list is so long that I can’t select the comp I want to use AND hit select. Now, I have them organized in folders, so is it possible in a future release to have the comp template selector recognize these folders as well?

    • Sounds annoying! I’ll get out a patch in the next couple of days.

    • Hey Nathaniel,

      I updated the script so now the select composition window should be easier to manage if you have a lot of comps.

      You can also bypass this window altogether if you put all the comps to be used in a folder called ‘TEMPLATES’ (all caps), then the script will use these comps and not ask you.

      Mike Cardeiro

  • Very nice script Mike – Good work !

    It would be nice if you also could set the comp. / file name and not just have numbers.
    In the current script version I have to open all the movies and rename them afterward.

    >kenneth

    • what do you think about having a dropdown box when you select fields that gives you the choice of having the new comp named either [line number, original comp name and a unique number, database field...].

      do you think that would make the field init more confusing?

      Mike Cardeiro

    • Hey Kenneth,

      I have updated the script to allow you to change the way the script renames compositions. Now there is a dropdown box underneath where you sync fields with text layers.
      this dropdown allows you to have the comps named by either line number (the way it used to), original comp name, or you can have the comp named from a field in your spreadsheet

      Mike Cardeiro

  • This is a very handy script. I recommend that you add a comment to After Effects Help to tell people about this script in the context in which they will most likely need it—such as here:
    http://help.adobe.com/en_US/AfterEffects/9.0/WS3878526689cb91655866c1103906c6dea-7cf2a.html

Leave a comment

(to reply to a specific comment use the "Reply to this comment" link next to the author's name)

For support related issues please contact support or post your issue in the forums