Linking a character rig

I’m working on a fairly complex character rig which I’m wanting to link into my scenes so that updates can be done with the master character rig file and thereby affect the final scene(s).

I’m getting all the armatures, skin mesh etc and I’m grouping them in Object mode level, then I’m linking the group into my scene files before performing “make proxy” so they become animatable.

Here’s where I’m hitting a few problems though:

  • There appear to be a lot of separate groups I have to make proxy to. It’s a complex rig with separate bone parts and I’m having to “make proxy” to each element which is very time consuming and annoying.
  • Despite unchecking the “Active Layer” box on import, I’m finding that all shapes are appearing in the current layer… some are meant to be boolean shapes and I don’t want them getting in the way like they are now.
  • I’m noticing a big lag in the movement of some parts of the rig when using a linked file. It’s smooth as when using the original, but I’m finding that once the character is linked, some parts (e.g. eyebrows) seem to need “catch up” refreshing as they are sometimes left floating. This makes posing more tedious than it should be.

Does anyone have some insight into these areas?

I’ve partially solved the all-on-one-layer proxy issue with a work around. The boolean shapes I don’t want to be seen can be hidden in the source character file, and then they will likewise remain hidden when the character is linked. It’s not quite what I was wanting in terms of being able to control what goes where, though it will work for the time being.

Still looking at the other issues… any takers?

Firstly, it’s well acknowledged that there are problems with the current proxies, which is probably a cause of one of these problems.

Now for the specific problems you’ve got:

  1. I’m not sure why you’re having to do this. Put all the relevant controls for your rig in a single armature, and you’ll only have to proxy that.
  • If you need to deal with shapekeys, then put in some drivers so that you the single control rig can control them.
  • If you need hiding for certain parts, use layers and/or py scripting.
  • If it’s related to SplineIK in any way, I’ve always advocated using a deform rig for the SplineIK chains + all the deformer bones, then only putting the animator controls in another armature (which is the one you proxify).
  • If you’re using some object-level controls as part of your rig: this is not Maya (with no real dedicated rig datatype AFAIK)
  1. When creating your groups, from the panel for the group in the Object properties, uncheck the layers that your bone shapes are on. Yes, that’s what that bunch of layer buttons in those group panels are for.

  2. I’ve heard of this one a few times, though it always seems a bit intermittent. It’s probably caused by some kind of depsgraph oddities related to some combinations of dependencies between groups and the proxies. While you might not be able to totally get rid of these issues, I’d check on 1) first and see if reducing the number of objects you proxify improves the situation.

:stuck_out_tongue: Ah, the ever present “I’m not sure why you’re having to do this”.

I’m using more than a single armature as a work around for a bug in Blender. Simply put, rigs with IK don’t tend to scale nicely (as in master controller to position in a scene) in blender; it breaks the constraint. Here’s an example to show what I mean, along with my personal work around:

Download example: IK_resize_bug.blend (65.1 KB)

…I think I submitted this to bugtracker years back, but for now it’s a rigging problem when using Blender.

On layering: I ultimately did want to use layering to hide parts (I prefer this approach) but some are boolean shapes (e.g. not bones) which worked by “cutting into” the spherical eyes of my character to make them into rectangles on a squint (e.g. invisible eyelids; a nifty approach for cartoon eyes). The problem was, the mesh items refuse to proxy in on their original layer (Despite unchecking the “Active Layer” box on import) and I was forced to revert to visibility hiding (not my preferred option).

I know Blender isn’t Maya; I’m using shaped bones instead of parenting to curves (as an aside; my formal animation quals are in Maya but Blender is my preference. I got in a spot of trouble with my animation school when they found I was using Blender but that’s another story; albeit an interesting one. They later on gave me a job when opening a new floor of Maya for an induction course was going to be too costly)

Yeah - the glitching does seem to be more of a screen refresh kind of thing. Unfortunately, the rig is already pretty well optimised. I have six arms and legs (IK, FK and the “real” set which switches between the two by constraints and a switch controller) and also certain padlock controls which are used to toggle on/off limb stretch, another set for locking FK to forwards versus all directional movement and even some sliders in there to change the procedural skin colour on the fly… can’t make the mesh much simpler unless I downgrade the whole rig.

I’ll have to look more into the layering how/to of things that you mentioned. Proxy isn’t something I use often but I think all rigs should be made ready linkable in order to meet production pipelines, and I’m wanting to get more animation underway.

Thanks for your input and suggestions there. I was beginning to think I hadn’t phrased things clearly or something until you replied. :yes:

Oh dear – not a screen refresh problem. I’ve just done a test render and the eyebrows of my character are 1 frame behind where they should be, disappearing inside the head when he runs. The eyebrows are basically shaped curves hooked to empties which are parented to the bones. Hooks are of course constraints and I think the problem is as reported here:

Now - to fix it…? I wonder what parts need to be proxied or even completely unlinked (appended)? I’m not entirely sure on the proper process here.

Okay - I had to make proxy to each of the empties which was a “hook” for the eyebrows. At this point, the eyebrows shot off the head and stuck to the empties which were stationary in mid screen, Placing the character in rest pose, the next step was to reparent those empties back on to the eyebrow bone controllers. Not friendly, though I guess if I save the file I have a starting point for a new scene involving the character. A lot of work (too much really) if I need to quickly link multiple characters into a given scene.