I am faced with configuring SG to match an existing file system, which does not resemble SG’s out-of-the-box file structure.
I face two major hurdles:
1.) Local file system root varies between users.
We use perforce and do not enforce identical drive & directory names for user clients.
Our existing (non SG) pipeline tools all support this via environment variables.
SG has no way to use an environment variable in a storage root. (seem like a significant oversight)
My thought based on other posts
is that we must insert a special token in config/core/roots.yml
such as %GAME_SOURCE%
and modify tk-core
and maybe the tk-framework-desktopserver
to consume this special token.
Is that sensible or foolish?
2.) Or asset tree is separated by departments, with “department” as a parent of “asset_type”
for example we might have
source/modeling/characters/goblin/… for zbrush and substance files
source/animation/characters/goblin/… for Maya rigs and motion files
the default for SG is asset_type/asset/pipeline_step(department)
while ours is better described as pipeline_step(department)/asset_type/asset/…
It seems as though this will require adding a custom entity for “department” so that it can be added before the asset_type.
Is that sensible or foolish?
I am new to SG so I may be missing some other, superior way to customize it to our file system, if so please let me know.
I think it sort of does:
Not sure how well this works.
There is also a Shotgrid Perforce integration:
1 Like
Thanks for sharing. The documentation implies that environment variables are intended to be an exception rather than the rule.
It states that environment variables can be used in 2 cases:
1.) “If a local storage doesn’t define a path for the operating system you are currently using”
2.) “If you are trying to resolve a file:// URL on a different operating system from the one where where the URL was created”
It goes on to encourage explicitly enforcing an identical root location on all machines ( a non starter for my project)
So it is unclear of an environment variable would simply “always work” in a file system schema. It does not appear to be designed that way.
I must say I am surprised at how baked in the default schema seems to be.
This is frustrating as the toolkit seems entirely reliant on the schema,
I don’t think we can leverage tk unless we can beat the schema into our needs.
You could use tk-config-basic which as far as I know does not rely too much on schema.
Also you could probbaly edit something that would make the system look at a template string instead of a path and therefore prepend the local storage path.
Or make sure that your workspace folder is mapped as a networ drive (windows, not sure what the alternative on Mac/linux is)
What DCC software are you using and wanting ot use with SG?
Thanks for the suggestion. We’re using Maya predominantly though we might want Z brush or substance asset tracking as well.
tk-config-basic seems to mostly work - no obvious crashes , but it is clear that there is some schema operating: it overrides our MAYA_PROJECT env vars with a local schema path. I need to stop that. I guess tk-maya is the place to look.
I don’t think the basic config will work for us. we want to control the file system schema.