GSoC 2020: Outliner Discussion and Suggestions

Groups never had that functionality in Blender, they always were a tagging system. I believe you’re thinking of Maya groups ? (which really designate parent-child relationships… rather misleading when switching to Blender). In any case, the sole fact that we’re having this discussion shows that the whole system should be improved… either by allowing object hierarchies to inherit visibility, or by some other polishing.

Latest changes. The build with these improvements should be live soon, I would love testing on these more complex features to code. https://blender.community/c/graphicall/Qmbbbc/

New collection from selected

new_collection

image
Also the context menu has options to always make an empty collection, or to link objects if desired.

Custom object sorting

reorder_objects

reorder_objects_multiple
This has one known issue. The location where the objects are moved to is not always accurate.

You may also notice in the above GIFs that you can set parent without holding shift.

I also made outliner modifier drag&drop more reliable.

30 Likes

Nathan, I have tears of joy from seeing those manual object resorting gifs! No more stupid naming hacks to reorder things. You probably have no idea how many years some of us have been waiting for this in Blender…thanks so much for bringing this goodness :slight_smile:

7 Likes

Those are some much needed and welcome changes, thank you @natecraddock . By the way, there’s a quirk with the way the outliner view moves up or down when you close some hierarchies (v 2.83.2). The outliner view will not reposition itself until you move the cursor which will then of course throw you way off and you end up selecting something else you did not intend to.

Is this intended? Let me know if I should make a vieo to make it more clear. Thanks in advance.

One more question, if I set ALT + LMB click as a shortcut to select ALL objects inside a collection, why won’t it work unless I have selected said collection in advance? Is there a way to make it work on the first click and not have to select the collection it prior? It would save quite some time.

1 Like

I guess you were referencing that GIF.
In this case, I think one would expect the “Collection 2” (and its objects) to be placed into “Collection”.

Do you think that you will find a way to correct this? (the hierarchy / the order of objects)?

Thank you Nathan for this build. I can’t wait to be able to test it.

No, this here is working as intended. Scene Collection is active which is the collection the new collection is inserted to. Had Collection been active, then Collection 2 would be a child of Collection.

2 Likes

First of all, thank you again for all the great work! Really love the progress on this project.

Quick question on the side - is there a way to change the color for active collection highlights in the theme settings? It’s easy to miss.

1 Like

I think that is a bad idea.
It makes parenting too easy to make by mistake while you just want to reorder objects.

That makes sense for an automatic sorting that user is not supposed to tweak.

But for manual sorting, I think that is annoying , forcing user to be really careful where he have to release mouse button.

Active Collection is indicated by a clearer background of icon collection.
Problem is that color of collection is expressed at same location.
So, when color tags are used, we don’t know what collection is active one.

Instead of just highlighting icon to indicate active collection, maybe you can highlight icon+name of collection.

I have to disagree on this one. It’s pretty common in other softwares, and the main point is making it easier. Reordering a bunch of objects inside a complex hierarchy should be something one can do easily single handed. Wouldn’t want my coffee to get cold just because I need to organize a scene. :slight_smile:

6 Likes

But hopefully after you made your initial selection, you can just right-click and choose “select hierarchy” to get ALL children selected, right?

What I am pointing is that in branch, it is currently easier to parent objects than reorder them.
But you are right, we could do better.

We have whole thickness of a row used for that :

  • Currently, dropping on the left is clearing parent.
  • Dropping on icon and name is setting parent.
  • Dropping on the right is moving inside collection.

As a result, to reorder, we have to drag in between 2 names. And to move outside of collection, we have to drag until reaching expected parent collection (maybe, first line of Scene collection).

I think that “Reorder” should be behavior when dropping on the right of row.
That does not make sense to have “Move inside Collection” doing nothing, when object is already inside collection.
And if object is dragged above rows of another collection, dropping should reorder this collection by insertion of object, anyways.
To me, a “Move inside Collection” only makes sense if it is limited to dropping above a Collection row or a new Collection expand (color tag) Line.

If we have a “Move inside Collection” working on new lines ; we could avoid a lot of scrolling or using M menu. But that implies to be careful to clear parent by avoiding to reach a collection line.

Isn’t it like,

  • if I drop an object onto another, it’s parenting,
  • if I drop it above, below or between 2 objects it’s reordering, and
  • if it’s dropping it onto a collection it’s putting it inside said collection?

I definitely wouldn’t want to drop anything onto icons or to the left or right side. That’d feel like those agility games I always sucked at. :slight_smile:

If the list is really long and autoscrolling would be fiddly we can just use the m menu in the viewport to move it to any other collection.

I don’t have a strong opinion in the right click menus and that outliner menu as I probably wouldn’t use it all that often.

3 Likes

Amazing new changes. Things are moving fast!

Regarding the manual sorting: currently we only see a preview line as indicator of where the dragged element will go (which can be hard to see).

Would it be possible to preview the changes in the outline tree live while dragging stuff around? This is how the new modifier drag and drop works and I’ve found it super easy to sort them.

There are many animated gifs on this type of visual feedback in this design task from William reynish https://developer.blender.org/T67893

1 Like

That behavior is limited to width of names of objects.
If object name is short, it is difficult to reorder.
Very annoying, if for instance, your objects are letters.

And there is no space between rows.
So to be precise : you just have one half of thickness of row to Set Parent or to Reorder.
The whole thickness of row, on the left, to clear parent and the whole thickness of row, on the right, for nothing.

Currently with collection reordering you can grab it at the name (else it’d box select) but you can drop it wherever you want, disregarding how long the name is. I’d expect it’d be the same with objects. Anywhere on the whole row.

As for the other thing, I’m not sure. I guess the tolerance could be increased by a pixel or two. I’m used to it though, can’t say I’m having big issues with it. I’m fine either way.

Currently, what I experimented using the branch is that.
Drag&Drop_Space

When object is already part of collection, Move inside Collection has no effect.
So, the whole Yellow space is completely lost.

What I suggest :
DD_suggestion

1 Like

There’s no build on graphicall to try out object sorting yet, but I really hope it’ll be similar to collection sorting.

If we slice up the area horizontally into invisible areas with different functionality - especially if it varies on name lengths for the drop - it’s just gonna be super tedious to use. Currently Collection sorting is working fine, I don’t see why object sorting should be any different. Talking about how the whole width of the row can be used if I want to parent or reorder something.

sorting

The build was just updated. https://blender.community/c/graphicall/Qmbbbc

4 Likes

Ah, OK, now I see what Ronan meant.

Just my 2 cents but I’d prefer to use a similar functionality than for collection sorting.

  • Unparenting by dropping it to the right of the name is not practical, as one can’t unparent objects and put them into a specific spot in one go.
  • Parenting being limited by only dropping it onto a name is keeping the whole right part of the row unused, while as pointed out would make parenting objects with short names a tedium.

Putting something into a collection or under an object hierarchy should not be all that different. It’s just my take though, maybe I’m just too used to working in other packages. Interested to hear what others think.

1 Like

You also need to think a situation where you want to cancel the operation, so you have to be able to drop those collections or objects somewhere in the viewport where you can cancel the operation.