Первые шаги в Maya. Урок 25. Работа с модулем Maya Hair
Примеры создания сцен с использованием Hair-систем
Анимированный телефонный провод
Анимированный телефонный провод
Применим Hair-динамику для получения анимации телефонного провода. Создайте исходную сцену с имитацией телефонного аппарата и трубки (мы ограничились сглаженными Subdiv-кубами), а также Nurbs-кривой (сформирована инструментом EPCurveTool), которую и возьмем за основу провода (рис. 71). Перестройте данную кривую так, чтобы в ней оказалось 20 вершин, применив в режиме Surfaces команду EditCurves=>RebuildCurve (рис. 72). Превратите кривую в Hair-систему, выделив ее и воспользовавшись командой Hair=>Make Selected Curves Dynamic с выключенной опцией Exact Shape Match (это позволит получить гибкий провод при минимальном количестве управляющих вершин) — рис. 73. В итоге будет сгенерирована Hair-система, изначально не имеющая никакого отношения к Subdiv-кубам (рис. 74), сделайте ее фолликулы (то есть объект follicle1) потомком телефонной трубки (объекта subdivCube2), перетащив в окне Outliner объект follicle1 при нажатой средней кнопке мыши на строку subdivCube2 (рис. 75). Можно добиться того же результата и иначе — выделить строку follicle1, затем, удерживая нажатой клавишу Shift, выделить строку subdivCube2 и выбрать из меню Edit (Правка) команду Parent (Сделать родителем)
Рис. 71. Исходная сцена
Рис. 72. Перестройка Nurbs-кривой
Рис. 73. Конвертирование Nurbs-кривой в Hair-систему
Рис. 74. Появление Hair-система
Рис. 75. Превращение фолликулов Hair-системы в потомка объекта subdivCube2
Перейдем к настройке поведения полученной Hair-системы. Вначале выделите объект follicle1 и в редакторе атрибутов в разделе Follicle Attributes установите для него в полях Rest Pose и Point Lock варианты Straight и Base соответственно (рис. 76) — это позволит нужным образом изменить характер поведения Hair-системы при старте. Выделите Hair-кривую и перейдите в режим редактирования вершин (клавиша F8). Выделите самую последнюю вершину кривой — предполагается, что она соприкасается с телефонным аппаратом (рис. 77). Установите в этой точке Transform-ограничитель, применив команду Hair=>Create Constraint=>Transform (рис. 78) — это позволит жестко закрепить провод у телефонного аппарата. Запустите анимацию и убедитесь, что теперь Hair-кривая изгибается, но при этом остается прикрепленной к телефонному аппарату (рис. 79).
Рис. 76. Настройка параметров объекта follicle1
Рис. 77. Выделение последней вершины кривой
Рис. 78. Установка Transform-ограничителя
Рис. 79. Вид сцены с деформирующейся Hair-кривой в одном из кадров анимации
Назначьте Hair-кривой подходящую кисть PaintEffects (мы остановились на кисти WickerTubeSmall из раздела Fibers — рис. 80). Выделите данную кривую, откройте окно кистей (команда PaintEffects=>GetBrush), укажите нужную кисть и примените команду Hair=>AssignPaintEffectsBrushtoHair. Теперь, для того чтобы можно было контролировать вид провода в окне перспективы (а не приходилось после каждого изменения параметров прибегать к рендерингу) конвертируйте штрихи PaintEffects в полигональный объект, применив команду Modify=>Convert=>PaintEffectstoPoly gons (рис. 81).
Рис. 80. Окно Visor с выбранной кистью
Рис. 81. Результат конвертирования штрихов PaintEffects в полигональный объект
Приступим к настройке вида провода. Выделите Hair-систему, в разделе Clump and Hair Shape увеличьте число подсегментов (SubSegments) до 30, сделайте ширину Hair-кривой на всем протяжении одинаковой (для этого следует кривую на графике в секции HairsWidth Scale превратить в прямую, перетащив правый маркер вверх) и подберите требуемую ширину кривой (параметр HairsWidth) — рис. 82. В итоге провод будет иметь нужную толщину и станет достаточно гибким. Теперь имитируем скручивание провода и наличие на нем завитков — в секции ClumpCurl раздела Clump and Hair Shape увеличьте значение selectedValue до 2 (провод станет скручиваться), а в разделе Displacements подберите значения параметров Curl и CurlFrequency (мы установили 0,326 и 90 соответственно), что обеспечит появление на проводе завитков (рис. 83).
Рис. 82. Настройка гибкости и толщины провода
Рис. 83. Имитирование скручивание провода и завитков
Проиграйте анимацию и убедитесь, что провод имеет вполне подходящий вид и достаточно эффектно изгибается. Правда, становится очевидной другая проблема — он спокойно проникает внутрь телефонного аппарата (рис. 84). Для устранения этого придется настроить коллизию провода с аппаратом (точнее провода с кубом, внутрь которого мы поместим телефонный аппарат). Выделите Hair-кривую (рис. 85), вызовите из меню Hair команду Create Constraint=>Collide Cube и так масштабируйте вспомогательный куб и переместите его, чтобы телефонный аппарат оказался внутри этого куба (рис. 86). Теперь при анимации провод уже не будет проникать внутрь аппарата (рис. 87).
Рис. 84. Вид проникающего в телефонный аппарат провода
Рис. 85. Выделение Hair-кривой
Рис. 86. Настройка масштаба и положения объекта коллизии
Рис. 87. Результат настройки коллизии (провод не проникает внутрь аппарата)
Теперь добьемся того, чтобы провод при анимации изгибался более замысловато — для этого требуется сделать его в центральной части более гибким. Откройте раздел Dynamics, в секции Stiffness Scale измените вид графика так, чтобы в его левом и правом концах были установлены максимальные значения, а в середине — достаточно небольшое (рис. 88). В секции Solve увеличьте значение параметра Stiffness до 0,5 и подберите, ориентируясь по уровню гибкости провода при анимации, значения параметров Iterations и Length Flex (мы остановились на 20 и 0,38 соответственно). По окончании текстурируйте все объекты сцены и получите задуманную анимацию, некоторые кадры которой представлены на рис. 89.
Рис. 88. Настройка параметров секций Solve и StiffnessScale
Рис. 89. Анимированный телефонный провод