Hello, my name is Robert. I just purchased MoI last week and I must say it is terrific! I love the community here and how helpful everyone is... and Michael Gibson goes way above and beyond what anyone can reasonably expect from the developer of such a great product, with all the help, support and numerous scripts he has contributed... thanks Michael! And I really like your design philosophy of keeping things clean and simple in the UI and yet having the capability for letting the user extend the product through extensive modifications in both its capabilities and layout, while being extremely helpful in making that happen. Being able to customize a product engenders loyalty to that program.
Anyway it seems important in MoI for naming objects as a means of organizing a projects components. But the last thing I want to do while designing something is coming up with names for objects, it really breaks the flow, at least for me. So I started looking at the various object naming scripts on the forums. There are some really good ones, that would be useful in various scenarios, but I did not want a whole slew of shortcut keys trying to remember what each one does in a particular situation. So I started thinking about what I would like and how to organize them in a simple yet powerful unified design. Some of my criteria include the following:
1. It must be easy and fast to use. 2. Selecting a name from a pick list, that the user populated while being able to add to, delete from, rename and reorder that list, easily, while still working within MoI. 3. The name could be applied to the current selection of one or more objects, while still allowing additional objects to be selected, before the name was applied. 4. If more than one object was selected, those objects could either have the same name, or a unique name generated by means of an underscore followed by a numerically appended suffix, (this would "group" similar objects by name). 5. The selected objects could be assigned to an already existing object name, again selected from a pick list and optionally adding a unique underscore and number. 6. Existing named objects should be easily renamed.
I would also like to be able to select/name all objects that currently don't have a name, but maybe that should be accomplished by a script that would make that selection, before calling this design code.
Most of the code / scripts for the proposed system already exist with the exception of the unique naming/numbering system, but that is fairly trivial. And the list management functions exist in the Edit Styles dialogue (I don't know if this is a written as a script or a built in MoI module).
I think this would make a great addition to MoI, simple yet powerful. So here is a mockup of this design, along with notes on the various components. Could this be done in MoI?
This dialogue box could be called from the property box, and/or be assigned a shortcut key. It would remain open allowing the user to select or deselect additional objects, until a list item is double clicked, or the OK/Cancel buttons are clicked.
The dialogue elements:
1. Top Box. Remains blank if the selected object(s) is/are unnamed. Gets populated with the first selected named object. This would be an easy way for multiple objects to have the same name (like a group). Double clicking on this name, if it exists, would assign that name to all the selected objects and close the dialogue box. If the "Make Name Unique" (5) checkbox is also selected, unique names would be generated based on this boxes contents.
2. "Preset Name List" and "Current Object Names" list buttons. Two buttons that will display a list of object names in the item list (4). The first displays items from the user created Preset Names List, the second switches that list to all the named objects in the current MoI file, the same as the object list in the Scene Browser. (Reusable code).
3. Edit Button. This would work exactly the same as the Edit Styles Dialogue. The Preset Name List can be added to, deleted from, renamed and reordered just like Styles. Most of that code could be reused.
4. List Box. The list of Preset Names or a list of objects names from the current file. Double clicking on a name would assign it to the selected object(s) and close the dialogue box. If the "Make Name Unique" (5) checkbox is also selected, unique names would be generated based on the selected list item.
5. Make Name Unique checkbox. Having this checkbox checked would take whatever name the user selected and append an underscore and numbers to it to make it unique, if it is not already so. For example "Name_001", "Name_002", etc.
6. New Button. This would open up a dialogue box requesting a new name. It would also have a checkbox that would allow adding the newly entered name to the list of presets. It would assign the new name and close the dialogue box.
7. OK button. Just like a double click in box 1 or list 4 the highlighted name would be assigned to the selected objects, and the dialogue box would close.
8. Cancel Button. Closes the dialogue box and does nothing.
Again this dialogue box stays open to allow selection and/or deselection of additional objects, until double clicking in box(1), list(4) or on buttons (6,7 or 8) .
Options:
1. Add a "Select UnNamed Objects" button. If pressed all the unnamed Visible objects are selected, and can then be named. This could work very well with the "Make Name Unique" checkbox to name every object in a viewport. (Or this could be a separate script, executed before this dialogue box is called).
2. Two boxes could be displayed with running totals of the number of named and unnamed objects that are currently selected.
Thanks for taking the time to look over this proposed design. It should be easy to implement since most of the code already exists, and make a useful addition to MoI. Could this be done?
|