Page MenuHome

Weird offset when collection is instanced
Closed, InvalidPublic

Description

Description:
There is a weird offset to an instanced collection.

How to reproduce:
See the file included. (just instance the "tiles" collection and look at how it appears way in the distance with a weird offset to its origin)

Event Timeline

Philipp Oeser (lichtwerk) claimed this task.

This does not look like a bug:

  • the collection itself has its "offset from the origin" at 0 0 0

  • your 3D cursor is at

  • so when you instance the collection, the instance will be placed (with its origin) where the 3D cursor is
  • the objects in that collection themselves are away from the origin

Place your 3D Cursor at the origin (optionally set where the collection has its "offset from the origin"), and you should be fine...

Afraid we have to close this, feel free though to comment again if issues persist...

Felix (BlenderSpot) added a comment.EditedFeb 25 2020, 3:01 PM

I think i understand what's going on but also wanna comment on two issues that arise from this.

  1. Let's say i have a crowded scene and i'm modeling far away from the world origin. I group my objects into a collection, place the 3d cursor roughly at where i want my instance to appear, and instance it. Now the origin (of an instanced collection) is at the 3d cursor but the geometry itself is way in the distance to be found.
  2. The "offset from the origin to use when instancing" (in the collection panel) is very confusing. It's not clear what exactly those offset values represent (seems like it's an offset from the world origin). There is no visible indicator (in the viewport) of where the origin is, only some numbers in a panel menu, and It doesn't allow for a tool assisted origin edit (something like "set origin" but for a collection, so that there is no need to adjust the position along all 3 axis manually)

It also touches the issue of "affect only -> origins" doesn't work for collections and instanced collections, but i made a separate task for that.

Just a UX related note:
I thought i could do at least a hack where i add an empty to a collection and then add a driver to those offset values, in the collection panel, to copy the empty's location so that the empty now would represent the collection's origin. Turned out i can't even do that, i can't add drivers to the collection's offset number boxes.

(Update/Edit):
Do you think it's worth creating a separate task for inability to add drivers to collections' offset number boxes?

The "offset from the origin to use when instancing" (in the collection panel) is very confusing. It's not clear what exactly those offset values represent (seems like it's an offset from the world origin). There is no visible indicator (in the viewport) of where the origin is, only some numbers in a panel menu, and It doesn't allow for a tool assisted origin edit (something like "set origin" but for a collection, so that there is no need to adjust the position along all 3 axis manually)

Usual workflow so far is placing the 3D Cursor where you want the offset to be, then set the offset from the 3D Cursor:

It also touches the issue of "affect only -> origins" doesn't work for collections and instanced collections, but i made a separate task for that.

I have replied there (and worked on making that possible), see T74176: Transform object origin support for collection instances, D6931: Transform: support 'Affect Only Origins' for collection instances (WIP)

Just a UX related note:
I thought i could do at least a hack where i add an empty to a collection and then add a driver to those offset values, in the collection panel, to copy the empty's location so that the empty now would represent the collection's origin. Turned out i can't even do that, i can't add drivers to the collection's offset number boxes.

(Update/Edit):
Do you think it's worth creating a separate task for inability to add drivers to collections' offset number boxes?

There is some stuff that is not animatable (and thus not drivable), collections being one of them, so this is by design atm...

Usual workflow so far is placing the 3D Cursor where you want the offset to be, then set the offset from the 3D Cursor:

Thank you for pointing that out, i wasn't aware of that.