移動先: 概要 注記. 戻り値 関連項目. フラグ. Python 例.
xform(
[objects...]
, [absolute=boolean], [boundingBox=boolean], [boundingBoxInvisible=boolean], [centerPivots=boolean], [euler=boolean], [matrix=[float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float]], [objectSpace=boolean], [pivots=[linear, linear, linear]], [preserve=boolean], [relative=boolean], [rotateAxis=[angle, angle, angle]], [rotateOrder=string], [rotatePivot=[linear, linear, linear]], [rotateTranslation=[linear, linear, linear]], [rotation=[angle, angle, angle]], [scale=[float, float, float]], [scalePivot=[linear, linear, linear]], [scaleTranslation=[linear, linear, linear]], [shear=[float, float, float]], [translation=[linear, linear, linear]], [worldSpace=boolean], [worldSpaceDistance=boolean], [zeroTransformPivots=boolean])
注意: オブジェクト名や引数を表す文字列はカンマで区切ります。これは概要には示されていません。
xform は 「元に戻す」が可能、「照会」が可能、「編集」が不可能 です。
このコマンドは、変換ノードにおける、あらゆる要素の
照会/設定に使用できます。また、変換行列や
バウンディング ボックスのような、直接設定できない値を
照会することもできます。ピボット ポイントを設定することもできます。
すべての値は、変換の座標
(アトリビュート - スペース)で指定します。
また、アトリビュートは「フラグ」セクションに記述された順番に
適用され、値を返します。(この順番は下記の変換行列に表示されている順序に
対応しています。)
関連項目: move、rotate、scale
ノードに対する変換行列は、指定した順序で
次のマトリックスを後で掛け合わせて構築されます(注: 回転は回転順序パラメータに従って適用されます。以下にはこの 6 種類の回転は示されていません)
-1 -1
[M] = [sp]x[s]x[sh]x[sp]x[st]x[rp]x[ar]x[ro]x[rp]x[rt]x[t]
ここで、
[sp] = | 1 0 0 0 | = スケール ピボット行列
| 0 1 0 0 |
| 0 0 1 0 |
| -spx -spy -spz 1 |
[s] = | sx 0 0 0 | = スケール行列
| 0 sy 0 0 |
| 0 0 sz 0 |
| 0 0 0 1 |
[sh] = | 1 0 0 0 | = シア行列
| xy 1 0 0 |
| xz yz 1 0 |
| 0 0 0 1 |
-1
[sp] = | 1 0 0 0 | = スケール ピボット逆行列
| 0 1 0 0 |
| 0 0 1 0 |
| spx spy spz 1 |
[st] = | 1 0 0 0 | = スケール トランスレート行列
| 0 1 0 0 |
| 0 0 1 0 |
| stx sty stz 1 |
[rp] = | 1 0 0 0 | = 回転ピボット行列
| 0 1 0 0 |
| 0 0 1 0 |
| -rpx -rpy -rpz 1 |
[ar] = | * * * 0 | = 軸回転行列
| * * * 0 | (合成回転、
| * * * 0 | 詳細は、下記の [rx], [ry], [rz]
| 0 0 0 1 | を参照)
[rx] = | 1 0 0 0 | = 回転 X 行列
| 0 cos(x) sin(x) 0 |
| 0 -sin(x) cos(x) 0 |
| 0 0 0 1 |
[ry] = | cos(y) 0 -sin(y) 0 | = 回転 Y 行列
| 0 1 0 0 |
| sin(y) 0 cos(y) 0 |
| 0 0 0 1 |
[rz] = | cos(z) sin(z) 0 0 | = 回転 Z 行列
| -sin(z) cos(z) 0 0 |
| 0 0 1 0 |
| 0 0 0 1 |
-1
[rp] = | 1 0 0 0 | = 回転ピボット行列
| 0 1 0 0 |
| 0 0 1 0 |
| rpx rpy rpz 1 |
[rt] = | 1 0 0 0 | = 回転トランスレート行列
| 0 1 0 0 |
| 0 0 1 0 |
| rtx rty rtz 1 |
[t] = | 1 0 0 0 | = トランスレーション行列
| 0 1 0 0 |
| 0 0 1 0 |
| tx ty tz 1 |
なし
戻り値の型は照会モードでは照会フラグが基になります。
move, rotate, scale
absolute, boundingBox, boundingBoxInvisible, centerPivots, euler, matrix, objectSpace, pivots, preserve, relative, rotateAxis, rotateOrder, rotatePivot, rotateTranslation, rotation, scale, scalePivot, scaleTranslation, shear, translation, worldSpace, worldSpaceDistance, zeroTransformPivots
ロング ネーム(ショート ネーム) |
引数型 |
プロパティ |
absolute(a)
|
boolean
|
|
|
relative(r)
|
boolean
|
|
|
euler(eu)
|
boolean
|
|
|
回転値を指定する -relative フラグの修飾子で、
現在の XYZ 回転値に加算されます。
|
|
objectSpace(os)
|
boolean
|
|
|
(ピボット、移動、回転、回転軸、マトリックス、
バウンディング ボックス、フラグのみに有効な)
オブジェクト空間の変換値として値を扱います。
|
|
worldSpace(ws)
|
boolean
|
|
|
(ピボット、移動、回転、回転軸、マトリックス、
バウンディング ボックス、フラグのみに有効な)
ワールド空間の変換値として値を扱います。
|
|
worldSpaceDistance(wd)
|
boolean
|
|
|
-sp、-rp、-st、-rt、-t、-piv フラグの値は、
ローカル軸に沿って動くワールド空間の
距離として扱われます。ローカル軸は、コマンドがローカル空間、または
オブジェクト空間で機能しているかどうかによって異なります。
このフラグは、ワールド空間では効果がありません。
|
|
preserve(p)
|
boolean
|
|
|
変換全体を保持します。またピボットや回転順序の変更時に、
オブジェクトが「ジャンプ」するのを防ぐために使用されます。
デフォルト値は true です( -sp、-rp、-roo、-cp、-ra フラグとともに使用)。
|
|
scalePivot(sp)
|
[linear, linear, linear]
|
|
|
ピボット ポイントでスケール変換します
(-p フラグとともに使用する場合は、トランスフォーム全体の
スケール変換に変更が加えられるのを防ぎます)。
|
|
scale(s)
|
[float, float, float]
|
|
|
shear(sh)
|
[float, float, float]
|
|
|
シア変換します。
値はシアの <xy,xz,yz> を表します。
|
|
scaleTranslation(st)
|
[linear, linear, linear]
|
|
|
rotatePivot(rp)
|
[linear, linear, linear]
|
|
|
ピボット ポイントで回転変換します
(-p フラグとともに使用する場合は、変換全体の回転変換に
変更が加えられるのを防ぎます)。
|
|
rotateOrder(roo)
|
string
|
|
|
回転の順番です(-p フラグとともに使用する場合は、
ローカル回転にオリジナルのものと同等になるよう修正を加え、
変換全体を保持します)。
このフラグに対する有効な値は、
です。
|
|
rotateAxis(ra)
|
[angle, angle, angle]
|
|
|
回転軸の方向です(-p フラグとともに使用する場合は、
回転全体における、軸回転の補正のために回転に
変更が加えられるのを防ぎます)。
|
|
rotation(ro)
|
[angle, angle, angle]
|
|
|
rotateTranslation(rt)
|
[linear, linear, linear]
|
|
|
translation(t)
|
[linear, linear, linear]
|
|
|
matrix(m)
|
[float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float]
|
|
|
変換行列を作成または返します。
*注* 行列は、列の順番で指定される
16 個の double 型の引数で表されます。
|
|
boundingBox(bb)
|
boolean
|
|
|
オブジェクトのバウンディング ボックスを返します。戻り値は次の順序で戻されます:
x の最小値、y の最小値、z の最小値、x の最大値、y の最大値、z の最大値
|
|
boundingBoxInvisible(bbi)
|
boolean
|
|
|
オブジェクトのバウンディング ボックスを返します。boundingBox フラグを使用した場合は、
含まれないすべての非表示の子の
バウンディング ボックスも含まれます。戻り値は次の順序で返されます。x の最小値、y の最小値、z の最小値、x の最大値、y の最大値、z の最大値
|
|
pivots(piv)
|
[linear, linear, linear]
|
|
|
回転とピボットのスケールを同時に変更する
便利な方法です(詳細は -rp -sp フラグを参照)。
|
|
centerPivots(cp)
|
boolean
|
|
|
ピボット ポイントを、オブジェクトのバウンディング ボックスの
中心に設定します(-p フラグを参照)。
|
|
zeroTransformPivots(ztp)
|
boolean
|
|
|
移動チャンネルにこれらの値を適用することにより、
行列全体を変更せずに
ピボット ポイントとピボットの移動をリセットします。
|
|
: コマンドの作成モードで使用可能なフラグ
|
: コマンドの編集モードで使用可能なフラグ
|
: コマンドの照会モードで使用可能なフラグ
|
: タプルまたはリストとして渡された複数の引数を持てるフラグ
|
import maya.cmds as cmds
# create object to manipulate
cmds.sphere( n='sphere1' )
# set rotation of sphere
cmds.xform( r=True, ro=(0, 90, 0) )
# change the rotate order but preserve the overall transformation
cmds.xform( p=True, roo='yzx' )