slider コントロールは、スピナーの代りにスライダをロールアウトに配置するために使用します。ユーザは、スライダのポインタをドラッグして値を設定できます。
構文は次のようになります。
slider <name> [<caption>] [range:[min,max,val]] [type:<#float | #integer>] [ticks:10][orient:<#horizontal | #vertical>] [height:80] [controller:(<controller>)] [toolTip:<string>]
slider
項目の位置合わせの既定値は、#center
です。
例:
slider tilt "Head tilt" orient:#vertical ticks:0 range:[-30,30,0]
on tilt changed val do $head.bend.angle = val
パラメータ
range:
Point3 値で、それぞれ x、y、z にスライダの最小値、最大値、初期値が入ります。既定値は、[0,100,0] です。既定値は、[0,100,0]です。
type:
スライダのタイプで、#float
または #integer
です。既定は #float
です。
orient:
ロールアウト内のスライダのレイアウトの向きです。#vertical
または #horizontal
です。既定は #horizontal
です。
height:
orient:#vertical
が指定されている場合は、スライダの高さを指定します。
ticks:
スライダ バーに沿って付けるティックの数を指定します。ticks:0
を指定すると、ティックは描画されません。既定値は 10 です。
controller:
指定されたコントローラにスピナーをリンクします。これは新しいコントローラとなり、切断されると 'undefined' となります。これにより、スライダとコントローラの間に直接リンクを設定できます。スライダが変更されると、自動的にコントローラおよびそのコントローラで制御されるオブジェクトが更新されます。コントローラが変更されると、自動的にスライダが更新されます。前のバージョンでは、この機能はスピナー コントロールでのみ使用可能でした。3ds Max 8 以降 で使用可能です。
tooltip:
スライダの上にマウスを移動したときに表示されるツールチップ文字列を指定します。
3ds Max 2010以降で使用可能です。
プロパティ:
<slider>.range Point3
range:
パラメータと同様のスライダの現在の範囲です。Point3 値で表します。
<slider>.value (Float | Integer)
スライダの現在の値です。返される値のタイプは、スライダ作成時のスライダのタイプ(#integer または #float)によって異なります。
<slider>.ticks Integer
スライダに沿ったティックの数です。
<slider>.tooltip String
スライダの上にマウスを移動したときに表示されるツールチップ文字列を取得/設定します。
3ds Max 2010以降で使用可能です。
イベント
on <slider> changed <arg> do <expr>
ユーザがスライダのポインタを移動したときに呼び出されます。<arg>
引数には、スライダの新しい値が含まれます。 返される値のタイプは、スライダ作成時のスライダのタイプ(#integer または #float)によって異なります。
on <slider> rightClick do <expr>
スライダ コントロールを右クリックすると呼び出されます。
3ds Max 2010以降で使用可能です。
on <slider> buttondown do <expr>
ユーザがスライダを初めてクリックしたときに呼び出されます。
on <slider> buttonup do <expr>
ユーザがスライダを解除したときに呼び出されます。
buttonDown
および buttonUp
イベントによって、スライダの「巻き記号」の開始および終了位置が効率よく示されるため、調整の設定を実行できます。これは一般に、on <slider> changed
ハンドラ内で修正されるシーン ノードをフォアグラウンド平面に配置して、画面上の再描画を高速化するために使用します。
例:
slider foo "height: "
on foo buttonDown do flagForeground $baz...* true
on foo buttonUp do flagForeground $baz...* false
flagForeground()
メソッドを使用して、フォアグラウンド平面またはバックグラウンド平面に移動します。flagForeground <node> <boolean> -- mapped
ブール値の引数が true
の場合には、シーン ノードをフォアグラウンド平面に配置します。false
の場合には、バックグラウンド平面に配置します。
フォアグラウンド平面にあまり多くのオブジェクトを配置するとフォアグラウンド平面のパフォーマンスが低下しますので、フォアグラウンド平面にオブジェクトを配置する場合には十分注意してください。オブジェクトをインタラクティブにコントロールする必要がなくなった場合は、オブジェクトをバックグラウンド平面に戻すことを忘れないでください。