Maya: вопрос-ответ — различия между версиями
RedPython (обсуждение | вклад) |
RedPython (обсуждение | вклад) |
||
Строка 3: | Строка 3: | ||
performPolyCut 1; | performPolyCut 1; | ||
SculptGeometryTool;</syntaxhighlight> | SculptGeometryTool;</syntaxhighlight> | ||
+ | ---- | ||
+ | '''Вопрос:''' как изменить рабочие единицы, используемые Майкой по умолчанию, чтобы они не сбрасывались при создании новой сцены?<br /> | ||
+ | '''Ответ:''' поменять значения в '''[maya\<версия>\prefs\userPrefs.mel''': | ||
+ | <syntaxhighlight lang="ini">-sv "workingUnitLinearDefault" "cm" | ||
+ | -sv "workingUnitTimeDefault" "film"</syntaxhighlight> | ||
+ | Здесь показаны параметры по умолчанию — единицы измерения сантиметры, частота кадров равна 24 (фильм). В XRay используются метры и анимация с частотой кадров, равной 30 (стандарт NTSC): | ||
+ | <syntaxhighlight lang="ini">-sv "workingUnitLinearDefault" "m" | ||
+ | -sv "workingUnitTimeDefault" "ntsc"</syntaxhighlight> | ||
+ | Плоскости отсечки настраиваются там же: | ||
+ | <syntaxhighlight>-fv "defaultCameraFarClipValue" 1000 | ||
+ | -fv "defaultCameraNearClipValue" 0.01</syntaxhighlight> | ||
== Скриптовые решения == | == Скриптовые решения == | ||
− | + | В большинстве случаев небольшие скрипты удобно скопипастить в редактор скриптов и перетащить их оттуда прямо на полку. | |
+ | ---- | ||
'''Вопрос:''' Как скриптом переместить объект в начало координат? | '''Вопрос:''' Как скриптом переместить объект в начало координат? | ||
'''Ответ:''' <syntaxhighlight lang="python">import maya.cmds as mc | '''Ответ:''' <syntaxhighlight lang="python">import maya.cmds as mc | ||
Строка 13: | Строка 25: | ||
mc.move( 0, 0, 0, selected, rotatePivotRelative=True) | mc.move( 0, 0, 0, selected, rotatePivotRelative=True) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | ''' | + | ---- |
− | Вопрос:''' Как отцентрировать опорные точки (pivot'ы) по центру габаритного контейнера объекта (bounding box'а)? | + | '''Вопрос:''' Как отцентрировать опорные точки (pivot'ы) по центру габаритного контейнера объекта (bounding box'а)? |
'''Ответ:''' <syntaxhighlight lang="python">mc.xform( centerPivots=True )</syntaxhighlight> | '''Ответ:''' <syntaxhighlight lang="python">mc.xform( centerPivots=True )</syntaxhighlight> | ||
− | + | ---- | |
'''Вопрос:''' Как импортировать много файлов в сцену (например, при работе со сценой после [[X-Ray game asset converter|декомпиляции]] уровня в режиме <code>-mode le</code>? | '''Вопрос:''' Как импортировать много файлов в сцену (например, при работе со сценой после [[X-Ray game asset converter|декомпиляции]] уровня в режиме <code>-mode le</code>? | ||
'''Ответ:''' <syntaxhighlight lang="python">import maya.cmds as mc | '''Ответ:''' <syntaxhighlight lang="python">import maya.cmds as mc | ||
def multiple_import(): | def multiple_import(): | ||
− | files = mc.fileDialog2(fileFilter = | + | 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: | for f in files: | ||
names_list = f.split('/') | names_list = f.split('/') | ||
object_name = names_list[-1].replace('.object', '') | 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", | + | returned_nodes = mc.file('%s' % f, |
− | mc.rename( returned_nodes[0], object_name)</syntaxhighlight> | + | i = True, |
− | + | type = "X-Ray object", | |
+ | rnn=True, | ||
+ | ignoreVersion = True, | ||
+ | options = "mo=0", | ||
+ | loadReferenceDepth = "all" ) | ||
+ | mc.rename(returned_nodes[0], object_name)</syntaxhighlight> | ||
+ | ---- | ||
+ | '''Вопрос:''' Как выделить initialShadingGroup? | ||
+ | '''Ответ:''' <syntaxhighlight lang="ini">hyperShade -objects initialShadingGroup;</syntaxhighlight> | ||
[[Категория:Maya]] | [[Категория:Maya]] |
Версия 17:02, 9 декабря 2016
Вопрос: в новых версиях Майи со встроенным 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;