crew
Kent Trammell (theluthier)

35 replies · posted

Backhoe Collaboration: File Sharing & Library Linking

This is a guide for collaborators of the Backhoe Citizen Project. Hopefully a clearer explanation than what I gave during the livestream 😅

File Sharing

Team projects are inevitably complex and this backhoe project is no exception. Each of our respective parts contains dozens (sometimes hundreds) of pieces to keep track of. The organizational difficulty increases exponentially when trying to assemble all the parts into a complete backhoe model. There’s other issues too:

  • Duplicating data every time we import someone else’s part to reference against our own
  • Uncertainty if the model I’m using is the latest version

Luckily these issues aren’t new. All legitimate productions (whether professional animated films, amateur short films, video games, etc) solve these teamwork hurdles with shared file storage. Shared file storage means everyone has the same access to all files at the same time. This way everyone has the most updated files dynamically and there’s no need to manually share files any more. Online solutions have been around for a long time: Dropbox, Google Drive, Mega, etc.

Google Drive is my proposed choice for utilizing file sharing for our backhoe project. We’ve used it before as a community to help Omar render shots for his demo reel. This means we all will need to have a Google account (which comes with 15 GBs of Google Drive storage for free). The website makes it pretty easy to setup if your on Mac and Windows. I’m on Linux and use a paid app to accomplish this. If you’re on Linux and want more details let me know, but my guess is most of you are on Mac or Windows.

Setup Steps

  1. Sign up for a Google account if you don’t already have one. If you already have one and are familiar with Google Drive, make sure you have a couple GB’s of storage available. This project shouldn’t take more than that.

  2. Optionally you can install Google’s Drive applets to auto sync your Google Drive to your computer’s hard drive. This is the most automatic option but you can also opt out and upload your files manually. If you choose to opt out then make sure you’re diligent about uploading so everyone else can trust your contributions are up to date.

  3. Send me an email (kent@cgcookie.com) with your gmail address if you want to sync up with this project. I will add your addresses for sharing manually to protect our work a bit.

  4. Once I add your gmail address to the project’s Google Drive directory, you will have sharing access. Then you can navigate the directory on the Google Drive website. It will also start syncing to your local computer if you have the applet installed.

  5. At this point we’re all sharing the same project directory! CHA-CHING

Library Linking with Blender

Now that we’re all sharing the same project files dynamically, we need to implement Library Linking within our .blend files going forward. This is important because a key part of this collaboration is comparing our parts of the backhoe. In referencing parts this way it’s necessary that we can trust we’re all referencing the latest version of each part at any given moment.

An Analogy

I think of Library Linking as retrieving data from a singular source instead of duplicating and assimilating (importing / appending). Think of it like sharing a Netflix account: As the account holder you can give your login credentials to friends and family so they can access Netflix content through your account. The result is simply your single account being referenced by multiple devices. If you edit your account, like cancelling for example, all other devices will cancel as well. Your account is not being duplicated and passed out to each person - all of it is based on one source account.

Circling back around to our project, so far we’ve all been duplicating each other’s model data whenever we append to our scene. Blender’s linking feature allows us to interact with a reference version of other .blend file components as if we’re sharing a netflix account. In fact all data blocks can be linked between .blend files: Objects, materials, collections, scenes, etc.

For this project we’re interested in linking Collections because they essentially serve as file folders for our Blender scene’s objects. If all of Shawn’s loader arm objects live within a single collection, everyone can easily link that collection into their own Blender scene.

Masters of Our Domains

Keep in mind that linked libraries are limited by not being editable as a reference. They come into Blender as a singular object without the ability to change materials, no edit mode ability, no modifier ability, etc. They’re only editable in the source .blend.

This works well for us because each of us can be responsible for a singular MASTER version of our respective parts. Then each master version gets linked into everyone else’s file as needed, including the MASTER assembly .blend featuring the completed backhoe.

The key word is “MASTER”. If that word is in a .blend file name, collection name, or file folder name we all know what it means; it’s THE ultimate version of that thing. The only collection within a master file that we want to link will have “MASTER” as a prefix. If we all adhere to this rule it should be pretty clear how everything works.

Legend for Linking

This is a key for all collaborators to understand and work within the Google Drive project folder:

  • MASTER_dog-434e_model-assembly.blend is the scene file that contains links for all backhoe parts, resulting in the completed model

  • MASTER_partsis the subfolder that contains all MASTER versions of individual parts.
    • Example of mastered part:  ADRIAN2301_dog-434e_engine_MASTER.blend
    • Do NOT rename these files, only overwrite them when you’re ready to update your part. Any file that contains a link to these files will break / error if the file is renamed.

  • WIPis the subfolder within MASTER_parts where you can save your iterative work-in-progress versions.
    • There’s no restriction in this folder; you can name your files whatever you want.
    • When you’re ready to update your wip version into the MASTER version, simply save your .blend over the MASTER version in MASTER_parts. Doing so will automatically update all links in other .blend files (once those files are (re)opened / reverted)

  • MASTER Collections: I’ve updated everyone’s MASTER part file with a MASTER collection in the outliner.
    • Do NOT change the name of this collection.
    • Make sure all relevant objects are stored within this collection. Clean out any utility objects (objects not intended for rendering) by deleting or moving to their own collection outside the master collection.
    • Only link this master collection for referencing in your own scenes.

I believe that covers everything...but I will update this post as needed for clarification. Go Link Go!