You can do it with a short script:
- Code: Select all
for _,tool in ipairs(composition:GetToolList(true)) do tool.Invert = 1; end
Just copy that line, paste it into the Console window, and hit Enter to execute it.
To break that down for you, the "for … do … end" structure is an
iterator. The stuff between "do" and "end" will happen each time the for loop repeats.
ipairs() is a special function that just feeds the next item in a list to the loop each time. It spits out two variables each time: the first is a simple integer increment that counts from 1 to the end of the list. The second is the actual item from the list. For this application, we don't need to know how far along in the list we are, so we use the underscore character _ to throw that bit of information away. The second variable, tool, will temporarily hold a reference to each tool in the list. So if we have Polygon1, Polygon2, and Polygon3, the first time through the loop "tool" is equivalent to "Polygon1."
composition:GetToolList(true) is a function that creates a list of all of the selected nodes. GetToolList(false) creates a list of all nodes in the comp, regardless of whether or not they're selected. GetToolList(false, "Polygon") would get a list of all of the Polygon tools. We prefix it with composition: in order to tell the script what object we want to get our list of tools from.
tool.Invert = 1; sets the Invert property of the current tool (the one the loop is looking at) to 1. Remember that inside the loop "tool" stands in for the node name. You can learn the scripting name of the property you're interested in by hovering over it with your mouse and looking at the status bar in the lower-left corner. It will say something like [Polygon1.Invert].
So let's change it into a line that will turn on Motion Blur and set the Quality for all selected Transforms. This time, though, I'll write it in a multi-line format which would need to be saved into the Scripts/Comp folder as a .lua file (use a programmer's text editor like Notepad++ or TextMate, not a word processor) and run from the Scripts menu:
- Code: Select all
for i,tool in ipairs(composition:GetToolList(true, "Transform") do
tool.MotionBlur = 1
tool.Quality = 20
print("Motion Blur enabled for "..i.." tools)
end
Notice that this time there are no semicolons. Those are only necessary if you're cramming the entire script onto one line, as you have to do to run a loop directly in the console. I've also added a print statement that informs the user what's been done. In Lua, .. is a concatenation operator—it is used to join strings together. Instead of discarding the increment with an underscore I've stored it in the variable i so that it can be used in the print statement.
I know that's
way more information than you asked for, but I hope you and any others who wander by can learn something!
There is an old script that works in Fusion 6 and earlier called Batch Change Parameters that creates a pop-up window where you can choose from a list of detected parameters and set values. It needs to be updated a little to work in Fusion 9, but it essentially does the same thing.