…and that’s the Logik behind my reverse user group request. Essentially global, project, batch and user variables, by way of tokens that can be evaluated system-wide.
One application would be a publish. You would set up a global <project_locations> variable that pointed to:
/path/to/projects
…and upon project creation, Flame would automatically assign the <project> variable with the name of the project you’ve just created. Then maybe you create another global variable called <shots> and assign it, in my case to the name:
_04_shows
…which corresponds to where I publish the shows out to in my job structure. With those two changes AND provided that those tokens could be part of an openclip publish you could move the entire project to another location on another machine and provided the other machine had mapped those two variables to their respective new locations, the whole system of an openclip publish would resolve all paths correctly, provided the publish mechanism is updated to allow for tokens at publish and Flame is updated to allow for user definable tokens.
So in the example above on my system, the global <project_locations> variable is set to say →
/Volumes/nas/projects
…and say that a freelancer is using SynologyDrive or something with the project mounted at →
/Users/Freelancer/Documents/nas/projects
Then the idea would be that the freelancer could just update their token for <project_locations> to reflect the new location, all paths revolve correctly and you’re off to the races. The system is based on resolving the tokens at read time, not baking them at write. It’s an important differentiation.
From there, relative paths become almost inconsequential, especially when you consider the you could create a dynamic token that’s called <shot location> which points at →
<project_locations>\<project>\<shot location>\<shot>
…and which resolves it’s location based on the shot number on a per-shot basis set from the token context of batch. Of course it doesn’t mean you couldn’t use relative pathing. One could argue that the most important variable needed for relative pathing to work would be a global <project_locations> that once it was set would enable traversing the project hierarchy with ../
or ./
notation.
$JOB is upgraded version of $HIP, and would have been a better example for what I was out to explain. But $HIP is intrinsic in that it is set on creation or load and therefore allows the magic of relative pathing without user intervention.