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