2

我有这个问题,我无法让该功能FrameSelected()正常工作基本上在我的场景中,有一个名为 TT_CAM 的相机和一个带有名为“模型”的标签的模型列表(就像 pCube/Sphere 等被称为多边形)

我的目标是当用户执行脚本时,视口将更改为 TT_CAM,同时将焦点(“f”键盘键)放在所有模型对象上。

我尝试使用下面的代码,但 FrameSelected 失败了。

这是我尝试过的:

import maya.cmds as cmds
    cmds.lookThru("TT_CAM")
    mAssets = cmds.select('Model*')
    #cmds.viewFit(mAssets)
    cmds.FrameSelected(mAssets)
4

1 回答 1

1

我只是将其发布为答案。我没有意识到 pymel 实际上有这样的功能,但是您必须明确导入它才能使用它(这是这里的问题之一,看您如何从 cmds 调用它)。由于您的代码大小,我将使用 pymel 重写它。

import pymel.core as pm
from pymel.core.runtime import FrameSelected

pm.lookThru("TT_CAM")
mAssets = pm.select('Model*')
FrameSelected() # no arguments need be passed, works off selected objects

虽然这看起来确实像viewFit(),它接受其他参数,如fitFactor,您可以在其中传递一个浮点数来确定您想要安装的视口百分比。

于 2014-02-17T15:27:48.217 回答