S l i d e r s

Sliders are one of messiah's handiest and most versatile tools.  They can be used to control virtually anything.  The basic idea is that actions are tied to the individual slider channels, and these can then be keyframed.  

Creating Sliders:
From the File tab
:  Use the pulldown on the Add Items block  to select Slider, then press the Add button.
From the Setup tab
:  On the Items sub-tab, choose New Item, then use the pulldown on the Add block.  Select Slider then press .
Once created, expressions are used to do the actual behind-the-scenes work.

The slider (also called "slider set") name can be changed by double-clicking on it in the Item List.  The image below shows a slider which has been renamed to Findiggler_Control.

Individual slider channels can be renamed in Setup mode by entering a new name in the field to the right of its numeric input/display (see left side of image below).  Remember not to put any spaces in names; use the  _  (underscore) instead.  Also, you can NOT move channel names.  For example, you can NOT rename the xpos channel to be ypos.  If, for some reason you want to do that you must use different names.  For example you can use z_pos instead of zpos.  The reason for this is that internally, messiah still uses the default channel name (zpos, xpos, bank, etc.), so those names are reserved.  If you name a different channel xpos, it can cause an error.  But as I said, if you want to do that, just use a different syntax, like z_pos or Z_Position.  For some additional information, see "Using Slider Channels in Expressions," below.

Positioning and Sizing the Sliders:
Sliders can be moved around and resized just by clicking and dragging on the slider control buttons for move and size (see image above).

Keeping Sliders Visible Onscreen:
To keep a slider visible even when it is not the currently selected item, click on the little thumb tack icon located on the bottom right.  (See image above.)  Note:  If your slider is part of a Group, and you have Item List Filtering on, and the Group that the slider is part of is hidden, the slider will be hidden even though it might be thumb tacked.  This is not a bug, it is by design-- manipulator drawing is only available for non-hidden items, otherwise it gets confusing and disorganized.

Rest position:
The rest position of the slider channels is set on the Setup tab on the Values block (see image above).  The rest position is the position that the slider channel will go to when you press the Reset buttons on the Values block on the Animate tab.  For example, you may have a slider set up for the character's eyes-- move the slider left and the eyes go left, move it right and the eyes go right.  So normally you'd want it right in the middle.  If you set the rest position to be in the middle (.5), then whenever you press the Reset button while animating, it will go to the middle, instead of to 0.

Hiding Entire Slider Set:
Sliders work like the Edit Sphere: to hide them, select the World View (by clicking anywhere in it) and press Esc (Escape).  Press Esc again to bring them back.  If your sliders aren't showing up, check to see if the Edit Sphere shows up when you have an object selected.  If it doesn't, press Esc

Hiding unneeded channels:
The individual channels can be hidden from view if you don't need them.  To do this, middle-click or right-click on the little colored circles to the right of the channel number on the Values block in the Animate tab.

