ジャンプ先: 概要. 戻り値. フラグ. Python 例.
makeIdentity(
[dagObject]
, [apply=boolean], [jointOrient=boolean], [normal=uint], [preserveNormals=boolean], [rotate=boolean], [scale=boolean], [translate=boolean])
注: オブジェクトの名前と引数を表す文字列は、カンマで区切る必要があります。これはシノプシスに示されていません。
makeIdentity は、取り消し可能、照会不可能、および編集不可能です。
選択したトランスフォーム、およびシェイプレベルまでのすべての子を ID 変換でリセットする、高速な方法です。選択したトランスフォーム結果から適用されるトランスフォーム、回転、スケールを指定することもできます。ID 変換には以下の意味があります。
- translate = 0, 0, 0
- rotate = 0, 0, 0
- scale = 1, 1, 1
- shear = 1, 1, 1
トランスフォームがジョイントである場合、「translate」アトリビュートは 0 でないことがありますが、ジョイントを配置してワールド空間での位置を保持するために使用されます。ジョイントはワールド空間での位置を保持する必要があるので、translate フラグはジョイントに適用されません。rotate フラグと scale フラグのみが、ジョイントに適用されると効果があります。
-a/apply フラグを true にすると、リセットされるトランスフォームは累積され、修正されたトランスフォームの下にあるすべてのシェイプに適用されるので、シェイプは移動しません。ピボット位置は、ワールド空間で移動しないように再計算されます。このフラグを false にすると、位置を保持するように変更せずに、トランスフォームが ID にリセットされます。
なし
apply, jointOrient, normal, preserveNormals, rotate, scale, translate
ロング ネーム(ショート ネーム) |
引数タイプ |
プロパティ |
|
apply(a)
|
boolean
|
|
|
true にすると、トランスフォーム ピボットのワールド空間での位置が保持されてシェイプが移動しないように、トランスフォームが ID になった後で、累積されたトランスフォームがシェイプに適用されます。既定は false です。
|
|
jointOrient(jo)
|
boolean
|
|
|
設定すると、ジョイントの方向がリセットされワールド座標空間に位置合わせされます。
|
|
normal(n)
|
uint
|
|
|
1 に設定すると、ポリゴン オブジェクトの法線がフリーズ(ロック)されます。このフラグは、-apply フラグがオンの場合のみ有効です。2 に設定すると、ポリゴン オブジェクトの法線はリジッドでない変換行列、つまりシア、傾斜または不均等スケールなどを含まないトランスフォームの場合のみフリーズされます。既定では法線はフリーズされません。
|
|
preserveNormals(pn)
|
boolean
|
|
|
このフラグが true の場合、ポリゴン オブジェクトの法線は、オブジェクトが負にスケールされる(反射)と反転されます。このフラグは、-apply フラグがオンの場合のみ有効です。
|
|
rotate(r)
|
boolean
|
|
|
true にすると、回転のみがシェイプに適用されます。回転は、0, 0, 0 に変更されます。translate フラグ、rotate フラグ、scale フラグを指定しないと、すべての(t, r, s)が適用されます。
|
|
scale(s)
|
boolean
|
|
|
true にすると、スケールのみがシェイプに適用されます。スケール係数は、1, 1, 1 に変更されます。translate フラグ、rotate フラグ、scale フラグを指定しないと、すべての(t, r, s)が適用されます。
|
|
translate(t)
|
boolean
|
|
|
true にすると、平行移動のみがシェイプに適用されます。平行移動は、0, 0, 0 に変更されます。translate フラグ、rotate フラグ、scale フラグを指定しないと、すべての(t, r, s)が適用されます。(注: translate フラグは、ジョイントに適用しても効果がありません。ジョイントではワールド空間での位置が保持されるからです。このフラグはジョイントに影響しません。)
|
|
フラグはコマンドの作成モードで表示できます
|
フラグはコマンドの編集モードで表示できます
|
フラグはコマンドの照会モードで表示できます
|
フラグに複数の引数を指定し、タプルまたはリストとして渡すことができます。
|
import maya.cmds as cmds
# Example 1: Create a hierarchical object, for example a
# car. Scale the tires, translate the doors into place, rotate the
# steering wheel, then select the group node above the car, and type:
cmds.makeIdentity( apply=True )
# The car should not move.
cmds.move( 3, 0, 0 )
# The car should move exactly 3 units to (3, 0, 0), since
# the previous makeIdentity command set its translation to (0, 0, 0).
cmds.makeIdentity()
# The car should return to the same position as before the move.
# Example 2: Create a curve and translate, rotate and scale it.
# Then group it and translate, rotate and scale the group.
cmds.makeIdentity( 'group1', apply=True, translate=True )
# The curve will not move, but both the curve transform's and group
# transform's translation will be set to 0, 0, 0. The rotation and
# scale will remain the same.
cmds.makeIdentity( 'group1', apply=True, rotate=True )
# The curve will not move, but both the curve transform's and group
# transform's rotation will be set to 0, 0, 0. The translation and
# scale will remain the same.
cmds.makeIdentity( 'group1', apply=True, scale=True )
# The curve will not move, but both the curve transform's and group
# transform's scale will be set to 1, 1, 1. The translation and rotation
# will remain the same.
cmds.makeIdentity( 'group1', apply=True, translate=True, rotate=True )
# The curve will not move, but both the curve transform's and group
# transform's translation and rotation will be set to 0, 0, 0.
# The scale will remain the same.
cmds.makeIdentity( 'group1', apply=False, translate=True )
# The curve transform and group transform will have their translation
# set to 0, 0, 0. The curve will probably move, since the apply
# flag is false.
cmds.makeIdentity( apply=True, translate=True, rotate=True, scale=True )
# This is the same as "makeIdentity -apply true".
# Example 3: Create a polyCube and translate, rotate and scale it.
# And then freeze the normals.
cmds.polyCube()
cmds.rotate( 30, 45, 0 )
cmds.move( 2, 0, 2, r=True )
cmds.scale( 2, 1, 2, r=True )
cmds.makeIdentity( apply=True, t=1, r=1, s=1, n=2 )