Maya/Blender/MotionBuilder Perforce Tool Deployment

I would like to create a Pipeline using Perforce. Starting with Maya I would like to setup my tool repository on Perforce and leave any packages on the user side as un-modified as possible.

I looked into:

  • setting MAYA_ENV_DIR and creating an Maya.env with all my settings.
  • setting MAYA_SCRIPT_PATH and creating a userSetup.py
  • setting MAYA_MODULE_PATH and creating a module with versioned variables for different maya versions.

Each of these files would be linked via a single System Environment Variable and updated via Perforce.

I’d love to hear people’s opinions on how flexible these approaches are in regards to different DCCs and experiences maintaining.

Maybe a combination of different approaches, or any alternative ideas in case all of these ideas are bad.

Thanks!

For reference there is a new Blender perforce addon Perforce Blender Addon by Purple Puppet - YouTube that you could check out and see how you might integrate it.

1 Like

Generally, having a specified launcher for each dcc that can prepare it’s environment is a good approach to start with.
Wherever possible avoid modifying the DCCs native environment.
For Maya, using Modules is a great choice. You can provide plugins, icons, startup scripts and further modify other env vars. Bear in mind custom shelves can be a pain when trying to avoid modifying the native environment though.
Motionbuilder has the basic concept of modules now I think? I haven’t had the opportunity to utilise them though.

Basically, the separate and common ddc libs have their place in a perforce depot along with the individual DCC startup launchers (bat files etc).
The launchers set the env vars prior to launching the DCC, pointing the DCC to use the client paths for the libs.
Each DCC has its own ways (quirks) to setup tools etc.

Edit: perforce clarify