Reveal all keyframes on layer except effect XY

Hi Alon,
basically I would like a “reveal all properties + effects with keyframes” except “Puppet” because this usually has to many keyframes and clutters up my space.

Currently I select all layers, do shortcut “U” and then manually collapse property/effect with name “xy”
Even in scripts I only found a “collapse all”: app.executeCommand(2771);
At least in this list:

Thx for your input!
Peter

Hi @thepetercoin, thanks for reaching out!

This is an interesting question because there is not a straight forward way to do this with scripting, because the option to show or collapse a specific property is not supported by default in after effects.


But I found this similar question in reddit too - https://www.reddit.com/r/AfterEffects/comments/muubs9/collapse_other_properties_with_keyframes_except/

The top comment mentions that you can press S twice quickly to show only the selected properties, I tried it and it works well.

so if we will create an automation that selects all the properties that has keyframes (except the puppet property)
here is an example of such automation -
Select Properties with Keyframes.zip (1.4 KB)

Then we will only have to click S key twice in order to show only these selected properties, and to be able to choose what we want to show programmatically.
For this we will need an extra tool to automate the trigger of S button twice.

Automation Toolkit does not natively supports triggering buttons, so another forum user found a good solution for this in other post -

In his post he wanted to click the ok button automatically in the autotrace window when it opens, so he used an app called AutoHotkey, you can create simple scripts and run them from the automation, this software will run the script and simulate the Keyboard clicks.

the AutoHotkey script to click the S twice should look like this -

Send, s
Sleep, 10  ; Wait 10 milliseconds (0.01 seconds)
Send, s
ExitApp  ; Exits the script after sending the keys.

very simple script as you see.


  1. so you need to download AutoHotkey if you use windows (for mac we will need to find something else).
  2. create this script file.
  3. run this script file from within the automation after selecting the properties.

you can run the file by creating a file variable, then you can embed the script file into the automation, to save the content of file in the automation instead of only the path to the file on the computer that could change(just click the embed checkbox), or you can just select the file path to the the script file, then you can use the file action “open” to run this file.

Example-

I know it is a lot of information but the process is quite simple. Please let me know if you need more help.

Hi Alon,
as usual, thx for your extensive answer! Got it to work, but only at home. At my workplace we have restrictions and therefore can’t use autohotkey :confused:
Well, I get that. Trying to find a workaround with javascript, powerscript, etc… but from what I gathered until now at least javascript won’t work. Will keep you updated.

And by the way, I am continuously creating stuff in automation toolkit whenever I see the chance - saves SO much time :slight_smile:

Regards,
Peter

Hi @thepetercoin,

Yes it always a problem with security permissions when we need to rely on other programs,
I also don’t think you can do it in JavaScript.


i think that I tried at some point to create a script in the “Java” language (not javascript) that press the “p” key and it worked, the good thing is many computer already have java install for other programs so it may be a possible solution.


There was another user in this forum that wanted to press the letter “p”, and in my answer I tested the java method but eventually I decided to go with a PowerShell script that did it, so you don’t have to rely on java being installed,

it is a bat file that looks like this -

if "%1" == "" start "" /min "%~f0" IS_MINIMIZED && exit
powershell -Command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.SendKeys]::SendWait('p')"
exit

this code press the letter “p” once

Here is the original post -

So if you have enough permissions to run this PowerShell script in your workplace I think it is a good solution too.

Thanks a lot, will give it a try! At least it works on the private pc for now.