ジャンプ先: 概要. 戻り値. フラグ. Python 例.

概要

makeIdentity( [dagObject] , [apply=boolean], [jointOrient=boolean], [normal=uint], [preserveNormals=boolean], [rotate=boolean], [scale=boolean], [translate=boolean])

注: オブジェクトの名前と引数を表す文字列は、カンマで区切る必要があります。これはシノプシスに示されていません。

makeIdentity は、取り消し可能、照会不可能、および編集不可能です。

選択したトランスフォーム、およびシェイプレベルまでのすべての子を ID 変換でリセットする、高速な方法です。選択したトランスフォーム結果から適用されるトランスフォーム、回転、スケールを指定することもできます。ID 変換には以下の意味があります。

トランスフォームがジョイントである場合、「translate」アトリビュートは 0 でないことがありますが、ジョイントを配置してワールド空間での位置を保持するために使用されます。ジョイントはワールド空間での位置を保持する必要があるので、translate フラグはジョイントに適用されません。rotate フラグと scale フラグのみが、ジョイントに適用されると効果があります。

-a/apply フラグを true にすると、リセットされるトランスフォームは累積され、修正されたトランスフォームの下にあるすべてのシェイプに適用されるので、シェイプは移動しません。ピボット位置は、ワールド空間で移動しないように再計算されます。このフラグを false にすると、位置を保持するように変更せずに、トランスフォームが ID にリセットされます。

戻り値

なし

フラグ

apply, jointOrient, normal, preserveNormals, rotate, scale, translate
ロング ネーム(ショート ネーム) 引数タイプ プロパティ
apply(a) boolean create
true にすると、トランスフォーム ピボットのワールド空間での位置が保持されてシェイプが移動しないように、トランスフォームが ID になった後で、累積されたトランスフォームがシェイプに適用されます。既定は false です。
jointOrient(jo) boolean create
設定すると、ジョイントの方向がリセットされワールド座標空間に位置合わせされます。
normal(n) uint create
1 に設定すると、ポリゴン オブジェクトの法線がフリーズ(ロック)されます。このフラグは、-apply フラグがオンの場合のみ有効です。2 に設定すると、ポリゴン オブジェクトの法線はリジッドでない変換行列、つまりシア、傾斜または不均等スケールなどを含まないトランスフォームの場合のみフリーズされます。既定では法線はフリーズされません。
preserveNormals(pn) boolean create
このフラグが true の場合、ポリゴン オブジェクトの法線は、オブジェクトが負にスケールされる(反射)と反転されます。このフラグは、-apply フラグがオンの場合のみ有効です。
rotate(r) boolean create
true にすると、回転のみがシェイプに適用されます。回転は、0, 0, 0 に変更されます。translate フラグ、rotate フラグ、scale フラグを指定しないと、すべての(t, r, s)が適用されます。
scale(s) boolean create
true にすると、スケールのみがシェイプに適用されます。スケール係数は、1, 1, 1 に変更されます。translate フラグ、rotate フラグ、scale フラグを指定しないと、すべての(t, r, s)が適用されます。
translate(t) boolean create
true にすると、平行移動のみがシェイプに適用されます。平行移動は、0, 0, 0 に変更されます。translate フラグ、rotate フラグ、scale フラグを指定しないと、すべての(t, r, s)が適用されます。(注: translate フラグは、ジョイントに適用しても効果がありません。ジョイントではワールド空間での位置が保持されるからです。このフラグはジョイントに影響しません。)

フラグはコマンドの作成モードで表示できます フラグはコマンドの編集モードで表示できます
フラグはコマンドの照会モードで表示できます フラグに複数の引数を指定し、タプルまたはリストとして渡すことができます。

Python 例

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 )