The outliner would take the form of a new window space within Blender, with a scrollbar. Horizontal shading is used (like iTunes) to create visual alignment and easily match up the lines.
As well as providing a nice view of the scene data in the blend file (and its structure), the outliner is also used as a 'context chooser', as a quick way to activate different datablocks for editing and display the data in its appropriate buttons window context/tab.
The
icons next to each datablock's name represent the type of datablock that it is
(eg. Object, mesh, material, etc). Left mouse clicking on a datablock's icon
(maybe the name, too?) opens up that datablock in the buttons window. For example,
clicking on a Scene datablock's icon will open up the Scene/Render buttons for
that scene. Clicking on a Texture datablock's icon will open up the Shading/Texture
buttons for that texture.
The datablocks are arranged in a tree, hierarchically according to their links. At the same level as datablocks, where a link is available but not used, there is an option to add a new datablock linked in place (the same as the 'Add new' buttons in the buttons windows). There could possibly be an option in the View menu of the outliner window space header to toggle these 'add new datablock' items on or off, to avoid clutter in large scenes.
Each datablock also contains a menu button (subtle grey double arrow) to choose a different datablock to be linked in place (same as the one in std_libbutons)
When datablocks are collapsed, the child datablock icons are displayed to the side, performing the same function (click to show in the buttons window). This allows you to save space, but still have quick access to changing contexts for all your various objects and obdata. The datablock's name is displayed in a tooltip.


And a look at a fully expanded example Object datablock and it's links (except for the Ipo block, read further down for that one ;)

Visual clutter could be a problem due to the density of text and icons. To keep it easy to pick out the datablock icons and names, we can use some altered UI controls which are more subtle and don't compete for visual attention by diming the text, and only showing the button itself when the mouse is hovering over it.

Now for the cool part ;) Something that would really bring this outliner to the next level is the ability to expand at least the Ipo datablocks further. This is a similar idea to Maya's Channel box, but would be better than it since you could edit more than one object at the same time (Maya's channel box only works on the selected object). This would be very useful for animating multiple objects (or even just multiple Ipos linked to the one object, like lamp & texture ipos) and wanting to visualise and set keys for various Ipo channels simultaneously.
Expanding
an Ipo datablock would give a list of the various channels that it contains.
To save space, and make it easier to work with groups of channels together, these
are further subdivided into groups such as 'Loc', that can be expanded to reveal
LocX, LocY, and LocZ.
Each ipo channel consists of a number field containing the Ipo channel's current value for direct editing, and a button with the channel's name which could work in a similar way to layer buttons (click once to select a single channel, shift click to select multiple channels). Selected channels would turn darker.
Selecting a group of channels such as 'Loc' would select all channels
in that group. By collapsing the datablocks and channel groups that you're not
interested in, there would be enough space to visualise and edit the channels
of several Ipos in the one screen, which would be great for animation.
The purpose of selecting the channels is to be able to perform actions on many of them at once. For example once could select a bunch of channels and add keys in them all simultaneously, which could be done via hotkeys or a right-click context menu (pictured). It might be nice too, to visualise if a key is set for that channel, on the current frame. This could be done by something like tinting the number field a different colour, or displaying a little 'key' icon next to it.


For bonus points:
* Having a list of available channels per object such as this would also help greatly if we had expressions capability in number fields. It would be a nice centralised list of the various properties that can be referenced in an expression (i.e. Object1.LocX = 2*(Object2.SizeY) or whatever). Extra cooler would be dragging and dropping a channel name to a number field and having it automatically insert that channel as an expression, eg. dragging Object1's LocX button to Object2's LocX number field would create an expression of just Object1.Locx (= Object2's LocX copies Object1's LocX).
* Maybe as an option, objects' parent/child hierarchies could be visualised by displaying the child object block as a sub-block of the parent object datablock (i.e. at the same level as the parent datablock's linked obData, material, etc)
* More cool stuff would be dragging and droppoing of datablocks to create links. I.e. dragging and dropping a material datablock on an object datablock would link that material to the object.
* There could be a right-click context menu on the datablock names themselves to do things like rename, unlink, delete, duplicate.
* As an option, datablocks with 0 users or fake users could be shown in a separate section underneath, all at the top level of hierarchy, almost like a 'Trash' area.
* Yes, the icons aren't very pretty, I realise this and will improve them :)
How to visualise a) Selected and active objects, b) active obData (data that is currently being visualised in the buttons window - i.e. which context is open)

Parenting:

A more detailed look at an expanded Mesh datablock:

Last updated by Matt Ebb 2004-09-26
http://mke3.net