4

Autodesk Maya で中心点を見つける方法...中心ピボットを使用することはわかっていますが、点が見つかりません..Autodesk Maya を使用して作成された 3D オブジェクトの正確な座標を見つける方法を教えてください。ありがとう。

4

8 に答える 8

3

この質問には、実際には 2 つの回答が考えられます。

オブジェクトの「中心」とは、次のことを意味します。

オブジェクトのバウンディング ボックスの中心: 次のように取得できます (Python を使用)

bbx = cmds.xform(object, q=True, bb=True, ws=True) # world space
centerX = (bbx[0] + bbx[3]) / 2.0
centerY = (bbx[1] + bbx[4]) / 2.0
centerZ = (bbx[2] + bbx[5]) / 2.0

オブジェクトのピボットの位置: これは、オブジェクトの位置と同じではありません。これは、Maya が報告する移動数を変更せずにピボットを移動できるためです。ワールド空間のピボットの位置は、次の方法で取得できます。

pivot = cmds.xform(object, q=True, rp=True, ws=True)
于 2013-05-08T05:27:03.470 に答える
3

メニューの [修正] > [センター ピボット] に移動するだけです。これにより、ピボットがモデルの中心に移動します。

于 2011-02-25T15:45:27.483 に答える
1

実際に呼ばれるコマンドがありますobjectCenter()

これにより、特定のポイントまたはオブジェクトの真のワールド空間が得られます。

maya.cmds をコマンドとしてインポート

# create a simple hierarchy
cmds.polyCube( name='a' )
cmds.polyCube( name='b' )
cmds.parent( 'b', 'a' )
cmds.move( 3, 0, 0, 'a', localSpace=True )
cmds.move( 2, 2, 2, 'b', localSpace=True )
X_COORD = cmds.objectCenter('b',x=True)
# Result: 5 #
# Get the center of the bounding box of b in local space
XYZ = cmds.objectCenter('b', l=True)
# Result: 2 2 2 #
# Get the center of the bounding box of b in world space
XYZ = cmds.objectCenter('b', gl=True)
# Result: 5 2 2 #
# Get the center of the bounding box of a in world space
XYZ = cmds.objectCenter('a', gl=True)

http://download.autodesk.com/global/docs/maya2013/en_us/CommandsPython/index.html

シャノン

于 2013-02-19T04:18:14.323 に答える
1

センター ピボット コマンドがピボットを配置する場所に満足していて、それがワールド空間のどこにあるかを知りたい場合は、次の操作を実行できます (オブジェクトが選択されていると仮定します)。

PyMEL を使用:

import pymel.core as pm
theObject = pm.ls(sl=1)[0]
theObject.getRotatePivot()

または maya.cmds を使用:

import maya.cmds as mc
mc.xform(query=True,rotatePivot=True)

またはMELを使用

xform -q -rotatePivot
于 2012-11-07T14:04:43.777 に答える
0

マヤでオブジェクトを選択し、右側のパネルを見てください。

于 2010-10-22T15:56:00.987 に答える
0

オブジェクトを選択し、"Modify-Center pivot.." 機能しない場合は、オブジェクトを選択して、キーボードの [Insert] キーを押します。次に、ピボットを設定できます.設定したい場所をドラッグアンドドロップするだけです...

疑問がある場合は、お気軽に共有してください....

于 2015-04-10T18:14:34.723 に答える
0

オブジェクトを選択し、スクリプト エディターでこれを実行します。

string $sel[];
$sel = `ls -sl`;
print `getAttr ($sel[0]+".translate")`;

これにより、履歴パネルに X、Y、および Z 座標が出力されます。

于 2011-05-06T02:32:10.350 に答える