Attribute Spreadsheet
Posted: Tue Dec 08, 2020 1:58 pm
One of my favorite tools, Attribute Spreadsheet, was written by @svenneve in 2013. I did not find any traces of it to be updated to support the latest Fusion and Resolve versions, and it looks like to be abandoned for 7 years now. This is my attempt of reviving this tool while adding new features to it.
AttributeSpreadsheet is a spreadsheet script to edit the input parameters of multiple Fusion tools at once. It is extremely useful for batch tool changes, and a great help for any motion graphics tasks. The most amazing part that it works with any native or third party Fusion tool, such as OFX plugins, macros, Krokodove tools and so on. Any available input is accessible from a very convenient table view. You can link any input to another with expression by a middle mouse drag. Some tools, such at Text+
Requirements:
My intention was to make this script as straightforward and easy to use as possible. Usually installing third party package to Python is a painless task. But we can go further and strip this step, offering automatic PySide2 installation on a first launch.
If Pyside2 is not found on the computer, the script will show a dialogue, whether you want to install the package automatically. If clicked
Known issues:
Version: 0.2.5 - [2021/2/7]
Copyright: 2011-2013, Sven Neve (House of Secrets), 2019-2020 additions by Alexey Bogomolov (mail@abogomolov.com)
License: MIT
Donations: PayPal.me
https://gitlab.com/WeSuckLess/Reactor/- ... preadsheet
AttributeSpreadsheet is a spreadsheet script to edit the input parameters of multiple Fusion tools at once. It is extremely useful for batch tool changes, and a great help for any motion graphics tasks. The most amazing part that it works with any native or third party Fusion tool, such as OFX plugins, macros, Krokodove tools and so on. Any available input is accessible from a very convenient table view. You can link any input to another with expression by a middle mouse drag. Some tools, such at Text+
Font
or Style
, does not even allow setting expression manually. With Attribute Spreadsheet you can do that too. As far as I know, this is the fastest, and the most reliable tool for a batch changing parameters or linking multiple Fusion inputs.Requirements:
- Python 3.6
- Fusion Standalone v.9 and v.16+, Davinci Resolve v.16+
- PySide2 (can be installed automatically)
- Select one or more tools in Fusion flow and start the script or press "Refresh" button if already started.
- Select multiple values in a single column, say, "Blend".
- Start typing new numeric value and hit Enter. All Blend values for selected tools will be changed accordingly. That's the basic functionality.
- To link multiple tool's inputs to another tool with expression, select the column and drag with middle-click towards the cell you are linking to.
- Enter
-x
to discard the expression on single or multiple inputs. Once the expression is set, you cannot change the values in the table unless the expression is cleared. - Use
+=
,-=
,*=
,/=
and%=
to do mathematical expressions with current numerical values. for example: enter+=0.2123
to default Transform Size value, and it will become1.2123
- Use search bar to find inputs. You can search for multiple inputs, separated by spaces, like
size angle
to search both Size and Angle inputs. - Enter numerical values or expression to point values, such as
Pivot
orCenter
. For instance, enter=time
in the Transform Angle cell will create=time
expression, adding=time
and0.35
in CenterX
andY
values will createPoint(time, 0.35)
expression. - Enter
p
in any table cell and all corresponding input attributes will be listed in Console. - Click on the row header (tool name) to activate the tool.
- Click on column header to sort inputs alphabetically. Click on the corner button to reset sorting to default state.
hos_AttributeSpreadsheet
. You can find full list of new features and fixes inside a script file. The most significant improvements:- Point data with X and Y elements are both adjustable and now work with mathematical modifiers.
- You can add expressions to Point data values, such as
Point(Pivot.X, 0.5)
- Corner button will reset sorting to default state
- Tool name and ID is added to a table to improve sorting abilities
- Added logging, most errors are caught with Console feedback
- Set active tool by clicking on row header
- Use this script as a standalone tool (Fusion Studio feature). Provide a remote machine IP as an argument to a script to do remote management
My intention was to make this script as straightforward and easy to use as possible. Usually installing third party package to Python is a painless task. But we can go further and strip this step, offering automatic PySide2 installation on a first launch.
If Pyside2 is not found on the computer, the script will show a dialogue, whether you want to install the package automatically. If clicked
Ok
, it attempts to install Pyside2 using standard pip tools. Otherwise, the command for manual installation will be shown in Console. Python modules manager pip
should be already installed on the computer. Pip is a part of standard Python3 installation, thus the script will require Python3 (also for maintenance purposes). Automatic PySide2 installation process will be visible in Fusion console. If you don't want automatic installation or the installation process fails for some reason, try installing manually by typing python -m pip install Pyside2
in Command prompt on Windows or python3 -m pip install Pyside2
in Terminal on Mac. Once Pyside2 is installed, launch the script again and UI will appear.Known issues:
- You should avoid linking inputs to each other. This is a known bug: if you link
Transform1.Size
toTransform2.Size
and then try to link expression fromTransform2.Size
back toTransform1.Size
, Fusion will crash immediately. The same will happen if you try to do that with a script. Just don't.
- All fields except numerical or point data inputs are treated as text values. This prevents unexpected behavior when changing cells values. However it is possible to add combobox (dropdown menu) to the inputs with list data, such as
INPIDT_ComboControl_ID
orINPIDT_MultiButtonControl_ID
, so you could choose the appropriate values from a dropdown list instead of typing values manually. This can be tricky, because some Fusion inputs addressed by key ('1.0', '2.0') and some - by value ('Red', 'XYZ' etc). Also, this should probably exclude Fonts. - Add a completer with the most commonly used search commands. For instance, if you've already been searching
red green blue
, this query will be suggested once you typer
in search area. - Add an option for partial middle-drag/linking Point data, such as link only
X
values, or onlyY
, so the expression would be likePoint(Transform1.Center.X, 0.5)
. Currently, it is possible by typing expression text to a Point X cell. - Add
Select by ID
button to quickly select and load to the table all tools with the same ID as the active tool. However, this can be done with ToolManager script, so questionable. - Please suggest any other improvements.
Version: 0.2.5 - [2021/2/7]
Copyright: 2011-2013, Sven Neve (House of Secrets), 2019-2020 additions by Alexey Bogomolov (mail@abogomolov.com)
License: MIT
Donations: PayPal.me
https://gitlab.com/WeSuckLess/Reactor/- ... preadsheet