Why build a new layer manager? 3d Studio Max has had a layer manager for a long, long time. It works very well for what it is, however, as scenes over the years have grown large and complex the layer manager has not evolved to over come this. Scenes these days have more levels of detail and with that detail has come a need for better scene management. When deciding to create a new layer manager there were a couple of things that I wanted to do:
- Keep the existing layer manager, this seems strange but I like solutions to problems that build in redundancy. If my new layer manager decided to stop working in the middle of production I wanted to be able to revert back to the old one. This meant anything new I created would either need to be built on top of or use the existing layer manager as its core.
- The layer manager needed to be more granular. Everyone has wanted layer manager that has had sub-layers. I wanted to be able to have sub-layers of any depth.
- Sub-Layers would inherit the properties of there parents.
- Make it easy to build new tools and features into the new layer manager. If I was going to build a layer manager I wanted to be able to extend it easily.
- Standardise our layers and workflow. I wanted to create a workflow were our files and how we worked in them was standardised so that anyone in the studio could open someones file and be able to hit the ground running.
Custom Features of the layer manager
There are many custom features I have written into the layer manager some of them are below:
- Isolate Layer. Similar to Max's isolate feature when you right click on a layer and select isolate all other layers are hidden and the selected layer is turned on. The next time you right click on the layer you have the option to de-isolate it. This has proved very handy when yo need to do some quick modeling fixes in large scenes.
- Rename Layers and Children. I wanted an easy way to rename layers and there children right in the dialog. This proved a little trickier than I first thought it would, however, you can now easily rename layers just by double clicking on them and typing.
- Node View. An external view for handling nodes.
- Export Layer. Saves the selected tree of layers as an X-Ref.
- Layer Sets. For saving the layer states of layers. For instance you can save a state for a camera with all of the relevant layers turned on. This is great for large scenes that have multiple cameras.
A new Layer Manager
Below are some screen shots of the new layer manager. As you can see the interface is very simple and faithful to the original layer manager, this lets new artists in the studio get up to speed with the tool right away.
Most recently we used the tool on the Renovators with great success. Using it in conjunction with a few other tools we were able to achieve the impossible delivering animation for 6 houses in 6 days. You can see some of the work here.
Moving forward there are a couple of things that I am currently working:
- Increased Performance. I want to increase the performance of the tool so that I can add support of scene objects in the tree view. So far I have re-written the control and I am pleased to say the performance is much faster. Not to say the current version is slow but there is a difference between adding 200 or so layers and 5000 objects.
- Tighter integration with X-Refs and containers. I want to make splitting up max files to be completely seamless and transparent. This will be a huge benefit on large projects with more than one artist working on it. Hopefully the layer manager will become a bug for scene management.
- Create an connection between render passes and layers. It would be great to expand the layer sets functionality to be able to create different render passes.