вторник, 22 апреля 2014 г.

Настройки Maya 2015: Advanced

Games in Maya (3)

Рекомендации основаны на версии Autodesk Maya 2015, но при небольших усилиях могут быть отнесены и к другим релизам. Продублировал здесь предыдущее редактирование этой же статьи, написанной в 2012 году, исключительно для обновления информации о блоге.

Настройки Maya: ADVANCED


Работа с любым инструментом в мире совершенно бессмысленна или принесёт массу неудобств  только из-за того, что неправильно была произведена его заточка или калибровка. А ведь часто многие вовсе не заботятся о личных настройках программ, в которых работают каждый день.

1. Первый старт Autodesk Maya 2015 предоставит по умолчанию свой стандартный, во многом неудобный интерфейс и настройки, которые, к сожалению, некоторые до сих пор используют как свое постоянное виртуальное рабочее пространство:




Сразу убираем автозагрузку напоминалки What`s New Highlight Settings (снимаем чекбокс Show this at startup и закрываем окно) и возможность рассматривать при каждом старте мало полезные видеоуроки (снимаем чекбокс Show this at startup в окне с роликами и закрываем его). Кто хочет, в первом может отключить и подсветку Highlight what`s new, но часто она бывает полезна.

2. Запускаем окно настроек Preferences (Window > Settings/Preferences > Preferences):


