Slider UI コントロール

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 の場合には、バックグラウンド平面に配置します。

フォアグラウンド平面にあまり多くのオブジェクトを配置するとフォアグラウンド平面のパフォーマンスが低下しますので、フォアグラウンド平面にオブジェクトを配置する場合には十分注意してください。オブジェクトをインタラクティブにコントロールする必要がなくなった場合は、オブジェクトをバックグラウンド平面に戻すことを忘れないでください。