Welcome to WSL!

Make yourself at home, but before posting, please may I ask you to read the following topics.


Posting 101
Server space, screenshots, and you

Thank you!

PS. please pretty please:


Image

Instancing Nodes Between Fusion Comps Within Resolve

User avatar
white_wizard
Fusioneer
Posts: 54
Joined: Wed Sep 18, 2019 3:53 pm

Instancing Nodes Between Fusion Comps Within Resolve

#1

Post by white_wizard » Wed Jul 29, 2020 9:43 am

Does anybody know of a simple way to instance nodes between Fusion comps in Resolve?

I have a large number of clips in a timeline which are of similar coverage/angle, and I'd like to be able to make changes for example to a Brightness node and have it also affect the linked brightness node in another fusion comp.

User avatar
TheBloke
Fusioneer
Posts: 57
Joined: Wed Jun 17, 2020 6:02 am
Been thanked: 5 times

Re: Instancing Nodes Between Fusion Comps Within Resolve

#2

Post by TheBloke » Wed Jul 29, 2020 10:44 am

white_wizard wrote:
Wed Jul 29, 2020 9:43 am
Does anybody know of a simple way to instance nodes between Fusion comps in Resolve?

I have a large number of clips in a timeline which are of similar coverage/angle, and I'd like to be able to make changes for example to a Brightness node and have it also affect the linked brightness node in another fusion comp.
There's a method that I've seen @AndrewHazelden discuss in a few threads which I tried out for myself the other day (I'm sure others have talked about it too, but Andrew's posts are the ones I saw):

1. Create a plain text file that contains nothing but your desired Brightness value. Don't hit enter afterwards.

2. In your comps, use the following expression on all the Brightness values you wish to be centrally controlled:

assert(io.open("/path/to/brightness.txt", "r")):read("*all").

Of course replacing /path/to/brightness.txt with the actual path of the file. The given path format will work on macOS and Linux. On Windows I assume (but cannot currently test) it will work as C:\path\to\brightness.txt. Or it may require that you enter it like this: C:\\path\\to\\brightness.txt.

3. You can now change that file anytime you want to update Brightness on all the comps. And that's it. The file will be re-read on every frame, so you will see changes in the file reflected in the current comp as soon as you move to another frame. I don't know if this could theoretically have an impact on performance, but if so I imagine it'd be hard to notice on the vast majority of comps.

4. Instead of directly linking to a specific folder name, you can also use the PathMap system if you have set that up (unlikely in Resolve). To do that, use this format: assert(io.open(comp:MapPath("comp:/brightness.txt"), "r")):read("*all").

In this case 'comp' is the PathMap and (at least in Fusion Studio) references the directory in which the comp is stored. Not sure what that would be in Resolve's case, but other PathMaps can be set up in Resolve's Fusion settings and should would work OK with that format.

There may be other ways to pass data to multiple comps - metadata springs to mind as a theoretical possibility - but the above method definitely works and while it feels a bit hacky, in practice it works fine and is quick and easy to set up.

User avatar
white_wizard
Fusioneer
Posts: 54
Joined: Wed Sep 18, 2019 3:53 pm

Re: Instancing Nodes Between Fusion Comps Within Resolve

#3

Post by white_wizard » Wed Jul 29, 2020 11:14 am

That's a promising approach. It would useful to be able to have a reference node write it's data to a txt file so it could be read by the instance node, rather than adjusting everything via txt file.

Perhaps a script that when run, scans the comp and writes all nodes and values to a txt that can be read by the instance nodes.