Maya: вопрос-ответ — различия между версиями

Материал из xrWiki
Перейти к: навигация, поиск
Строка 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 = '*.object', dialogStyle = 2, caption = 'import', fileMode = 4)
+
    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", loadReferenceDepth  = "all"  )
+
         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;