RobynsVeil opened this issue on May 30, 2008 · 267 posts
jfbeute posted Thu, 05 June 2008 at 4:04 AM
Quote - Intiially I was looking at the slider controls more akin to those in 3ds max, where you can either type in the value or use the up down arrows to slowly increment or decrement it. Also rather than using posers scale of 0-1+ I think I'd prefer a percentage system for all dials/controls (0-100%+). I suppose I could make this a selectable option for others. I think it might also be possible to make dials/sliders a selectable option, allowing the end user to use whichever he/she prefers, have to give that a bit of thought and see what can be done there.
I have actually produced a bit of a spec about controls for some other application. I'd like to share it here. Please don't make the same mistake as they did for Carrara where they have sliders with a range from 0 to 1 and don't provide the capability to set negative values or values greater than one with the slider (which do often make sense).
The concept of controls requires the need to view and change to value of the control in an efficient and accurate way.
Viewing the value of a control as a displayed value between 0 and 1 (with however many decimals) or 0 and 100 (as a percentage) isn’t really helpful when the real meaning is for instance a door where the value in degrees varies between 0 (completely closed) and 90 (fully open). Many other examples could be provided with varying values and meanings. In general it would be better to display the value in a meaningful way, as varying with a specific resolution between a minimum and a maximum value and possibly with specific texts if only specific discreet values are valid. This of course only provides a means of displaying a very specific value and does not provide any indication of the relationship between the actual value and the valid range of values (which would probably best be indicated with some form of slider).
As for changing a value there are contradictory requirements.
Typing a value is easiest if the value is easy to determine or is already known. Small changes in the actual value could be provided by nudging the value (for instance: arrow right would increase the value be 1 resolution step, arrow up would increase it by 10 resolution steps and page up by 100 resolution steps). This is acceptable for some applications but not really when dealing with intuitive movements.
For a quick selection of an indicative value in the range of possible values a slider is the best solution, it is quick but in general not very accurate. A slider is also useful for displaying the relationship between the actual value and the valid range of values. Furthermore is a slider a good way to select between several specific discreet values. These values can be indicated on the slider with markers and/or texts. A slider does not always have to be a straight line, it could also be a clock face where the slider moves around a circle with a line connecting to the center (this would be ideal for angles). Ideally such a clock face could also be only partially used, for instance when only an angle from 0 to 90 degrees would be valid a full clock face would be displayed with only a quarter marked as valid range, adding a text “closed” to 0 degrees and a text “open” to 90 degrees would make very clear that this is door that can be open or closed or anywhere in between. To set a value on a slider one can click anywhere on the slider line to set the slider to this value or one can grab the actual slider and drag it to its new value. Nudging as described in entering a value would also work.
For a gradual change a dial is more intuitive. To change the value of dial grab it anywhere and drag it in the appropriate direction. The rate of change should depend on the speed of dragging. This allows for very gradual changes but can take a while to make big changes in a value. Nudging as described in entering a value would also work.
Ideally the functionality of the three methods of changing the value of a control could be combined, so the actual value would be displayed in a text box, a slider line would be displayed with the actual slider in the correct position, and a dial would be displayed for fine control. When only discreet values are acceptable there is no need for a dial. When the slider is displayed as a clock face the dial should be centered in it as a kind of turning knob. On a slider it should be possible to set markers and/or texts at any value (as a reminder of reasonable values).
Just a suggestion about controls in 3D applications. In the text were also suggestions for combining two values to form controls in the shape of "squares" (two sliders) and "balls" (two dials), nudging required the use of the shift and alt keys. These have their applications but are probably not in scope for this project.