Autodesk Maya で中心点を見つける方法...中心ピボットを使用することはわかっていますが、点が見つかりません..Autodesk Maya を使用して作成された 3D オブジェクトの正確な座標を見つける方法を教えてください。ありがとう。
8 に答える
この質問には、実際には 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)
メニューの [修正] > [センター ピボット] に移動するだけです。これにより、ピボットがモデルの中心に移動します。
実際に呼ばれるコマンドがあります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
シャノン
センター ピボット コマンドがピボットを配置する場所に満足していて、それがワールド空間のどこにあるかを知りたい場合は、次の操作を実行できます (オブジェクトが選択されていると仮定します)。
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
マヤでオブジェクトを選択し、右側のパネルを見てください。
オブジェクトを選択し、"Modify-Center pivot.." 機能しない場合は、オブジェクトを選択して、キーボードの [Insert] キーを押します。次に、ピボットを設定できます.設定したい場所をドラッグアンドドロップするだけです...
疑問がある場合は、お気軽に共有してください....
オブジェクトを選択し、スクリプト エディターでこれを実行します。
string $sel[];
$sel = `ls -sl`;
print `getAttr ($sel[0]+".translate")`;
これにより、履歴パネルに X、Y、および Z 座標が出力されます。