FrameSelected не работает

У меня есть проблема, когда я не могу получить функцию 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)

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, где вы можете передать число с плавающей точкой, чтобы определить, какой процент области просмотра вы хотите установить.

Другие вопросы по тегам