Maya: вопрос-ответ
Вопрос: в новых версиях Майи со встроенным Modeling Toolkit'ом (он же NEX plugin) отсутствуют элементы интерфейса, позволявшие вызвать старые проверенные Split Polygon, Poly Cut, Sculpt Geometry tool'ы. В то же время они не вырезаны из функционала программы. Как их теперь вызвать?
SplitPolygonTool;
performPolyCut 1;
SculptGeometryTool;
Вопрос: как изменить рабочие единицы, используемые Майкой по умолчанию, чтобы они не сбрасывались при создании новой сцены?
Ответ: поменять значения в [maya\<версия>\prefs\userPrefs.mel:
-sv "workingUnitLinearDefault" "cm"
-sv "workingUnitTimeDefault" "film"
Здесь показаны параметры по умолчанию — единицы измерения сантиметры, частота кадров равна 24 (фильм). В XRay используются метры и анимация с частотой кадров, равной 30 (стандарт NTSC):
-sv "workingUnitLinearDefault" "m"
-sv "workingUnitTimeDefault" "ntsc"
Плоскости отсечки настраиваются там же:
-fv "defaultCameraFarClipValue" 1000
-fv "defaultCameraNearClipValue" 0.01
Скриптовые решения
В большинстве случаев небольшие скрипты удобно скопипастить в редактор скриптов и перетащить их оттуда прямо на полку.
Вопрос: Как скриптом переместить объект в начало координат?
Ответ:import maya.cmds as mc
selected = mc.ls( selection=True )
mc.move( 0, 0, 0, selected, rotatePivotRelative=True)
Вопрос: Как отцентрировать опорные точки (pivot'ы) по центру габаритного контейнера объекта (bounding box'а)?
Ответ:mc.xform( centerPivots=True )
Вопрос: Как импортировать много файлов в сцену (например, при работе со сценой после декомпиляции уровня в режиме -mode le
?
import maya.cmds as mc
def multiple_import():
multiple_filters = "X-Ray object (*.object);;X-Ray game object(*.ogf);;X-Ray skeletal motion (*.skl);;All Files (*.*)"
files = mc.fileDialog2(fileFilter = multiple_filters,
dialogStyle = 2,
caption = 'Import',
okCaption = 'Import',
fileMode = 4)
for f in files:
names_list = f.split('/')
object_name = names_list[-1].replace('.object', '')
returned_nodes = mc.file('%s' % f,
i = True,
type = "X-Ray object",
rnn=True,
ignoreVersion = True,
options = "mo=0",
loadReferenceDepth = "all" )
mc.rename(returned_nodes[0], object_name)
Вопрос: Как выделить initialShadingGroup?
Ответ:hyperShade -objects initialShadingGroup;