SlideThingMC
(LScript version 2.5.1)
BRIEF This is an alternative to some of the existing solutions for sliders in LightWave, like SliderBox (by Martin Fluerent) and the new LightWave 7.5 Custom Object Sliders. These two lacked certain features and behaviors and prompted me to create my own solution. The intial requirement I had for the script was that sliders must be able to link with other sliders. You can, for instance, set up fingers to be closed. You can control the individual finger curls, or, by linking the sliders together move them simultaneously as a whole. The second differentiating feature is what I call "pick-up keys." Like the name suggests, you can "pick up" keyframes from across multiple channels and "drag" them to different frames. The third requirement was a direct interface to and fro the channels much like how the Custom Object Sliders behave. SlideThingMC has a maximum of 14 sliders. You can specify how many sliders you want; more on that in the BUGS & LIMITATIONS section.
INSTALLATION Add SlideThingMC.lsc as a plug-in. The script will then appear in the Master Plug-in window. Select it from the popup and double click on the name to activate the panel.
INTERFACE The interface is resizable on the width aspect. The height is fixed; the total height size will depend on how many sliders you have. 1.) Min / Max: the first section of fields are the minimum and maximum values fields. They change types depending on the kind of channel you have selected. 2.) Slider Channels: these are popdowns (or popups) that allow you to select from channels existing within your scene. 3.) L / K / P: the L button, when highlighted, denotes that the current slider is linked. All other linked sliders will follow each other relatively. When the K button is highlighted, it means that the current slider has a keyframe on the current frame. To delete a key, simple 'toggle' the K button and the key will be removed. If you wish the create a key but not touch the slider, in the same way, simply click on the K button so that it is highlighted. The P button will enable you to 'pick up' the current key. From there, it is 'clamped' and moving the timeline back and forth will 'drag' the keyframe in question. Note that you cannot activate the pick-up feature if the particular slider has no keyframe on that frame (e.g. the K button is not highlighted). 4.) Numerical Field: these fields are the numerical values that your slider is currently at. Note that they are not prefixed by their type's symbology. This, however, is not an issue: simply interpret them as they are as if they had such symbology. You can also directly input values into these fields. 5.) Previous Key / Next Key: these two arrows will move the current time to the specified slider's previous or next key. Note that the linking feature does not take effect here: linked sliders will still be regarded as 'individuals' and the timeline will still move to the previous / next key of the particular slider you click on. 5.) Sliders: yes, these are your sliders. When you move a slider on a frame that doesnt have a keyframe, a keyframe will be created. If there is a keyframe, it simply modifies the value based on your slider. If the sliders are linked in any of those two cases above, then keys are created or keys are modified on those sliders. 6.) Frame: this is a minislider that serves as a small timeline slider. I found it personally convenient that's why I included it. You can also input values in addition to sliding it around. 7.) Hide / Unhide Section: the buttons with carets that you see are there to enable you to hide or unhide individual sections to save space or isolate certain information for certain situations. A caret pointing to the left will denote that the section is open and a right caret will denote that it is closed. The buttons are located at the right edge of their respective sections. Though there are some slight exceptions because of space restrictions. 8.) Add Favrorites: this is menu button (similar to what you will find with SetDrivenKeyMasterCF). It lists all the available Graph Editor Channel Favorites you currently have in your scene. You can select Update Favorites to refresh the list whenever you delete or add new favorites. A situation may arise where you will not see Update Favorites. To remedy this, simply close the requester (no need to unload the script, though) and open it up again. 9.) All to GE: this button will get all the slider channels you currently have and place them in the Graph Editor. Useful if you need to see the curves of channels you are editing. 10.) Linked To GE: this will only load the sliders that are linked with each other. 11.) Add Key All: creates a key on all of the channels at the current frame. 12.) Del Key All: deletes a key (if it exists) on all of the channels at the current frame. 13.) Curve All: this is a menu button that will display three types of curves to choose from: TCB, LINEAR, and STEPPED. Your selection will be applid on all of the channels to the keyframe of the current time, if any. 14.) Curve Linked: this menu button will also display the three types of curves but will only effect your selection on the sliders that are linked. If there are no linked sliders, then this function has no effect.
INFORMATION ON LINKED SLIDERS Linked sliders are "value-relative" to each other, if that makes any sense. Meaning, they record their relative value from one another and move accordingly. Once a slider has been linked to others, you can use any of the sliders to move them as a whole. Once a slider has been linked and moved with others, remember that they will automatically create keyframes (or modify keys) on all of the linked sliders. Linking also works with the pick-up feature.
INFORMATION ON PICK-UP KEYS As said above, pick-up keys will work with linked sliders. Once a key, or a group of keys have been picked up, their values will be constant to their respective slider values as you move them. Look at the Graph Editor for visual representation of how they work. To put keys back down, simply turn off the P buttons of the particular sliders.
BUGS & LIMITATIONS There are no known bugs. Do not assign two sliders to the same channel. Things may get screwy. SlideThingMC has a limitation of fourteen (14) sliders. This has been the case for the system I use. If I use more than 14 sliders, LightWave crashes on me. Because of this, I am not sure if fourteen is a definite number for all systems (the cause of the crash is the apparent size of the the number of interface controllers used in the script, so it could be a memory issue, though I havent been able to confirm this). Thus, I've hard-coded fourteen sliders as the maximum. Sometimes, you may want to to use less sliders (for efficiency's sake). There is a file that STMC will create: "C:/SlideThingMC.cfg". There you can change the number of sliders you want. On a similar note: you can always run two or more instances of SlideThingMC. Though I cannot guarantee that it would be as stable, I cannot say with any degree of surety that it will be somewhat unstable.
***APPENDANT (09.24.02)*** Mac OSX has problems with LScript (and / or vice-versa) regarding the file system, which I use to store the configuration of SlideThingMC. I've included a Mac OSX version that uses the 'registry' instead. This version will also work with PC platforms.
Contact me at: faulknermano1@yahoo.com |
|