← All ideas
  • Published 29 Sep 2019

link manager for production workflow

Hello, I think blender is really missing a more advanced link/reference manager window.

having a center place to do all link management can make huge scene assembly more clear and well organised

to me, this tool needs to :

  • import link
  • load/unload/remove link
  • reload link
  • lock/unlock link
  • append link
  • duplicate link (with independant geo/rig animation)
  • replace link by an other one (version change for example) with maintain of edits done in the scene (like animation s long as the rig is the same)
  • replace link with proxy (and all other usual link actions listed before)

also, about linking, I have tried several methods to reproduce a maya like production workflow :
actually I cant get the rigging part to work here is my actual process :

Modeling :

modeling something,put it in a MOD collection and register in mod.blend

Rigging :

open a new scene, link mod.blend > MOD collection
do object > relation > make proxy
create an armature
-create a rig collection and put armature + MOD collection and MOD proxy in it
parent the armature to MOD proxy
save as rig.blend

Animation :

new scene, link rig.blend > RIG collection
object > relation > make proxy and select the armature

I can now move the armature but the object isnt affected. I don't have enough knowledge to see if I failed something or if it's not doable in blender. If it's not doable, I think it's a major point to work on for studios (like mine) looking to switch from maya to blender

if I made an error, please let me know how to deal with link inception :)

best

100%

Development Status: Open

Upvote 5 Downvote 0
kaiz3r
29 Sep 2019

10 Comments

Josephbburg

I usually make a collection for the rig and link in the collection- this way I can add, subtract, rename, etc. anything in the rig and it still links correctly.

kaiz3r Author

* @Josephbburg * i'm not sure to understand, where is the geo in your case ? are they linked too ? the idea is to separate steps then a modeling artist (after a first publish) can still work on the model and the rigger can start working. when rig is done enough, animator can start working even if the model isn't totally final

it's the classic workflow in production using maya and, yeah maya is horrible for certain things, but for this it's really smart

Josephbburg

* @William Eguienta * Using collections, you can put all of the geometry of the model in a collection (let's say it's called GEOM-CharacterName). When you link in the collection, it brings everything that's inside it along for the ride. So you can add any number of entirely new objects to the collection in the source file, and they propagate to the file linking them in.

For a rigging workflow, it's not really possible to do everything on a linked-in model, since the vertex groups that define the skinning belong to the mesh datablock (not in a partition as in Maya). However, you can very easily work around this by keeping a link to the model in your rigging file, and periodically duplicating it (this will give you a local copy). Then, use the Data Transfer Modifier or Object>Relations>Transer Mesh Data to copy the vertex groups over from your current version of the model into the newer model. It's also possible to use the linked mesh data with the Data Transfer modifier, but that is a bit more complicated to explain.

Anyways, the workflow I mentioned is an excellent way to bring in a rigged character, since you can add anything to the rig and it will propagate further down the pipeline -say for example you've added a set of clothes or some props or something, it isn't necesary to add any new links, re-link, or anything like that. Linking in collections is similar to referencing a file in Maya, but allows more granular control (it won't bring in anything that isn't in the collection- so you can have a clean link even if the file itself is dirty).

Soon, static overrides will allow editing the vertex groups from other files (most parameters will work in 2.81, mesh data might be later though since it's a more complicated task. The rig proxy system is also due to be replaced in 2.81 with the new and better Static Override system.

I can explain any part of this in more detail if you're interested. It's hard to explain some of these things and I think you'll be able to figure a lot of it out.

Josephbburg

* @William Eguienta * Also:

open a new scene, link mod.blend > MOD collection

do object > relation > make proxy create an armature -create a rig collection and put armature + MOD collection and MOD proxy in it parent the armature to MOD proxy save as rig.blend

You shouldn't use proxies for this. Use linked data instead. The only reason to use proxies is to add animation to linked data, and even then it's usually best only to do that with armatures. Proxies are an old solution to a much harder problem and don't have robust abilities.

To clarify: Blender makes a distinction between an object and its data . Think about it like the Transform and Shape nodes in Maya, although it's more nuanced than that.

An object is like a holder for different kinds of data - mesh, curve, armature, etc. . This is what I mean when I refer to an object's data- I mean the mesh datablock it holds a reference to. An Object ID can also own animation data, constraints, and modifiers. So a mesh can be linked into a file, then the object data can be made local (but not the mesh data), and you can change the modifiers that the mesh uses or the Action that animates it. You can assign the same mesh datablock to any number of objects (instancing) and use any number of different modifiers and constraints on each one.

I want to reiterate: only use proxies in the animation file itself- they can't be linked in, they're not meant to do that. They're simply a bridge for animation data to affect linked-in data (and it only really makes sense to do it with armatures). Future Blenders will replace the proxy system with the much better Static Override feature, which is already working pretty well in 2.81.

kaiz3r Author

* @Josephbburg * hi, thank you for your really informative answers I think I understand it "on paper", Iwill try to replicate your workflow

bests

1
kaiz3r Author

* @Josephbburg * Hi, I used proxy to allow armature skinning on the object as decribed here youtu.be/tNOCSor0U5Y

i will try to clean this up, thank you

Josephbburg

* @William Eguienta * Leave a reply here if you have questions!

kaiz3r Author

* @Josephbburg * Hello, sorry I think I don't catch something... actually, I'm not able to duplicate the linked geo collection to make it a local copy, it duplicate it as link or return "no active collection". So for testing purpose I used append function (I have found a bug, if I append a collection that is linked in the scene, it will import the collection as link and not append)

I was not able to transfer vertex group to update the rigged geo, nothing happened with transfer Modifier and transfer Mesh data with "vertex group" selected

even if I wasn't able to reproduce your workflow until the end, I found that It can be really painfull to update multiple rigs in a production environment and quite hard to create a trustable python tool to automate this updating task

I still think that there is some changes to make link function more production friendly (as maya with referencing) to allow a fast and effective updates of assets.

I understand that blender isn't managing data as maya. In fact the way collections and linking of them works looks greater that maya to me, but the fact that we can't directly work on the linked geo or rig complicate things

To me, a UI to manage link is needed to manage easily bigger scenes, as suggested in the first post. In Maya we can have +50 referenced files in a shot. having the same complexity in blender, without a tool to manage them, sounds quite complex in blender actually

more important, finding a way to edit the link and store the changes locally to simplify scene update workflow and allow more complex segmentation of the work

1
pipeliner

this looks like something that TDs to for specific pipelines. Because projects have different needs for creating specific links

kaiz3r Author

* @pipeliner * the pipe i'm talking about it's just an example. the important point is to link file that contain link in them with link in them... then we have the freedom to organize the pipeline we want and sperarate steps coming from film industry with maya, it's the starting point to paralelize steps insteed of working one at the time