Interface:
Для увеличения рабочего пространства и удобства работы: убираем в Show menubar > In panels, и в Show title bar > In main window (первая панель используется не настолько часто, чтобы отъедать полосу рабочего пространства в 20 пикселей, и удобно вызывается через пробел в Hotbox-е, вторая панель – пустая трата пространства полосой в 18 пикселей, нужна исключительно для понимания номера версии программы, в которой вы работаете, что само по себе глупо. Про напоминание названия открытого файла, за которым можно следить более оптимальным способом, я расскажу ниже. Также я убираю Show panel toolbar (19 пикселей), который дублирует многое из легко доступных команд, большинство из которых назначены по умолчанию на ключевые хоткеи. В последних версиях, к тому же, Maya подсказывает, что данная панель может быть вызвана или снова спрятана командой Ctrl + Shift + m.
Если есть потребность, можно отключить в Devices поддержку "управление жестами" Multi-Touch Gestures.

UI Elements:
В разделе Visible UI Elements оставляем только те элементы интерфейса, которые необходимы лично вам в работе.
Я, например, убираю Status Line. У меня чисто индивидуальное отношение к этой панели, так как пользуюсь ей редко и для таких случаев вызываю хоткеем, а большинство ее возможностей висит на разных клавишах и имеется в круговом меню. Также лично мне нет необходимости держать под рукой Tool Box. Практически все кнопки продублированы стандартными хоткеями, а специальные наборы панелей вызываются через выпадающее меню на пробеле. Да и то их, если нужно, можно вызвать заготовленными кнопками на "полках".
 Если занятие анимацией для вас не каждодневный труд – уберите Time Slider и Range Slider. Часто (если не всегда) у обычных моделлеров и текстурщиков висят эти панели, и они ими вообще не пользуются. Экономия рабочего пространства в высоту 65 (!) пикселей.
А вот убирать Command Line и Help Line, как предпочитают некоторые – настоятельно не рекомендую.
В разделе Panel Configurations необходимо снять чекбокс с Restore saved layouts from file. Это навсегда избавит вас от надобности наблюдать каскад ненужных вам открывающихся окон инструментов, наличие которых было сохранено вместе с моделями. Так вы обезопасите себя от постоянной перестройки интерфейса при открытии чужих файлов или же ваших предыдущих.

ViewCube
Настройки этого раздела обычно не принято менять. Но необходимо предупредить, что в версии 2015 дефолтный рендер вьюпорта установлен высокопроизводительный Viewport 2.0, а он не рисует этот переключатель. Поэтому не стоит искать ViewCube там.

Help:
Если вас не интересуют или раздражают всплывающие по ходу работы подсказки и рекомендации, отключите In-view Messages > User assistance messages.

Display:
Чтобы корректно отображать иконки больших текстур (если вы с ними имеете дело), значение Max. res. for swatches необходимо установить на большее, чем размеры используемых вами текстур. В моём случае пришлось выставить 4k x 4k, так как 2k x 2k не отображало содержание текстур 2048 x 2048. Также удобнее настроить Custom > Custom Resolution.
Если у вас Maya 2014 и ниже, настоятельно рекомендую значение Max. texture display res. снизить до значения, которое вам максимально необходимо. Поверьте, быстродействие работы с затекстуренными объектами возрастет, особенно, если для вас не актуальны размеры выше 2048.

Manipulators
В версии 2015 многим захочется войти в настройки Manipulator Plane Handles и изменить значения. Может быть удобнее будет проставить Plane handles 9, но лично мне понравилось вовсе убрать эти управляющие плоскости, сняв чекбокс Plane handles.

Polygons:
Считается очень дурным тоном оставить значение Edges > Standart. Многие изменению этого параметра почему-то активно сопротивляются. Но именно это не позволяет контролировать ВСЕ edges модели при работе на предмет их состояния soft/hard. Значение Edges > Soft даёт возможность полного контроля за soft/hard установками граней, не засоряет экран сплошными линиями edges при моделировании сложных объектов, а также даёт дополнительные возможности при работе с полигональным инструментом Split Polygon Tool до версии Maya 2015 (не путать с Interactive Split Tool). Происходит подкраска edges, на которых этим инструментом можно поставить следующий vertex. Значение Edges > Hard очень важно для облегчения контроля soft/hard установок граней, хотя и сильно нагружает экран лишними линиями. Но это важно для людей, занятых приёмкой качества полигонального меша. Я себе ставлю Soft.
В настройках Highlight добавляем Border edges и даже увеличиваем его Edge width до 3.0. Это позволяет видеть и находить ВСЕ края модели, и, особенно, ВСЕ ненужные разрывы и дырки в моделях.




Settings
При любых ваших предпочтениях следует зайти в Working Units и установить более приемлемую Linear настройку. При производстве игр чаще требуется meter значение.

Cameras
Обязательно выставляем в Animate Camera Transitions значение Total time в 0.1. Это позволяет камере вьюпорта при выделении модели и нажатии клавиши F моментально перемещаться к объекту выделения, как это и было в версиях программы до 7.0.

Files/Projects
Не забываем заполнить поля Default projects directory и Always start in this project, ибо в противном случае вам частенько придется лазить за файлами и картинками в папку C:\Documents and Settings\USER\My Documents\maya\projects\default, что не всегда удобно. Лично у меня когда-то эти два поля были заполнены как C:/MayaProjects. Это было намного практичней.
Для тех, кто привык делать автосохранения – настройте параметры поля AutoSave как вам нравится. По умолчанию эта возможность отключена.
Для командной работы рекомендую в поле Version проверить наличие активного чекбокса Ignore Version. Это поможет избежать большинства (но не всех!) проблем при открытии файлов в разных версиях Maya.
Секретный раздел этого таба Image Files (его практически никто не видит из-за смотанного вниз свитка настроек) содержит замечательный чекбокс Automatically reload updated image files, который стоит включить, если вы хотите видеть в сценах автоматический абдейт открытых текстур, изменяемых и сохраняемых в сторонних программах.

Modeling:
В разделе Polygons, если включить Create meshes single sided, вы навсегда избавитесь от большинства проблем в работе, так как при выгрузке моделей в игровой движок у вас перестанут появляться объекты с вывернутыми в обратную сторону нормалями. Ведь контроль за их направлением вы получите прямо в процессе работы, создавая сразу односторонние модели. И обязательно проверьте наличие активного дефолтного Keep faces together.

Selection:
Иногда при работе мешают приоритеты выделения - отдельные объекты перехватывают на себя ваше внимание (например Кости в заскиненной модели). Если кого-то это раздражает, можно включить Ignore selection priority.
Настоятельно рекомендую убрать чекбокс с Preserve Component Selections. Это поможет, как в старых версиях, делать на полигональных моделях одновременный выбор разных типов компонентов для модификаций или трансформаций.

Undo:
Рекомендую значение Queue size выставлять не менее 100. Цифра по умолчанию в 50 при обычной работе всегда оказывается слишком коротким значением. Ну а бесконечное количество Undo (с помощью выбора Queue > Infinite) лично я не пробовал ни разу из-за риска заполнить всю рабочую память.

Modules:
Если при работе над игровыми моделями вы не часто используете просчеты Динамики и не пользуетесь Paint Effects, рекомендую отключить эти блоки.  Так вы освободите дополнительную память для работы Maya. Если они иногда нужны – ничто не мешает включить их в любой момент. Перезагрузка для функционала не требуется.

Application:
Данная настройка позволяет перебрасывать прямо из Maya выделенные текстурные ноды или ноды файлов PSD для просмотра или редактирования во внешние 2D программы. Для примера, чтобы понять, приведу собственные настройки с моими путями к моему набору программ:


Image Viewing Applications
All formats
C:\Program Files (x86)\XnView\xnview.exe Optional Flags: %f

Image Editing Applications
Photoshop (PSD) Files
C:\Program Files\Adobe\Adobe Photoshop CS6 (64 Bit)\Photoshop.exe
Other Image Files
C:\Program Files\Adobe\Adobe Photoshop CS6 (64 Bit)\Photoshop.exe

В том же стиле, если есть потребность, можно оформить и разделы Sequence Viewing Applications.

В каких-то из версий Maya, которые были у меня, программа при старте всегда выдавала сообщение об ошибке // Error: Socket error creating command port, которое всегда нервировала своим красным фоном. Если у вас есть эта проблема, снимите чекбокс в разделе External CommunicationDefault command portEnable.

Остальные настройки всех разделов оставляю по умолчанию. Изменения некоторых из них становятся совсем уж "личными предпочтениями".
Не забываем в финале нажать внизу окна клавишу Save

3. Для версий Maya выше 8.0 введена возможность создавать примитивы в интерактивном режиме, как в программе 3D Studio MAX. Если вас это каким-то образом не устраивает, имеется возможность это отключить, убрав выбор в Create > NURBS Primitives > Interactive Creation и Create > Polygon Primitives > Interactive Creation. Хотя я бы не рекомендовал делать этого. К новому способу создания примитивов привыкнуть быстро, а удобств от этого больше (рекомендовано опробовать этот инструмент с зажатыми клавишами Shift или Ctrl, или Shift Ctrl). К тому же никто не запрещает помещать на Shelf кнопки с возможностями создавать объекты разными способами.

4. Установка Grid (Display > Grid □):

Настраиваем сетку, как на рисунке. Обращаем внимание на цвет Grid lines & numbers:



После настроек не забываем нажать Apply and Close.

5. Обязательно включаем статистику компонентов сцены, без контроля которой работа в игростроении является дурным тоном: Display > Heads Up Display > Poly Count.
Вверху слева экрана появляется поле статистики:


6. Заходим  в Plug-in Manager (Window > Settings/Preferences > Plug-in Manager) и отключаем все ненужные вам для работы плагины.

7. В настройках меню Hotbox (всплывающем при нажатии клавиши «Пробел») в Hotbox Controls рекомендую установить Set Transparency в 50%, чтобы было более комфортно работать с данным меню. И лично я, через то же меню, минимизирую его до наличия лишь отключенного ранее Preferences > Interface > Show menubar > In panels:


8. Одним из самых важных пунктов оптимизации работ на Maya является активное владение набором хоткеев.  Для этого необходимо зайти в Hotkey Editor (Window > Settings/Preferences > Hotkey Editor) и выучить все необходимые для работы горячие клавиши. Список уже установленных по умолчанию находится под кнопкой List All. Но, к сожалению, много полезных функций невозможно найти в готовых списках команд. Их придется создать самим, желательно в категории User, используя клавишу New, и вставляя указанные команды. Занятые ранее имена горячих клавиш оставляйте или меняйте на свое усмотрение. Также, для удобства последующего поиска и редактирования собственных хоткеев, не забывайте давать им имена Names, а если есть интерес, то и описание Description.
Мои сочетания приведены как пример, но может быть кому-нибудь и понравятся.

8 команду по умолчанию с этой клавиши часто приходится убирать – раздражает загрузка окна рисования Paint Effects в самый неподходящий момент – поэтому на неё у меня установлено включение/выключение режима Wireframe on Shaded:

string $currentPanel = `getPanel -withFocus`;
int $wosState = `modelEditor -q -wos $currentPanel`;
if ($wosState == 0)
    modelEditor -edit -wos 1 $currentPanel;
else
    modelEditor -edit -wos 0 $currentPanel;

9 включает/выключает режим Flat Lighting (напоминает режим Use No Lights, но более корректный):

string $currentPanel = `getPanel -withFocus`;
string $dlState = `modelEditor -q -dl $currentPanel`;
if ($dlState == "default") 
modelEditor -e -dl flat $currentPanel;
else 
modelEditor -e -dl "default" $currentPanel;

Alt+F2 открывает, с последующим сворачиванием-разворачиванием по хоткею окна UV Texture Editor-а:

if (`window -ex polyTexturePlacementPanel1Window` == 1 && `window -q -i polyTexturePlacementPanel1Window` == 0)
window -e -i 1 -topLeftCorner 0 675 -widthHeight 1000 700  polyTexturePlacementPanel1Window;
else if (`window -ex polyTexturePlacementPanel1Window` == 0)
TextureViewWindow;
else
window -e -i 0 -topLeftCorner 0  675 polyTexturePlacementPanel1Window;
textureWindow -e -imageUnfiltered 1 polyTexturePlacementPanel1;

(Выделенные цифры в скрипте команды можно изменять на свои. Это привязка к координатам открытия окна и его размер.);

Alt+F3 открывает, с последующим сворачиванием-разворачиванием по хоткею окна Hypershade:

if (`window -ex hyperShadePanel1Window` == 1 && `window -q -i hyperShadePanel1Window` == 0)
window -e -i 1 -topLeftCorner  727 675 -widthHeight 1000 264 hyperShadePanel1Window;
else if (`window -ex hyperShadePanel1Window` == 0)
HypershadeWindow;
else
window -e -i 0 -topLeftCorner 727 675 hyperShadePanel1Window;

(Выделенные цифры и в этом скрипте команды можно изменять на свои. Это также привязка к координатам открытия окна и его размер.);

` (апостроф) – включает/выключает режим Wireframe on Shaded на всей сцене, в том числе на выделенных объектах – очень часто это весьма необходимо:

if (`displayPref -q -wsa` == "full") displayPref -wsa "none";
    else
    displayPref -wsa full;

 Alt+1 включает на всей сцене у всех полигональных объектах режим одностороннего отображения:

string $poly;
string $polys[] = `ls -type mesh`;
for ($poly in $polys)
{
$attr = $poly + ".doubleSided";
setAttr $attr off;
};

Alt+2 включает на всей сцене у всех полигональных объектах режим двустороннего отображения:

string $poly;
string $polys[] = `ls -type mesh`;
for ($poly in $polys)
{
$attr = $poly + ".doubleSided";
setAttr $attr on;
};

Alt+3 включает-выключает на выбранном полигональном объекте режим отображения текстурной границы (по краю UV-Shell-а):

int $borders[] = `polyOptions -q -displayMapBorder`;
 float $borderWidth[] = `optionVar -q displayPolyBorderEdgeSize`;
 polyOptions -displayMapBorder (!$borders[0]) -sizeBorder $borderWidth[1];

Alt+e при любом выделенном компоненте полигонального объекта выделяет весь целостный, объединенный компонент объекта, его полигональный Shell. В отличие от способа выделения двойным кликом позволяет выделять цельные части в режимах разных компонентов, а не только в face. А также работает с несколькими объектами одновременно:

polyConvertToShell;
polySelectBorderShell 0;

Alt+f устанавливает сглаженные грани (edges) на выделенных полигональных компонентах или всём объекте:

polySoftEdge -a 180 -ch 1;

Alt+g устанавливает острые грани (edges) на выделенных полигональных компонентах или всём объекте:

polySoftEdge -a 0 -ch 1;

Alt+v включает старый инструмент Split Polygon Tool, который убрали из меню:

setToolTo polySplitContext;

X (Shift+x) включает-выключает на компонентах face всей сцены центральную точку выделения. Так как она в основном нужна для выделения граней через весь объект, этим хоткеем одновременно отключается Preselection Highlight, который мешает это делать. Хотя при повторном нажатии снова включает:

if (`polySelectConstraint -q -wholeSensitive`)
{
    polySelectConstraint -wholeSensitive off;
    selectPref -preSelectHilite 0;
}
else
{
    polySelectConstraint -wholeSensitive on;
    selectPref -preSelectHilite 1;
}

!  (Shift+1) снимает любое выделение в сцене; весьма необходимая вещь, особенно при работе с полигональными инструментами, когда повторные их вызовы начинают применяться к последним выделениям, которые остались после предыдущих операций:

select -cl ;

При установке новых горячих клавиш не забываем сохранить окно с настройками после изменения.

9. Для облегчения восприятия моделирования игрового контента, а также для понижения утомляемости рекомендую стандартный серый цвет заднего фона заменить на цветной градиент, близкий к тону небесной сферы.
Заходим в Window > Settings/Preferences > Color Settings и во вкладыше General > 3D Views устанавливаем значения:
Gradient Top:          R 0,700 G 0,850 B 1,000
Gradient Bottom:  R 0,350 G 0,403 B 0,500
Нажимаем после настроек Save:


10.  Для удобства навигации по интерфейсу Maya и нормального получения системных сообщений (например прогресса открытия больших файлов или же рендера картинок и текстур) необходимо всегда на виду держать Help Line. Однако по умолчанию она расположена под  Command Line (позиция 1 на рисунке ниже). Но когда в поле программы находится несколько свёрнутых вниз экрана окон инструментов Maya, она всегда будет закрыта от обзора. Поэтому необходимо просто перетащить Help Line на место выше Command Line(позиция 2 на рисунке), чтобы стало более комфортно (позиция 3 на рисунке).


11. Несколько настроек Maya, сделанных "по умолчанию", лучше изменить сразу после установки программы.
Открываем меню File > Import  - настраиваем импорт файлов так, чтобы к именам объектов в сцене не цеплялись названия файлов-источников:
Устанавливаем чекбокс на Namespace OptionsUse namespaces и выбираем Merge into selected namespace and rename incoming objects that match.


12. При первой работе с полигональными объектами необходимо произвести настройку некоторых инструментов через их Tool Options, которые в процессе самой работы обычно не удобно запускать.
Через меню Mesh Tools >
Insert Edge Loop Tool □ - необходимо отключить Auto complete и Fix Quads.
Offset Edge Loop Tool □ - необходимо включить Tool completion > Press enter .
Если используете старый Split: командой SplitPolygonToolOptions вызываем скрытое меню, и там устанавливаем:

Значение Smoothing angle на 90, убираем Split only from edges и Use snapping points along edge

13. Чтобы нормально можно было работать в Maya с полигональными (и не только) объектами, всегда приходится подключать определённый набор скриптов. Что и для чего устанавливать - личное дело каждого. Для этого необходимо почитать профильные сайты или просто послушать чужие советы. Иногда для комфорта необходимо совсем не много скриптов, так как в последних релизах Maya появилось немало функций, заменяющих внешние скрипты в старых версиях. Но среди существующих есть и такие, без которых работа в программе практически невозможна. Стоит только удивляться, почему данные инструменты не предоставляются в стандартной поставке.
Сперва коротко об оптимальном способе подключения скриптов:
  1. Кладём какой-нибудь omygod.mel в папку с личными настройками Maya: c:\Documents and Settings\USER\My Documents\maya\2012\scripts\.
  2. Не выключая Maya с помощью drug-and-drop перетаскиваем этот скрипт из любого файлового броузера прямо во вьюпорт программы. (При последующих стартах он автоматически будет попадать в систему сам).
  3. Устанавливаем команду на срабатывание скрипта (обычно это его имя, в нашем случае omygod) на хоткей или на новую кнопку на одной из полок Shelf. Стараемся не откладывать на потом её переименование. А лучше всего сразу изготовить или подобрать иконку под команду. И всё - готово.

К строго обязательным скриптам я бы причислил следующие:

flattenCombine.mel - адекватно присоединяет (объединяет) к полигональному объекту несколько дополнительно выделенных объектов. Сохраняя имя, иерархию и трансформации первого выделенного объекта, к которому все остальные присоединяются. Взять тут:

detachSeparate.mel - адекватно отсоединяет (отрывает) от полигонального объекта выделенные части в новый отдельный объект. Без создания мусора, разрушения иерархии, смещения осей и трансформаций. Взять тут:
detachseparate.mel

duplicateSeparate.mel - копия упомянутого выше detachSeparate.mel с моими личными правками. В отличие от предыдущего  не отсоединяет от полигонального объекта выделенные части в новый объект, а делает их копию в виде отдельного объекта. Взять тут:

cutCopyPaste.mel - стандартный скрипт от производителей Maya, немного исправленный лично мной (брал за основу из Maya 2015, но не думаю, что будут проблемы в других версиях).  Теперь при использовании стандартных везде наборов хоткеев Ctrl+c Ctrl+v в сцену будут вставляться объекты (материалы, слои и т.д.) без добавления к именам префикса pasted_.  Естественно, если у вас в сцене в том же месте иерархии уже есть объект с таким же именем, новый всё же будет переименовываться по стандартным правилам Импорта. Но если вы откроете одновременно две разные сцены, чтобы перебросить из одной в другую парочку моделей, достаточно в первой просто сделать на выделенном Ctrl+c, а во второй Ctrl+v, чтобы перекинуть нужное без переименования. (Две сцены одновременно открываются способом одновременного запуска двух Maya). Скрипт можно забрать тут:
cutCopyPaste.mel

importImageFile.mel - также стандартный скрипт от производителей Maya, изменённый мной. Даёт возможность при использовании drag-and-drop текстур из любого  файлового броузера в окно Hypershade вставлять туда текстурные ноды не только типа file, но и psdFiletex при использовании формата *.psd. Скрипт можно забрать тут:
importImageFile.mel

14. На данном этапе закрываем Maya и находим на диске папку с пользовательскими настройками этой программы. Как пример: C:\Documents and Settings\USER\My Documents\maya\2015-x64, внутри нам понадобится папка scripts, а вернее находящийся там файл userSetup.mel, который должен быть внутри. Если его нет, придется создать с помощью блокнота с этим именем.
 Открываем найденный или созданный userSetup.mel и вставляем в самом верху следующие строки:

headsUpDisplay
-section 2
-block 0
-blockSize "small"
-dfs "small"
-l "scene"
-command "file -q -sn"
-ev "workspaceChanged"
HUDSceneName;

Блок этой записи добавляет на верхнюю центральную часть вьюпорта надпись, содержащую имя файла, с которым вы работаете, а также полный путь к нему. При работе с игровыми проектами и большими объемами контента это просто необходимо:



Далее в userSetup.mel можно добавить -

Если у вас установлен стандартный набор Maya Bonus Tools с официального сайта http://area.autodesk.com/ :

bonusToolsMenu;

Если вы часто работаете с UV-маппингом и хотите при старте Maya всегда запускать окно UV Texture Editor-а:

TextureViewWindow;

Если вы часто работаете с материалами и хотите при старте Maya запускать окно Hypershade:

HypershadeWindow;

При работе с компонентами затекстуренного полигонального объекта не всегда удобно иметь включённую по умолчанию функцию Preserve UVs. Чтобы отключать её при старте Maya, необходимо прописать:


setTRSPreserveUVs 0;

Если при работе в UV Texture Editor-е вам нравится включенный шейдинг на UV-Shell-ах:



textureWindow -edit -displaySolidMap 1 polyTexturePlacementPanel1;

При работе с игровыми текстурами в окне UV Texture Editor в обязательном порядке необходимо при каждом запуске программы отключать установленную по умолчанию фильтрацию. На рисунке снизу слева текстура без фильтрации, справа с фильтрацией. До сих пор не понимаю, как возможно качественно маппить и текстурить игровые модели, имея фильтрацию рабочей текстуры в окне. Практически нереально точно отредактировать координаты UV вершин модели по размыленному рисунку.


textureWindow -edit -imageUnfiltered 1 polyTexturePlacementPanel1;

На данном этапе настройку Maya можно и завершить. Хотя в процессе работы приходится постоянно что-то добавлять и изменять.
Удачи!

P.S. при работе с полигональными объектами много времени приходится уделять UV-маппингу. Но лично для себя этот процесс я уже давно упростил. Стандартный набор UV-map-инструментария никогда не удовлетворял меня, поэтому и появилась собственная версия панели UV Texture Editor-а  - UV ToolНа сегодняшний день она представлена в creativecrash/marketplace. Как это работает, можно почитать в этом блоге. Первая часть обзора расположена на странице: Новый UV Texture Editor Tools .

2 комментария: