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 からどのように呼び出すかという問題の 1 つです)。コードのサイズが大きいため、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

これは と同じように機能するように見えますが、 fitFactorviewFit()などの他の引数を受け入れ、float を渡してビューポートの何パーセントをフィットさせるかを決定できます。

于 2014-02-17T15:27:48.217 に答える