スライダーには以下の種類があります。
int と float のスライダーの違いは整数値をとるか、実数値をとるかの違いだけです。
intSlider と floatSlider、floatSliderGrp と attrFieldSliderGrp は見かけ上はほとんど違いがありません。
スライダーはボタンのようにコントロール(ウインドウの部品)の一種ですが、
ボタンと違って少し使い方が複雑です。
スラーダーを使用する時は以下の手順で実行します。
スライダーコマンドは上のように 2 度以上実行されるのが普通です。
ここでは floatSliderGrp を使ってみましょう。
以下のスクリプトはスライダーで指定された半径の球を作るものです。
作成 ボタンを押すと指定された半径の球がひとつ作られます。
global proc makeSphere()
{
float $val;
$val = `floatSliderGrp -q -value radiusSlider`;
sphere;
scale $val $val $val;
}
window -title "slider1";
columnLayout;
text -label "球を作成";
floatSliderGrp -label "半径" -field true
-min 0.1 -max 20.0 -step 0.1 -value 1.0 radiusSlider;
button -label "作成" -command "makeSphere()";
showWindow;
import pymel.core
def makeSphere():
val = pymel.core.floatSliderGrp('radiusSlider', q=True, value=True)
pymel.core.sphere()
pymel.core.scale([val, val, val])
pymel.core.window(title='slider1')
pymel.core.columnLayout()
pymel.core.text(label=u'球を作成')
pymel.core.floatSliderGrp('radiusSlider', label=u'半径', field=True,
min=0.1, max=20.0, step=0.1, value=1.0)
pymel.core.button(label=u'作成', command='makeSphere()')
pymel.core.showWindow()
import pymel.core
def makeSphere():
val = pymel.core.floatSliderGrp('radiusSlider', q=True, value=True)
pymel.core.sphere()
pymel.core.scale([val, val, val])
pymel.core.window(title='slider1')
pymel.core.columnLayout()
pymel.core.text(label=u'球を作成')
pymel.core.floatSliderGrp('radiusSlider', label=u'半径', field=True,\
min=0.1, max=20.0, step=0.1, value=1.0)
pymel.core.button(label=u'作成', command='makeSphere()')
pymel.core.showWindow()
オブジェクトの X 方向のスケールを変更するスクリプトです。
シーンに NURBS の球体を 1 個作ってから、以下のスクリプトを実行してみてください。
NURBS の球体は nurbsSphere1 という名前だとします。
import pymel.core
pymel.core.window(title='attrFieldSliderGrp')
pymel.core.columnLayout()
pymel.core.text(label='Change Sphere Scale')
pymel.core.attrFieldSliderGrp(label='scale X',
min=0.1, max=20.0, at='nurbsSphere1.sx')
pymel.core.showWindow()