Page MenuHome

linking sometime breaks location and/or scaling
Closed, ArchivedPublic

Description

System Information
All

Blender Version
Broken: 2.70a

Short description of error
Linking a group of object is sometime inconsistent. Some objects are properly scaled/located other not.

Exact steps for others to reproduce the error
1)Open attached file. Both cubes are above each other and of the same scale.
2)Start a new file. Link the group "Group" from the attached file : one of the cubes is elsewhere and with another scale.

Event Timeline

mathieu menuet (bliblubli) raised the priority of this task from to 90.
mathieu menuet (bliblubli) updated the task description. (Show Details)
mathieu menuet (bliblubli) edited a custom field.

It looks like it's due to the parenting. The linking doesn't import the required parent or doesn't unparent properly (keeping the transforms), thus breaking the group. Textures, meshes and all other required datas seem to be automatically linked properly.

The parent empty of the lower cube is not part of the group! This means it does not get imported into the new file, and the transform of the object (previously relative to the empty) is reset.

I don't think this can be considered a bug. One might wish for different behavior when importing an object but not it's parent (like: apply parent transform first so in world space we have same transform), but generally this is ambiguous and so the simplest solution is the best (e.g. what happens when the parent is animated?).

@Campbell Barton (campbellbarton) Assigning to you for decision. IMO can be closed, but you have more experience with all the linking stuff.

Lukas Tönne (lukastoenne) lowered the priority of this task from 90 to Normal.May 17 2014, 4:22 PM

when linking an object with a dupligroup, even if the duplicated object is not part of the group, it will be linked.
So from my point of view it is:

  1. inconsistent
  2. There are many real world case where it's really hard to hunt all parents. When working on self-made datas it's easy to know which objects are parented, but when you just want to take a part of a scene your colleagues made, what's the solution? Sometime even the broken objects are not directly visible. I lost a night rendering to see that an object was missing because it was moved to 0,0,0. So at least providing the choice for the user with respect to parenting would be appreciated.

Kind Regards

Campbell Barton (campbellbarton) changed the task status from Unknown Status to Archived.May 22 2014, 2:09 AM

We had a similar bug reported, where someone linked a scene and expected it to link in all groups too.

AFAICS this is something we could do but would be adding options:

  • Follow parent links
  • Follow object group links

These are more TODO's though (and its disputable how important they really are).

But I think its reasonable if you link in a group that the user includes all necessary objects in the group.

Having parents outside the group isnt prevented, but I'd consider it bad practice (At least only do it if your prepared to run into issues like this... and resolve or workaround them)

Probably it was me reporting the other issue (T40259). Anyway, can't we "expect" from appending a scene that the copy looks like the original? If this is the goal, it requires more than hierarchically processing the scene.

My other report was about objects not being added to groups where you were right saying it's not necessary. However, in the case I came across today - which seems to be very similar to what has been reported here - there was a group instance, and the parent of one group member did not belong to the group. I have several examples where this does make sense: The parent is an empty, and it is only there as a root object for parenting several objects in order to have a better overview in the outliner (i.e., there is only one top level node). It is not necessary to include it into the group. In addition, the empties in group instances do not really look nice. Same is true for empties used as rotators for arrays etc pp.
As the group instance looks as expected in the original file, the appended scene should look the same. However, the group objects had an offset because the parent to which their location is actually relative to, hasn't been imported, too.

I understand there can be two opinions about it. The decisive point is what is written in bold above. If it is the goal (which is of course only your decision), it's a bug, otherwise not (IMO).

Thanks anyway for dealing with this issue.

I would like to only work with people using only best practice and only Blender, but in my reality, I work with people doing their job as fast as possible or just with another way of organising/thinking and using other softwares. Punishing the guy at the bottom of the workflow for not working in a perfect environment would be harsh. Case where it is really annoying:

  • multiprogram environment: User A works with program A and export to an openformat (for example Collada) where groups are imported as "child and parents". People working with other program as Blender can't make their whole scene a mess by avoiding groups just because user B (in that case me) has Blender and Blender creates empty as parent as equivalent to program's B groups. If I quickly want to link some parts of the data (and not everything) I have to hunt all the parents first or remove them which makes the outliner completely unusable.
  • Multi-worker environment: Co-worker A use empties extensively and parents a lot for he's convenience and I have to link my work with his. I can't modify his data and I don't want to understand how he think (you know it from reading someone else’s code I guess). We can't even say sometime it's bad or good practice it's just different and we have to deal with other people mind. Fact is Blender shows me something and in the end I get something different.

As it's not a clear cut whether it's bad or good and regarding how much options the obj, etc... importers have, I think one or two more options for linking wouldn't make things hard to understand. Fact is it's is really case (working environment, users, etc...) dependant so it's should definitely be left to the user which behaviour to use.

Another point was consistency. When having a group with objects having duplis but not the duplicated object/group is not itself part of the group, Blender will automatically link it too so that what you see is what you get. So most user I know expect Blender to have the same behaviour for all linking actions.

Any news on that one too? Our Team heavily rely on linking and we loose many hours every week due to such behaviour. Please at least ask the user what to do (apply transform, link parent or nothing) for cases where no best decision can be made for everybody.