This task is about how to handle linked groups (typically, whole characters with meshes, armature, often other helper objects…) with static override, as a replacement of proxies. Current idea is briefly exposed below, any input on use cases/scenarii would be appreciated, main goal here is to ensure final design/system:
* Allows everything that is currently possible with proxies (while hopefully being more robust).
* Allows some key features missing from proxies currently (mostly aware of the multiple independent 'instances' of a same linked group).
##2.7x proxies
In Blender 2.7x, when you link a group (and instantiate it in the scene), you can create a proxy of each of its grouped objects (usually, its armature). You can then edit that local proxy object, which will affect its 'copy' in all instances of the group (which means you cannot have several different animations for instances of a same linked group e.g., currently).
##2.8 static overrides
Static overrides work in much less weird/hacky ways than proxies, which means that making a static override of the group ID alone will be useless currently. Further more, another goal of the new system is to allow several independent 'local instances' of a same linked data.
Idea is now to always make static overrides (and instantiations) of all objects of the group. This will easily allow for multiple copies of the group, and solve a whole lot of issues with double-parenting glitches. So to summarize, process would be:
# Make override of group itself;
# Make overrides of all objects and relink them in override of the group;
# Instantiate all overrides of object in scene;
# Parent all overrides of objects to empty, and remove group instantiation (dupligroup) from that empty.
# Only tag for automatic override generation the 'selected' object (usually, the armature). That way we make auto-override process a bit lighter.