Edit Frame Option:
The Edit Frame setting on the Key'Frame Editing block has an important effect on the way Sliders work.  When it is off, editing the sliders with the channel controls will adjust the current keyframe.  When it is on, it will adjust the key if the Current Frame marker is on a keyframe, or create a keyframe if it isn't.  (Adjusting with the slider itself will always create a keyframe if there isn't one already.)  Also, when you play the animation, Edit Frame off will show the slider channel at the current keyframe, with a ghost marker moving along it, while Edit Frame on will actually move the slider channel (see images).  I highly recommend that you read the Edit Frame information on the Key/Frame Editing block.  Note:  Slider channels controlled via expressions can not have those values represented on the slider.  The values you see are always representative of the base slider channels.  The slider channel values as represented in the expression list will always display the result of slider channel modification.

Edit Frame
off (left) and Edit Frame on (right).

Sliders With Expressions

Sliders Controlling Other Sliders:
can be set up to control other sliders-- even to make them operate in an additive fashion.  For example, one slider can control another one, but if you have the child slider set to halfway, the parent slider will add to it.

For example, the three animations below show one slider being controlled by another slider.  On the "slave" slider you won't actually see the slider channel move, but if you look at the Expressions List with Debug on, you'll see that the values are being affected.

The top slider is controlling the bottom one.  The blend operator is set to =, so the bottom one
matches the top one exactly.

This is the same setup as the picture above.  As you can see, having the "slave" slider set to a
value (0.2000) has no effect on the results, because the blend operator is =, which overrides it.

Here the blend operator is set to +, which means it will add the "control" slider's value to the value
of the "slave" slider.  As you can see, the value for the "slave" is equal to the value of the "control"
plus the value of the "slave."  There are other blend operators too, like minus, multiply, etc.

Sliders To Turn Expressions On and Off:
There are several ways to use sliders to turn expressions on and off.  Here are the two easiest ways:

     1.  Use the KeyFader function.

All procedural motion (expressions) applied to the Train
object will be turned on & off when the xpos channel of
the slider is animated.  When xpos is at 0, it will allow
procedural motions, and when it is at 1 it will not.

     2.  Use the slider channel in the expression's "on/off" value field.  For example:

The xpos channel of the slider will turn the Align
expression on & off.  Off will be when the slider
is at 0, and On will be when it is at 1.

Adjusting the range of a slider:
By default, sliders work from 0 (all the way to the left), to 1 (all the way to the right).  If you want a slider to cover a different range, just use the PercentStep function.  Here's what the expression would look like if you wanted to make a slider that would move between -1.5 and 2.6 instead of 0 and 1:

What means is this:  PercentStep (you can type this word or select it from the Function pulldown list), then in parentheses, put the slider name, a colon, and the specific slider channel (in brackets), then a comma, then the minimum number (the one for when the slider is all the way to the left), another comma, and the maximum number (the one for when the slider is all the way to the right).  Note, however, that the slider itself will still read 0 to 1.  But the actual values it passes along will be correct;  you can check this by turning on Debug.

If all you want to do is change the high number, you can just use the regular slider output and add a multiplier to it.  For example, if you want it to go from 0 to 100, just add *100 to the end, like this [SliderName:ypos]*100

Using Slider Channels In Expressions:
There are four ways to reference a specific slider channel in an expression.  Here's a breakdown of each way:

  1. [SliderName:ypos] This is the default way.  If you right-click on the Buffer button, this is the way it will put it in.

  2. [SliderName:chan[ypos]] This is the recommended way of doing it as opposed to method #1.

  3. [SliderName:chan[2]]  This method references the channel index (number) rather than the name.  The index numbers are displayed next to the channels.  For example, xpos is 0, ypos is 1, zpos is 2, etc.

  4. [SliderName:chan[MySliderChannelName]]This will reference the name you have given to a slider channel, if you have given it a name.  This method is good because it makes it easy to look at the expression and know what it is doing.  And it also shows why it is good to give sliders (and everything) descriptive names.  For example, if you name the slider channel Eyebrows_Up you can look at the expression and instantly know what it is for.

It is important to understand one thing about naming slider channels and referencing them in expressions:  Do not use the "reserved" names for channels when you name other channels.  For example, do not name the bank channel to zpos because you will not get the result that you want.  If you rename the bank channel to zpos and then have an expression that references the zpos channel, it will reference the REAL zpos channel, not the "bank" channel.

0  xpos
1  ypos
2  zpos 
The expression [SliderName:chan[zpos]] will always use this channel (zpos/channel 2).
3  heading
4  pitch
5  bank
The expression [SliderName:chan[5]]  will always use this channel (bank/channel 5).

0  xpos
1  ypos
2  Eyes
     The expression  [SliderName:chan[zpos]] will always use this channel (zpos/channel 2).
3  heading
4  pitch
5  zpos
    The expression  [SliderName:chan[zpos]] will NEVER use this channel (bank/channel 5).

Converted from CHM to HTML with chm2web Pro 2.82 (unicode)