How to use variable inputs on output devices?

How exactly are the variable inputs on the heightmap/bitmap output devices supposed to work?

I’m trying to use an automation variable to drive a filename, but the automation variable device only supports float values??

What am I missing? what should I plug into these variable slots to be able to drive the device’s parameters?

I think they are used for scripting, allowing you to write a World Machine script, selecting a node and change the file name accordingly, but I’m not entirely sure, as I don’t use that feature of World Machine.

Thanks for the response!
Yep, my ultimate end goal is to set the parameter via script.
But first I just want to figure out how to do this in the node editor.
The image may be misleading a bit, as I’ve renamed the automation variable device to “filename var input” (was hoping to script that part after the fact)

However, the device only seems to support float values, and not strings. Furthermore, I can’t seem to find any node/device that outputs strings. Which leaves me wondering what kind of device I should be plugging into the “height output” filename input.

If anyone has experience using this functionality, and would be willing to point me in the right direction, I would very much appreciate the assist.

Edit: sorry if this is a noob question. I’m very much new to this aspect of WM

Hi Jeff,

You’re right - the automation variable currently is just floats.

I’d love to hear more about the workflow you’re trying enable - I can see how scripting filenames would be certainly useful.

Hey Stephen,

Thank you for the clarification!

I’m working on a plugin for the prism-pipeline(open source vfx pipeline framework) and want to make a template starting scene that automatically links up to some pre-set output folders for various things (like geometry output, heightmap outputs, and bitmap outputs).

Essentially, I’m using Prism’s functionality to copy a template scene to a specific project folder. Then I build output directories to handle organization and versioning of individual world machine outputs

I have it all set up to write paths for various WM output devices, but that’s where I hit a roadblock.

I was planning to generate an automation script (that a user can run when loading the initial scene) to automate the hookup to the proper files on disk. I was hoping to use a string in an automation variable to drive a file path of a given WM output device.

My current workaround is to just write those paths out to a txt file for the user to copy-paste into the specific devices in WM, but it would be awesome to automate this process as well and reduce the potential for user error.

I can share some progress, of the plugin I’m making, in a little while - just need to make a user guide


Just following up:
Here’s the project that I was talking about for more specific context.

The 3rd GIF on the readme shows the gist of the workflow. It becomes very manual when it comes time to enter paths manually - especially when there are lots of output devices(which I plan to have in my template WM file)

Right now I have it generating a txt file so a user can copy paste paths into their output devices easier - but it’s still a manual process.

Id love a Python API - but obviously that’s a huge endeavour and probably a low priority given the other more important features being implemented.

As an alternative, and justification for asking to enable strings in automation variables(to connect to filepath inputs on output devices):
I want to generate an automation XML script and feed my generated paths to it. That way a user can run the generated script when they open a new file and have the paths automatically connect for them. Less error prone, than copy-pasting, I think.

Edit: also it will help a ton when versioning up files(v0001 to v0002 and so on) so I can just run a script and it will change the output devices to a new version and still conform to naming conventions in the pipeline.

1 Like