-
ariestav
@IanW You can certainly use GSheets, but the amount of columns will def. become unwieldy. Take a look at this documentation from our support site.
You just create blank text file, and then format according to what you see in that documentation. The terms on the left side of the colon
:
symbol would be the layer names in your AE comps. The terms on the right side of the colon:
would be the values you want those layers to have. Since it’s all text, you will want to place the values of the text layers within double quotes.The format is the following:
[ {} //first video job , {} //second video job , {} //third video job , {} //fourth video job ]
The square brackets
[]
represent an “Array” of reversions. The curly braces{}
represent a re-versioning job, and the comma separated key / value pairs"text-layer" : "value"
represent the layers and the values.To get Templater to read from the file, click the
...
button next to the data field and point to the JSON file. In the Transport, set the start to 1 and then the end to the last object in the JSON array.As for animating the row positions as the values change, that is a sophisticated task to accomplish. You can certainly do it in AE with Templater, but requires specific code to accomplish. This is not supported out of the box with Templater.
-
ariestav
Hi Ian,
For that many data points, you will want to move away from the 2D structure of a spreadsheet and use a JSON file.
The properties in a JSON object are the same thing as a spreadsheet column header. So, something like this:
{ "score1": "7" , "score2": "10" , "score3": "3" , "score4" : "8" , "score5" : "7" }
You can think of it as the column / row structure being “transposed” so that the column headers run up and down and the values are just paired with those properties.
Does this help?
-
ariestav
@pbretz Make sure you don’t have any duplicate comps with the same name. Also, the project should only ever have one double-braced comp name. The double brace notation is the default for when Templater cannot find any target specified in the Preferences or in the data itself. Where are you specifying the target composition?
-
ariestav
Hi There,
I believe we received a support ticket via our support channel. We were able to investigate the issue with the items you provided, and just wanted to follow up with your post here as well for the sake of building community knowledge:
I took a look through your
templater-options.json
file which is a configuration for Templater’s main panel and preferences. First, when using the Templater CLI, you’ll want to make sure to quit and exit AE so that it’s not running. If you have it running while you attempt to launch via the CLI then there are conflicting configurations — the GUI configuration and the CLI configuration. So they are kind of mutually exclusive.Now, one thing to note is that the
tasks
object has two properties set totrue
in yourtemplater-options.json
file. You can only ever have one option set there. One task is to enable the bot, while another is to replicate a batch. Think of those properties as being “mapped” to the buttons in the main Templater GUI. You tell what the Bot to do in theprefs
objects under thebot
sub object — specifically theaction_render
andaction_replicate
. So, my suggestion is to set the replicate property in thetasks
object tofalse
, and leave theaction_replicate
totrue
and theaction_render
tofalse
.Also, I would like to see the exact Powershell incantation you are using to perform the launch. If you want to enable bot from the command line, you will need to use the
-ui
flag because enabling Bot requires AE’s GUI open up.Please let me know if this helps.
-
ariestav
Hi There!
Thank you for installing it. Can you check AE’s main “Window” menu? It should be towards the bottom of that menu which will enable you to launch it. If it’s not there, that means the installer likely could not write all the files it needed to.
Can you try running the installer as an administrator to see if that resolves the issue?
Thanks,
Arie -
ariestav
@Tasnadi-Otto Does the attachment work in the expected behavior in your main composition? Or, is the attachment broken when you use the Master Properties feature in AE?
Can you share the
templater.log
file with us? Also, check this article out — it may offer some tips to help troubleshoot the issue.Thanks,
Arie -
ariestav
Hi Ronan,
Thanks for writing in. It’s hard to say without seeing the data set. Is there anyway you can share a mock data set of what it looks like with the flag and without? I just want to be sure it’s referenced as expected.
Bot should definitely be able to handle the flags, but it’s hard to say why it’s not handling the render.
It could be related to something else that the Bot needs that it doesn’t necessarily have, but again, here I would need to see the data object to understand more about what Bot is consuming here.
We’re happy to help you in the forum, but if you prefer to share data outside of the forum, feel free to share it to support@dataclay.com
Thanks Ronan!
-
ariestav
@Richard Apologies for the delay. Can you clarify your workflow a bit more? The master composition, by design, does not get affected by any of its children compositions. You may be able to use Adobe’s Master Properties, though we have not tried this.
-
ariestav
The Dataclay team has released Templater 2.9.5, providing critical updates to support Google Sheets as a data source. This new version comes in advance of Google’s retirement of the Sheets API v3, scheduled for April 9, 2020. For workflows that leverage Google Sheets as a data source, you must update Templater to version 2.9.5 before April 9, 2020. We recommend downloading, installing, and testing Templater 2.9.5 by the end of March 2020 to avoid a disruption in functionality.
For workflows that use Templater’s command-line interface with Google Sheets as a data source, you must also update the
data_uri
property in yourtemplater-options.json
configuration files to address Google’s new requirements. To verify the value for thedata_uri
property, in Templater’s Google Spreadsheet Setup dialog, select a worksheet name. Use the Feed URL value fordata_uri
.If you find that the integration with a Google Sheets data source is not working as expected after installing Templater 2.9.5 by April 9, 2020, you may need to reset preferences in After Effects. For further help, please open a support ticket.
In addition to ensuring continued support for Google Sheets, we’ve also included these improvements in Templater 2.9.5:
-
A live data toggle preview setting — You can enable the live data toggle to request live data when generating previews, or you can disable it to use cached data and speed up the previewing process.
-
Default visual and audio placeholders — Templater points to these defaults within the preferences if you don’t specify a placeholder.
-
Search functionality for locating a Google Sheets data source — It’s now easier to specify a linked worksheet.
-
Status message and logging improvements — A variety of changes, tweaks, and additions to make status messages clearer and more accurate.
-
Bug Fix: CLI checking JSON freed with headers — An issue has been resolved when passing headers values to access a JSON endpoint via the CLI.
-
Bug Fix: Retrieve the correct row within range during preview — An issue has been resolved when iterating through previews and the Start and Finish range values change.
-
-
ariestav
@sakodc Hi Sascha. Apologies for the delayed reply. Have you seen our Time Sculpting features? You may be interested in seeing the video on Time Shifting and Time Cropping.
If the Time Sculpting features do not suite your needs, You will need to make use of Templater’s ExtendScript API. You essentially write ExtendScript code that makes use of Templater’s in-memory job data, and use that data to set specific layers’ In and Out points.
You would use the
$D.job.get("column-name")
method to get the data from the job’s column into a variable. Then you can use that data to set an In point or Out point of a specific layer.Does this help?
-
ariestav
@Tasnadi-Otto That’s a tough one, but Templater has what is called Time Sculpting features, in addition to an ExtendScript API.
With the ExtendScript API, you can change a layer’s duration via ExtendScript registered to Templater’s “After Update” event — I imagine you would create an algorithm that would assess how long a text layer’s duration should be given the length of text string. Then, you can invoke the Time Sculpting rule logic from within your ExtendScript so that all layers conform accordingly.
Does this help?
Thanks!
-
ariestav
@dwalters Definitely an older version. We removed the dynamic color checkbox because it was redundant to have it appear when Templater Settings is applied to a Solid. So, you don’t need to do that step. The dynamic color option will “be on” whenever you apply Templater Settings to a solid.
-
ariestav
@dwalters Definitely watch out for the formulas in Sheets when using Bot. Also, you can use a local JSON formatted file to avoid that issue and to gain some flexibility in how your data is structured. In a JSON file, each “object” can have different properties so you’re not locked down to a two-dimensional data structure like an array. You can use the
aep
property to have Templater load the correct project file for that asset. So the JSON source might look something like:[ { "aep" : "C:\\templates\\summary.aep" , "score": "43" , "time": "1 hour" }, { "aep": "C:\\templates\\team-stats.aep" ,"player-count": "22" ,"team-name": "Longhorns" ,"city": "Austin, Texas" } ]
So you can see there are two “jobs” in the data souce, but from job-to-job there are different properties. Google Sheets is easy, but you do gain some flexibility using JSON.
-
ariestav
Have you taken a look at your
templater.log
file for any clues as to the issue? In that log file, it will show you exactly what it attempts to execute in the shell. You can copy and paste that from the log to a new terminal window and try it there. Keep in mine that the environment that Templater executes in might be different from the environment in your own Terminal shell. Maybe something is not included in a path? I’m surecp
command is, but I’m just saying that there might be something related to environment.Also, take a read through this to troubleshoot:
Please let us know if this helps.
Thanks!
-
ariestav
@dwalters Can you explain a bit more how you are approaching the dynamic color a bit more?
There are two techniques for using dynamic color. You can directly map HEX values from your Google Sheet to your Solid layer which will change the solid’s color automatically. Or, you can use values in the Google Sheet within an expression as in the drive-text-color project in our rigged-projects repo. In the JSON for that project, there is a property
hex-color
— to use in a Google Sheet you could simply name columns with the JSON property names and then point Templater to the Google Sheet — it should work the same.Does this help?
-
ariestav
-
Support for Adobe After Effects 2020
Templater is now compatible with Adobe After Effects 2020.
Genuine installers prepared for macOS and Windows operating
systems. -
Updated Templater’s End User License Agreement
Templater’s EULA defines criteria for designating a licensee as
an “Enterprise”. It also includes updated terms and conditions
for licensing and payments as well as general provisions. -
Preference to purge unused footage after each job
If you enable this preference, Templater will purge all unused
footage from the project file after each job completes. Use
this to reduce dependencies in your rigged .aep template files. -
Added intelligence methods to Templater ExtendScript API
Use two new methods within registered ExtendScripts to invoke
Templater’s spatial and temporal intelligence:
-
$D.update.layout()
— Invokes Templater’s algorithm
for automatic spatial layout of dynamic layers
within all compositions. -
$D.update.timeline()
— Invokes Templater’s
algorithm for automatic temporal arrangement of
dynamic layers within all compositions.
-
Faster data polling intervals for Bot
In Templater’s Preferences, reduced Bot’s minimum polling
frequency to 0.3 minutes (18 seconds) for Google Sheets, and 0.2
minutes (12 seconds) for JSON sources. -
BUG FIX: Improved organization of Replication output
In the data, if an “output” column or property specifies a path
with sub directories, Templater names the final output asset
according to the path’s final leaf and saves the output asset to
the location specified. -
BUG FIX: Time Sculpting correctly handles nested timelines
In some cases, Templater’s auto arrangement of elements in
timelines containing pre-comp layers would not fully complete.
Now, Templater completes Time Sculpting logic for all nested
composition timelines.
-
-
ariestav
@jrbooth1 For the text layer in the AE project. Did you create as text box or just a single line? In your data source, if you have a soft return character in the data, AE should respect those soft returns even if it’s a single line text layer. Try clicking+dragging to create a text box.
Hope this helps!
-
ariestav
@pbretz Can you share the command you are using to invoke from the terminal or prompt? Are you using the -ui flag? When you enable bot from the command line, the
tasks
object should be{ "render" : false , "replicate" : false , "enable_bot" : true }
There is a
bot
object within theprefs
object, and you can set what you want the bot to do there:{ . . . "prefs" : { "bot" : { "action_render": true, "action_replicate": false } } . . . }
-
ariestav
Hi There,
You can do this, but you would need to use the Templater ExtendScript API which lets you run ExtendScript code when Templater broadcasts an event while it processes your data. The ExtendScript can read your re-versioning data using the
$D
object, and specifically using the$D.job.get()
method.So, for the case of still images being sync’ed to specific time codes you will need to write a script that reads the time code from the re-versioning data, and then alter the layer for that time code. Out-of-the-box, duration is something that is only inherent to audio / video footage layers, but since still images have no inherent duration, you need to explicitly set it using code.
Does this help?