Linking a rig more than once

We’re having some serious problem here. It seems there’s no way to link an external rig more than one on a scene.

Import a rig, make a proxy for it, import it a second time and… it answers to the first proxy only. Changing the order of importing/making proxies won’t change.

We’ve lived with the problem for some time, as we discovered that we could import the thing and make only the object (not the mesh) local and do the same with the armature. This way, one can have the same rig on an external file that can suffer maintenance changes and answer as separate things inside the scene…

…until we did that with an object with drivers.

We’re resisting as hell to the stupid solution of having multiple copies of the same file.

Any ideas? Any pointers?

Hum,
That’s a big issue with proxified rig (that you can turn to your advantage in some cases).

But to have many instances of the same character you must cheat.
One solution that I heard of that work on linux is to make symlink of the original blend file, it’s like a copy but once it’s done you don’t need to redo the copies.
That way blender thinks it’s different files .

What I do generally is a little script that duplicate the scene in the .blend file . So when you change something you change it in the “master” scene, run the script and it will erase previous scenes and re-do copies.

The only thing that you need to take care is objects and object data names (for the armatures) . They need to stay the same or blender won’t find them once you’ve made an update.

Chances are that these issues will be addressed in 2.8, but for now we must use workarounds …

I believe that as part of the 2.8 project roadmap https://wiki.blender.org/index.php/Dev:2.8/Source/DesignDocument that the item will be for local copies when you link so you won’t actually proxy in 2.8. Now I’m not sure if that means you can link the same one twice, but I assume if you are local, then it should work. You might want to touch base on the developer site to see if the new everything proxyable will do that for you. You might want to check the developer portals https://code.blender.org/about/ I think I saw this issue raised more than one.

Make multiple, but identical groups in the original file. The only difference between groups should be the group name. Link in each group to the new file and make it proxy. They will all be the same, but you can control them separately.

Good luck!

That is great to know. I never thought of trying that. Instead, I created soft links to the same file on my file system, with each file having a unique name of course. Then, I could link the group once from each file. But, just creating more than on group with unique names is much easier!

@DanPro why didn’t I ever think of that ? Thanks a lot.

Hadrien

That’s really something I haven’t tried! Gonna give it a shot.

About all other posts, there are some great ideas there that, while they’re not for me (I can’t change the entire team to Linux right now, for instance), other people may benefit from. Thank you all.

This forum could really use a ‘thanks’ button!

Thanks man. I Googled til cows come home for this bit and finally the answer is found!

Are you guys getting this one to work? The idea is awesome, but it’s failing here.

I’ll have to apologize for this. I was a bit lazy when I tested this and did not go far enough to see the real problem. Creating new groups for the rig and linking them separately appears to work until meshes are parented to the rig. I tested an armature only. When meshes are added to the equation, they get confused on which proxy armature to follow.

Sorry for the bad advice. I guess the only solution is to duplicate the rig and child meshes multiple times in the original file, make new groups for each duplicate, then link them separately, or use multiple blends for each instance of the rig you’ll need.

Neither is an ideal solution.

Sorry, DanPro

No problem.

The idea was so awesome it’s a pity it didn’t work.

Hey guys,
We are trying a new simple way on how to do that. Ideas are welcome.

  1. link the objects (armature and meshes) from the object folder. Select all of them in the same time and “Link from Library”.

  2. select the meshes (make sure that all objects are visible) and go to the Object Tab in properties and make them local.

  3. select the armature and go to the Object Tab in properties and make that local too.

Repeat as much as necessary!
That’s it!

Cons - We’re gonna lose the objects transforms link
Pros - We keep the texture/material and the data link.

I think if you want to keep your character in one file, simply create a new scene with a full copy. That will rename all the objects and the rigs so you can link them into another file as group, group.001, group.002 etc. Then when you do your proxy, the armatures will relate the same way with proxy rig, proxy rig.001, proxy rig.002 etc assuming you named your armature rig. That may help you. Thank you Dan. I just tweaked your thought a little.

Having more than one file is but a small nuisance. The big question is being able to perform maintenance in an orderly and pipeline-oriented way on the rig.

That’s a good technique, the only issue is when you want to update your rig/make changes, you need to be cautious of a a few things :
Armature data should stay the same , so in group.002 you need to have rig.002 that have data Armature.002
If not blender will get confused when loading the updated rig.

@dandrea , if you don’t care of having multiple copy of the same file then the copy/paste of the file is the simplest way to do , it can be easily be automated too.

@everods , I found better to keep things linked as much as possible (even the rig) so you can update it if needed. But at some point it isn’t as necessary . Maybe it’s a simpler way to do if you’re well organised from the beginning…

That’s our current solution (@everods is my teammate) but, as I say 'round here, it’s as elegant as a platypus to say the least. It’s kinda lame.

Having a proper fix for this would make Blender a much more professional tool. Considering the development speed, I kind of expect a revamp on this system soon. Just asking: do users that can’t write code have any saying on this?

It’s a well known limitation of the proxy system, this as been like this since the first implementation of dupligroups.
But it can’t be easily solved because of how dupligroup/proxy works.
In blender 2.8 there won’t be armature proxy anymore , it will be replaced by a better system so hopefully this will be solved. Dev’s are well aware of that issue.