About making objects/subgroups unique inside copy - when you make group unique you can use f6 option to change max depth parameter. Maximum depth describes depth for which unique groups will be created. If set to 0-inifinite depth, meaning all subgroups will be made unique. And then if you want to make objects inside not instanced just pres ‘U’ hotkey - and choose ‘Object & Data’. This way you have control on what parts should be instanced and what not.
“saving only heirachy of consisting grous inside” - when making one Group Instance unique, the hierarchy is saved but as separate ‘tree’ -that is the whole point of making one instance unique. At beginning both of those trees may look similar, but they are not connected anymore.
For linking objects together it would be required to use constraints - copy transform. I show this in gif below:
Workflow is bit convoluted:
- create empty and add it to group
- parent objects inside group A to this new empty. Close it
- duplicate group and make in unique (B)
- now in group B, add Copy Transforms (local) constraint and point them to similar object in source Group A.
I think this is what you want, but this workflow has some limitations:
- you can only move objects inside source Group A. All transformations inside duplicated groups B,C,D etc. will be constrained to group A, so you won’t be able to move them (there is no way around it, or cyclic dependency will be created). It may be confusing for users, why can’t they move objects
- because of how constraint works, you won’t be able to move duplicated objects in groups B,C,D (unless you delete those constraints)
- if you add new objects to uniques copies of group - the workflow becomes mess - you would have to remember which objects are still connected to original object, and which not. If user wanted to parent some objects inside group, he would have to take into account that it may break the parent-child link to helper empty.
I mean copying objects relation idea is cool, I can add this kind of stuff, for testing, but I’m afraid the result may be messy, and in the end nobody will use it.