With these tools you will be able to place operators with your preferred default parameters or snippets; as well as swap operator positions, easily promote Custom Parameters to the parent, and much much more!
The design principle of these tools is to seamlessly integrate with the user experience of TD, meaning the learning curve and adaptibility should be easy for any level of users.
Most of the tools are accessible as part of a new section in the (mostly) uninhibited toolbar of the TD UI, giving you easy access to some of the main functions.
However there are ones that work in the background or are accessible with simple shortcuts. Some of the tools also serve as "Global" components, meaning the settings and contents of them will automatically synchronize between your projects that have the toolkit installed.
To start using, download the latest release files (FunctionStore_tools.tox, FNS_TDDefault.toe), drag and drop the .tox into your project root ('/'), or set up FNS_TDDefault.toe as your Custom Startup File so that TD will launch that each time you open the program.
To set up a custom startup file, open up the Edit -> Preferences dialog (or press Alt+p) and set:
1. Startup File Mode to Custom File
2. Custom Startup File browse to the downloaded FNS_TDDefault.toe or your own custom .toe file.
Overview of the Tools
The toolkit is well documented in the GitHub Wiki page and is highly recommended to read if you want to get the most out of these tools, however I'll attempt to summarize and get you excited in this post.
Some of the tools can be turned on/off on demand, as well as their synchronization between projects in the Custom Params of the toolkit.
Before diving into the toolbar I'd like to focus first on the biggest feature of them all, OperatorTemplates. Since developing this tool, it has saved me literal tons of time working in TD!
Here is a rundown of how you can set up and maintain these templates once the toolkit is installed (this will be part of a longer video, so please subscribe if you wanna catch it):
From left to right (you also get a help pop-up hovering your mouse over them):
- tools_ui: A collection of tools that have some minimal user interface
- op_store: This component is a modified version of AlphamoonBase.berlin's Operator Store. You can drag and drop any operator or component from your network to this UI. After that you can reference the dropped OP/COMP with a Shortcut of the Shortcut column.
- GlobalOutSelect: This component shows you your Global OP Shortcuts in a tree list view, as well as any out operators found in them.
- ExprHotStrings: Define Abbreviations in the first column that when used in a parameter expression will expand to the string defined in the Expands column. Forget absTime.seconds, use #AT! The abbreviations work in-line too, meaing you can type #AT * 0.2 or even combine them! See my tutorial on this.
- Open Templates: Opens a floating window of the current Templates container of the OpTemplates component. Right-Click to open custom parameters, Middle-Click to save. See the rundown video for more info.
Perform Window Tools: Drag and drop an operator to set it as the Window Operator of the /perform Window. Left-Click to open the viewer, Right-Click to configure.
Global Mouse CHOP: A handy tool for quick testing of interaction. It has a lot of useful CHOP channels you can drag and drop from the popup.
Global ResetPLS: YouTube breakdown; This component takes care of all your reset needs, pulsing all resetpulse or similar parameters of operators included in search. You can enable or disable certain operator types
Swap OPs: Swap selected operators, works in many different cases. You can swap two operators in the same network editor pane, or even multiple ones in a line (they get mirrored). Works with the Alt+Shift+S hotkey as well as the toolbar button.
Show/Hide Backdrops: Toogles this UI option for the currently selected pane.
Show/Hide Network Editor Grid: Toggles this UI option. Can be useful when working with particles, or just in general.
Set Input/Viewer Smoothness: Sets the Input/Viewer Smoothness parameters found at the Common tab of selected TOP operators. Holding Alt while clicking an option from the dropdown will set it for all TOPs in your current network.
Global Hog CHOP: Useful for quick stress-testing of your network. Opens the parameter window of a global Hog CHOP to be activated.
QuickTime: Click to access time references instead of AbsTime.seconds and so on. With this you can easily scale "global" time (acess the scaler by right-clicking the icon)
Mute and Volume: Set the overall volume of TouchDesigner.
CustomPar Tools: This button is a quick way to manipulate Custom Parameters of a parent component.
- Drag-and-Drop onto the icon:
- A Parameter: Promote that Parameter to the Parent Custom Params and Bind/Reference automatically.
- A COMP: Promote all Custom Parameters of the dragged COMP to the Parent Custom Params and Bind/Reference automatically.
- Left-Click: Opens Parent Parameters.
- Right-Click: Opens Parent Component Editor.
- Middle-Click: Promotes Parent Parameters further to its Parent.
- Drag-and-Drop onto the icon:
More under the hood
There are more tools and mods that work under the hood or modify TD's behavior but don't need a place on a the toolbar. They are just as useful though:
- Greg's OP Create IO Filter Mod: This OP Create dialog mod by Greg Hermanovic installs automatically from FunctionStore_tools/Gregs_opmenu_mod and adds filtering options to the OP Create dialog menu to the top right, showing only IO operators (IO option), or ops without the IO ones (-IO) or all (All, default).
IO operators are considered ones that interact with resources outside of TouchDesigner such as sensors or web interfaces.
ParentHierarchy: This is a Navbar UI mod that installs from FunctionStore_tools/FNS_Navbar and adds a new button to the left from the path bar. Clicking or hovering this button will open a popup showing the Parent Shortcuts for the COMPs in the navigation bar. COMPs with no Parent Shortcut will show ___.
Hovering over individual elements in the navigation path bar will show the Parent Shortcut (P), Global Shortcut (G) and Internal Operators (iop) for that COMP only.
Hotkeys: < see the link for the list of additional useful hotkeys I set up.
AltSelect: Quickly create Select SOP/TOP/CHOP/DAT/COMP of an operator by Alt-Dragging it to a new location in the same network viewer pane.
AutoCombine: When holding Alt and placing a Generator type TOP (e.g. noise, circle, rectangle) this component sets the default Combine with Input, Operation as well as RGB (in case of Noise) parameters. The defaults can be set at the component parameters.
AutoRes: When holding Alt and placing a Generator type TOP this component sets the Output Resolution parameter to Custom Resolution and the expression for the resolutionh.
QuickOp: (Experimental! Disabled by default) This is an alternative and quicker way of adding new operators, and was suggested by Greg Hermanovic to be implemented, which I happily obliged to. Ctrl-Dragging and operator somewhere will pop the OP create dialog, and the selected operator will be placed in the position of the previous drag. Similarly, Shift-Dragging will Insert a new operator between two operators.
- If you would like to dive deeper, you can watch the InSession stream where we went deep under the hood of the tools and TD together with the Derivative team!
This toolkit is an ever-growing work in progress so if you have any ideas for improvement or components of your own that you think might fit feel free to reach out!
Furthermore bug reports help a ton, so please don't be shy in case you see something off!
Please consider supporting on Patreon: https://patreon.com/function_store
My website: https://functionstore.xyz