Уроки Maya

         

BuildSunMaya


Как построить солнце в Maya

Привет всем. Я решил написать новый урок про то, как можно построить Солнце. Я посчитал, что задача интересная, имеет очень много способов выполнения, и поэтому мой способ тоже имеет право на жизнь.

В общем, в конечном результате получается Солнце, которое не совсем настоящее, но передо мной такая задача и не стояла. Если у кого-то будет особое желание сделать все максимально реалистично, то после небольших изменений параметров я думаю, у вас все получится.

И так начнем.

1. Открываем программу.

2. Создаем цилиндр, примерно, такой как создал я. Боковые поверхности (крышки) я думаю, нам не понадобятся.

3. Теперь сделаем так, чтобы наш цилиндр, испускал частички.

Dynamics--Particles--EmitFromObject

Частицам дадим атрибут Blobby Surface(s/w)(после не продолжительных экспериментов я пришел к выводу, что такие частицы подходят более всего)

Немного настроим параметры (Render Attributes):

Дадим жизни (но не постоянной)

4. Теперь (на мой взгляд) самая ответственная часть. В Attribute Editor в закладке Per Particle (Array) Attributes нужно добавить атрибут, который будет отвечать за радиус частиц по отношению к длине жизни. (Прошу отнестись серьезно к этому пункту (если вы еще не знаете, как добавлять Add Dynamic Attributes) потому что весь этот урок построен именно на этом пункте)

Итак, начнем: В Attribute Editor в закладке Add Dynamic Attributes

Кликнем на закладке General



Вываливается окошко Add Attribute:particleShape1 выбираем закладку Particle, выбираем из множества атрибутов radiusPP, нажимаем OK

В закладке Per Particle (Array) Attributes у нас добавился новый атрибут radiusPP

Теперь в пустой колонке этого атрибута кликнем правой клавишей мыши и выбираем Create Ramp (на квадратик)

У вас появляется окошко Create Ramp Options

Выставьте все предлагаемые параметры, так как на картинке.

Теперь, когда вы проиграете анимацию у вас должно получиться примерно вот так.


С течением времени частички уменьшаются. ( Можно в Multilister попробовать поэкспериментировать над Ramp.)



Этот пункт будет применяться ко всем системам частиц, которые мы сделаем.

В следующих случаях в окошке Create Ramp Options в параметре Map To можно ставить не New Ramp, а Ramp1.

Если, кто-то читал мой прошлый урок про “рыбу” или сам знает, как работать со слоями

Я советую эти частички спрятать на отдельный слой, чтоб они не мешали.

5. Теперь создаем несколько кривых. Это будут протуберанцы на солнце. Здесь ваша фантазия может вам помочь.



У меня стояла задача сделать солнце больше мультяшное чем реальное, поэтому я кривые нарисовал вот так.

6.Теперь ко всем кривым применим Dynamics--Effect—Create CurveFlow

И после того как появилось CurveFlow, в ручную отредактируем примерно так: (В начале у нас должны быть большие радиусы, а в конце меньшие)



У вас должно получиться примерно так.



Теперь ко всем частичкам применим пункт 3-4.

У вас получится вот такая штука, которая похожа на медузу.



Создадим в центре сферу и изменим ей пропорции, чтобы получился вот такой эллипс.



 


К нему тоже нужно применить пункты 3-4. В общем вот и получилось наше солнышко. (не забудьте включить слой с цилиндром, и сделать сам цилиндр Display—Object Display—Hide Selected )

Теперь нужно раскрасить наше солнышко. Можно применить один SurfaceMaterial на все объекты.

Или можно придумать, что-то более серьезное. Я применил один SurfaceMaterial на все частички и точно такой же к эллипсу.

Внизу на картинке можно посмотреть параметры.

Этот SurfaceMaterial я применил к эллипсу



Точно такой же, ко всем частицам, но в закладке SpecialEffects включил HideSource



Вот такой получился результат.




Дупликация (duplication) и создание ссылочной копии(instancing)


Здесь Вы познакомитесь с довольно часто используемой операцией дупликации, и каким образом указать, что и как нужно копировать. 



Flag


Имитация развевающегося флага

Имитация развевающегося флага

с помощью модуля CLOTH в Maya 3.0

Уроки по иммитации развевающейся ткани или флага достаточно часто встречаются в Интернете. Но попыток сделать это с помощью модуля

Cloth

нам еще не встречалось. Поэтому мы хотели бы поделиться своим опытом, полученным при изучении сцен из примеров к модулю

Cloth

еще в

Maya 2.0

. Хотя сцена с развевающимся флагом входила в комплект поставки

Maya

, описания того как сделать эту сцену нам не встречалось.

Итак, приступим.

Шаг 1

.

Создайте новую сцену, а лучше всего проект под любым названием. Например:

flag

.

Убедитесь, что модуль

Cloth

у Вас подгружен. Для этого откройте окно

Window > Settings/Preferences > Plug-In Manager

и проверьте включен ли

plug-in CpClothPlugin.mll

. Если нет, то включите его.

Шаг 2.

Создайте

Polygonal Plane

с параметрами:

Width - 7

Height - 14

Subdiv.Width - 5

Subdiv.Height - 10

Переместите его на 7 единиц по оси Y и на 9 единиц по оси Z, также поверните на –90 градусов по оси X. Переименуйте в "

windSourse

".

Создайте

Polygonal Cylinder

с параметрами:

Radius - 0.1

Height - 12

Остальные параметры по умолчанию. Также переместите его на 6 единиц по оси Y и на 5 единиц по оси Z. Переименуйте во "

flagshtok

".

Создайте 4 кривые с

Curve Degree - 1 Linear

, так чтобы они пересекались в конечных и начальных точках (согласно требованиям модуля

Cloth

) и описывали прямоугольник с вершинами в точках:

1 вершина -

(0, 11, 4.5)

2 вершина -

(0, 11, -9)

3 вершина -

(0, 5, -9)

4 вершина -

(0, 5, 4.5)

Сгруппируйте эти кривые в группу "

curves_for_Flag

" и временно сделайте эту группу невидимой.

Шаг 3.

Выделите план

windSourse

и сделайте его источником частиц. Для этого, выделив

windSourse

, перейдите в Меню

Dynamics

, выберите

Particles > Emit from Object

. После этого у




windSourse


появится потомок



emitter1


. Выберите его и в



Channel Box


измените следующие параметры:



Emitter Type - Surface

Rate - 2

Scale Rate by Object - on

Speed - 0.05


Переименуйте



emitter1


в



emitterWind


.

Проиграйте анимацию и убедитесь что частицы двигаются в отрицательном направлении оси Z. Выделите созданные при этом частицы



particle1


переименуйте в "



particleWind


", вызовите



Attribute Editor


, откройте закладку



Per Particle (Array) Attributes


и, если отсутствует раздел



lifespanPP


, добавьте этот атрибут. Для этого выполните команду меню



Attributes > Add Atributes


, в появившемся окне выберите закладку



Particle


, найдите параметр



lifespanPP


и нажмите кнопку



Add


. Закройте окно



Add Attributes


.

В появившемся поле



lifespanPP


нажмите Правую Кнопку Мыши (ПрКМ) и удерживая ее в контекстном меню выберите



Creation Expression


. В появившемся окне



Expression Editor


в поле



Expression


наберите следующее:



particleWindShape.lifespanPP = 5;


и нажмите



Create


.

Затем переключите закладку



Particle


на



Runtime


и введите следующее:



vector $pos = particleWindShape.position;

if ( ($pos.y > 14) || ($pos.y < 3) || ($pos.z < -5) )

     {

     particleWindShape.lifespanPP = 0;

     }


нажмите кнопку



Create


.

Данный



Expression


будет уничтожать частицы если их позиция больше 14 единиц по оси Y, меньше 3 единиц по оси Y и меньше чем на –5 единиц по оси Z. В



Channel Box


измените параметр



Lifespan Mode


на



lifespanPP only


.

Проиграйте анимацию и убедитесь что частици испускаются из



windSourse


не ниже 3 единиц и не выше 14 удиниц по оси Y и двигаются в отрицательном направлении оси Z.



Шаг 4.


При выделенных частицах



particleWind


создайте два поля:



airField1

turbulenceField1


(Меню



Dynamics


, закладка



Fields


, разделы



Air


и





Turbulence


, а выделение частиц необходимо для автоматической привязки воздействия этих полей на частицы



particleWind


).

Выделите



airField1


и измените следующие параметры в



Channel Box


:





Magnitude - 7

Attenuation - 1

Max Distance - 20

Apply Per Vertex - off

Use Max Distance - on

Direction X - 0

Direction Y - 0

Direction Z - -1


Переименуйте



airField1


в



airField_Particles


.

Выделите



turbulenceField1


и измените следующие параметры в



Channel Box


:





Magnitude - 11

Attenuation - 1

Max Distance - -1

Apply Per Vertex - off

Use Max Distance - off


Щелкните в



Channel Box


на поле атрибута



Phaze Z


ПрКм и во всплывающем меню выберите



Expressions


, в появивщемся окне



Expression Editor


наберите следующее:



turbulenceField1.phaseZ = time;


Нажмите кнопку



Create


и закройте окно



Expression Editor


. Переименуйте



turbulenceField1


в



turbField_Particles


. Проиграйте анимацию, частицы



particleWind


должны двигаться хаотично, ускоряться и исчезать при достижении по оси Z координаты –5.



Шаг 5.


Щелкните Левой Кнопкой Мыши (ЛКМ) в любом окне видов для отмены выделения. Создайте непривязанное к чему-либо



radialField (Dynamics > Fields > Radial)


. Измените в



Channel Box


следующие параметры:





Magnitude - 250

Attenuation - 0.33

Max Distance - 3.3

Apply Per Vertex - on

Use Max Distance - on


Переименуйте



radialField1


в "



radialField_Wind


". Теперь необходимо выполнить несколько связей. Мы предпочитаем использовать для этого



Hypershade


и его



Work Area


. Но можно настроить связи и не прибегая к его помощи.

Во-первых вызовите окно



Connection Editor (Window > General Editors > Connection Editor)


.

Во-вторых вызовите окно



Outliner (Window > Outliner)


и в меню



Display


включите



Shapes


. В поле



Outliner


найдите и выделите



particleWindShape


. Перейдите в окно



Connection Editor


и нажмите кнопку





Reload Left


. Затем в



Outliner


выберите



radialField_Wind


, перейдите опять в окно



Connection Editor


и нажмите кнопку



Reload Right


. В меню



Left Side Filters


окна



Connection Editor


включите



Show Hidden


и затем аналогично в меню



Right Side Filters


окна



Connection Editor


включите



Show Hidden


. Теперь вы готовы для установки связей. В левом поле



Connection Editor


найдите и выделите параметр



Centroid


, затем найдите и выделите в правом окне параметр



Translate


. Таким образом Вы установили связь между параметрами:



particleWindShape.centroid > radialFieldWind.translate


Аналогично создайте связи:



particleWindShape.cachedWorldCentroid >

     > radialFieldWind.ownerCentroid

particleWindShape.cachedWorldPosition >

     > radialFieldWind.ownerPosData

particleWindShape.cachedWorldVelocity >

     > radialFieldWind.ownerVelData

particleWindShape.auxiliariesOwned >

     > radialFieldWind.owner




Проиграйте анимацию. Поcле первого кадра иконка



radialFieldWind


должна находиться в центре частиц



particleWind


и совершать небольшое хаотическое движение. Теперь можете отменить режим



Shapes


в



Outliner


.

Выделите



windSourse, particleWind, radialFieldWind, airField_Particles, turbField_Particles


и сгруппируйте их в группу "



wind_Group


" (это только для удобства работу, можно не выполнять этого).



Шаг 6.


В



Outliner


выделите группу "



curves_for_Flag


" и сделайте ее видимой. Затем выделите все 4 кривые в группе "



curves_for_Flag


", перейдиле в меню



Cloth


и создайте



Garment (Cloth > Create Garment)


. При этом будет автоматически создана и панель



panel1


. Выделите



panel1


и переименуйте на "



panel_Flag


". Теперь



Channel Box


в разделе



INPUTS > cpDefaultProperty


измените следующие параметры:







U Bend Resistance - 3.3

V Bend Resistance - 3.3

U Bend Rate - 0

V Bend Rate - 0

U Stretch Resistance - 210

V Stretch Resistance - 210

Shear Resistance - 99

U Scale - 1

V Scale - 1

Density - 0.007

Thickness - 0.2

Thickness Forse - 3

Cloth Friction - 0.1

Cloth Damping - 0.01

Air Damping - 0.05

Static Friction - 0.6

Dynamic Friction - 0.1


Затем в разделе



OUTPUTS > cpStitcher


измените параметр:



Base Resolution - 150


В разделе



OUTPUTS > cpSolver


измените параметры:



Start Frame - 0

Frame Samples - 1

Relax Frame Length - 0




Шаг 7.


Выделите созданный модулем меш



cloth1


. В любом окне видов нажмите ПрКМ и удерживая ее из



Pop-up


меню выберите



Vertex


, выделите 2 верхние и 2 нижние, ближайшие к



flagshtok


вершины, затем, удерживая клавишу "



Shift


", выделите сам



flagshtok


и выберите



Cloth > Constrains > Transform


. Данная операция создаст эффект привязки флага к флагштоку. Проиграйте анимацию. Вы должны видеть как



cloth1


спадает вниз и повисает на флагштоке.



Аналогично при выбранном



cloth1


из



Pop-up


меню выберите



Vertex


, выделите все вершины и, удерживая "



Shift


", выделите



radialField_Wind


и выберите



Cloth > Constrains > Field


. Данная операция создаст воздействие поля



radialField_Wind


на



cloth1


.

Выберите частицы



particleWind


, удерживая "



Shift


" выделите



Cloth1


и выполните



Dynamics > Particles > Make Collide


. Выделите



particleWind


и в



Channel Box


в закладке



INPUTS > geoConnector2


измените параметры:



Tessellation Factor - 200

Resilience - 0.5

Friction - 0.1


Переименуйте



cloth1


на "



flag


".



Шаг 8.


Выберите



Cloth > Simulation > Delete Cache


и проиграйте анимацию. В зависимости от ресурсов Вашей машины расчет



Cache


может занять от 30 секунд до 3 минут для 300 кадров анимации.



Шаг 9.




При проигрывании Вы можете заметить, что флаг колышется достаточно нереально. Решить эту проблему можно варьируя параметры



panel_Flag


в



Channel Box > OUTPUTS > cpSolver1


. Наиболее действенными будут изменения параметров



Solver Scale


в пределах



1-50


и



Gravity1


в пределах



-100


-



-900


. На одним из наших компьютеров удачными оказались значения:



Time Step Size - 0.02

Solver Scale - 21

Gravity1 -  -330


А при проверке данного урока на второй машине подошли значения



Solver Scale - 17

Gravity1 -  -100




Послесловие.


Наиболее трудоемкой окажется именно удачная настройка этих двух параметров. Так же попробуйте изменить длину и ширину флага.

А теперь запаситесь терпением и вперед.


IndexBaseMaya


Основы Maya

Часть 1. Основные положения

Часть 2. Использование Shelf и переименование объектов

Часть 3. Позиционирование объектов



Использование Channel Box и Outliner


В этой части урока Вы создадите еще один NURBS примитив и ознакомитесь с Channel Box и Outliner.

Добавляем основание дверной ручки

Выберите

Create>NURBS Primitives>Cilinder

.

Переименуйте объект - замените имя по умолчанию,

nurbsCilinder1

на

Base

.

В

Channel Box

(панель в правой части рабочего пространства), наберите в поле Rotate X (вращать относительно оси X) значение

90

и нажмите

Enter

. Выполнив эту процедуру, мы правильно сориентируем основание ручки по отношению к самой ручке.

Только что Вы изменили один из атрибутов объекта. Когда Вы занимаетесь моделированием объекта, анимируете, выполняете рендеринг, или производите над объектом какие-либо манипуляции, Вы изменяете значения атрибутов объекта. 

Channel Box отображает только ключевые атрибуты, для которых Вы можете установить ключевые кадры анимации. Иногда эти ключевые атрибуты называются каналами (channels).

На виде сбоку уменьшите масштаб основания ручки, используя для этого центральный указатель, до тех пор, пока размеры цилиндра не достигнут пропорций основания дверной ручки по отношению к ручке. 

Переместите Основание ручки вправо, совместив границу поверхности сферы с краем цилиндра.

Чтобы полностью закончить с дверной ручкой, выберите

Window>Outliner

, для того, чтобы установить между сферой и цилиндром отношение предок-потомок (parent-children). 

Установление таких отношений (parenting) означает, что один объект (предок) управляет атрибутами нескольких объектов (потомков).

Outliner

показывает все объекты сцены и визуализирует отношения между ними. Используйте Outliner преимущественно для упорядочивания сцены, и для того, чтобы выделить объекты, которые трудно выделить на виде.

В Outliner, придерживая среднюю клавишу мыши, перетащите основание к ручке. Теперь ручка стала предком для основания, и с этого момента Вы можете манипулировать обоими объектами как одним.

СОВЕТ

Для приобретения некоторых навыков, попробуйте выбирать в Outliner объекты, которые соприкасаются, щелкая мышкой и удерживая Shift, которые не соприкасаются, щелкая мышкой и удерживая Ctrl.



Использование инструментов трансформации


Далее Вы познакомитесь с инструментами преобразования Maya, а также как можно наиболее эффективно трансформировать объект разными способами.

Масштабирование куба

Щелкните на иконке инструмента Scale (масштаб) на панели наиболее часто используемых инструментов в левой верхней части главного окна Maya. 

Название инструмента и короткая подсказка показываются в строке помощи (

Help Line

) внизу главного окна Maya. Это - одна из уже ставших стандартом традиций Maya.

СОВЕТ

Для того, чтобы прочесть информацию об инструменте, просто подведите к иконке мышь, не нажимая на ее кнопки.

На виде спереди щелкните на верхнем квадрате на рукоятке инструмента

Scale

. Если рукоятка не отображается, щелкните на кубе.

Инструменты трансформации Maya имеют указатели для манипулирования, соответствующие осям XYZ. С помощью этих указателей Вы можете управлять направлением трансформации. Щелкнув на указатель определенной оси, Вы запрещаете трансформацию в этом направлении.

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

Плоскость пола - это плоскость, образованная осями X и Z (Считается, что ось Y - вертикальная). На виде спереди эта плоскость отображается в виде темной горизонтальной линии, а на виде в перспективе - в виде сетки.

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

На виде сверху щелкните на Нижнем указателе, и перетащите ее до положения, когда толщина куба не станет такой, как у двери (естественно, учитывая пропорции). Посмотрите на результат в окне вида в перспективе.

Щелкните на иконке инструмента

Move

. Указатели манипулирования изменяются в соответствии с выбранным в данный момент инструментом. Если Вы не знаете, какой инструмент выбран в данный момент, Вы можете догадаться об этом, просто посмотрев на указатели - они своим видом могут намекнуть о возможных с помощью их действиях.

На виде спереди перетащите куб за верхнюю часть до тех пор, пока низ не "станет" на плоскость пола. Теперь у нас уже есть заготовка двери.



Использование примитивов Maya и инструментов камеры


Maya предоставляет пользователю примитивы NURBS (Non Uniform Rational B-Splines) и полигональные примитивы. Эти примитивные формы - кубы, сферы, цилиндры, торы - могут быть использованы в качестве "заготовок", которые потом с помощью инструментов Maya могут приобрести необходимую форму. Дверь, которую Вы будете строить в этом туториале, Вы начнете строить из самого примитивного объекта - куба.

Создайте дверь из полигонального примитива - куба.

Выберите

Create>Polygon Primitives>Cube

.

Вы увидите, что на экране появится куб. Он появится в окне 3D сцены. Это окно часто также называют рабочим пространством (workspace), панелью (panel), и иногда - вид камеры (camera view).

Укрупняем

план (Dolly in): придерживая клавишу Alt, перемещаем мышь вправо, нажимая при этом левую (LMB) и среднюю (MMB) клавиши мыши. С помощью этой процедуры (далее - доллинг )мы перемещаем виртуальную камеру в виртуальном пространстве ближе к объекту, то есть укрупняем план.

Перемещаем

вид вниз (Track down): для этого, придерживая клавишу Alt, перемещаем мышь вниз, нажимая при этом среднюю клавишу мыши. С помощью трекинга мы перемещаем вид сцены вниз, вверх, влево, вправо. Сейчас мы переместили вид вниз, чтобы, когда мы закончим работать с дверью, ее было хорошо видно.

Вращаем

камеру (Tumble down): для этого, придерживая клавишу Alt, перемещаем мышь вверх, нажимая при этом левую клавишу мыши. Эта процедура вращает камеру вокруг центра интереса. Ведь намного проще работать с кубом, когда камера находится примерно на одном с ним уровне, а не гораздо выше.

Выберите

Panels>Layouts>Four

из полосы меню на виде.

Вы можете разделить рабочее пространство на несколько панелей видов. Эти виды - в перспективе, сбоку, спереди, сверху - являются общими слоями. (виды сверху, сбоку, и спереди называются ортографическими видами)

Запомните:

Доллинг и трекинг можно применять ко всем видам, а

Tumble

- только к виду в перспективе.

Эти и другие инструменты камеры доступны также из меню

View>Camera Tools

на каждом виде.

Чтобы раскрыть один вид на все рабочее пространство, щелкните на нем мышкой, потом отпустите мышь и нажмите пробел. Чтобы вернуть четырехоконное представление, снова нажмите на пробел.



Использование редактора для выбора узлов и подгонки атрибутов


В этой части урока, Вы познакомитесь с редактором Hypergraph, редактором атрибутов (Attribute editor), и с концепцией узлов (nodes).

Изучаем сцену.

На любой панели видов, выберите

Panels>Panel>Hypergraph

.

Hypergraph - это редактор сцен. Он немного похож на Outliner, только более мощный. Как и все редакторы, он может открываться в отдельном окне (из меню window), но чаще всего более удобно открывать его на панели вида.

Укрупняем план (Dolly in) (перемещаем мышь, придерживая Alt и левую и среднюю клавиши) и перемещаем редактор (Track) до тех пор, пока Hypergraph не станет похож на следующую картинку.

Как и Outliner, Hypergraph предоставляет иерархию объектов сцены. В нашей сцене Вы можете заметить и еще кое что - пунктирную линию между объектами Knob1 и Base. Это значит, что Knob1 - ссылочная копия. 

Чтобы увидеть отношения между объектами и атрибутами, щелкните на группе Doorgroup, и выберите

Window>Attribute Editor


Attribute Editor выводит на экран все атрибуты, которые относятся к выбранному объекту или к группе объектов. Пользуйтесь этим редактором для того, чтобы проверить текущее состояние атрибутов, или дя того, чтобы изменить их (особенно редактор полезен при работе с атрибутами, которые не отображаются в Channel Box(например, атрибут Shear, который наклоняет объект )).

В Hypergraph щелкните на прямоугольнике, соответствующем объекту Knob, чтобы выделить объект. Сразу же в Attribute Editor отобразятся атрибуты объекта Knob. 

Атрибуты объекта Knob сгруппированы в несколько групп, каждая из которых находится на отдельной вкладке. Каждая вкладка, и, соответственно, группа, представляет собой узел (node), то есть несколько связанных между собой атрибутов.

Первая вкладка, Knob, содержит атрибуты, описывающие трансформацию объекта Knob. Это - узел трансформации (transform node). 

В Hypergraph щелкните по иконке

Up and Downstream Connections

- Maya покажет Вам отношения между узлами объекта Knob.





Hypergraph выводит на экран граф зависимостей (dependency graph). На нем показаны потоки зависимостей данных между разными нодами. Например, стрелочка указывает от makeNurbSphere к KnobShape. Это значит, что информация от узла makeNurbSphere, содержащего историю построения, которая используется при создании сферы, к узлу KnobShape, в котором содержится окончательное математическое описание формы дверной ручки. 

Maya постоянно анализирует граф зависимостей, учитывая мельчайшие изменения, сделанные Вами в сцене, вплоть до финального рендеринга. Используя Hypergraph, программисты, да и опытные пользователи тоже, могут исследовать граф и вносить в него изменения, для более прямого управления. Они могут исследовать связи между шейдерами, материалами, текстурами и светом, или соединять узлы, например, такие, как атрибуты вращения двух орбитальных сфер.

В нашей простой сцене не так уж много связей. Когда Вы больше узнаете о рендеринге и анимации, в особенности, анимации персонажей, Вы, несомненно, увидите гораздо более сложные графы.


Использование Shelf и переименование объектов


Эта часть урока посвящена использованию NURBS примитива сферы и инструмента масштабирования. Сейчас мы создадим дверную ручку.

Создание заготовки дверной ручки

Чтобы создать NURBS примитив сферы, щелкните на иконке сферы в Shelf (на "полке").

Maya

Shelf

(полка) предназначена для обеспечения быстрого доступа к большому количеству операций Maya. Вы можете изменять содержимое полки, группировать наиболее часто используемые операции в группы, такие, например, как группы, связанные с моделированием, анимированием, или рендерингом.

Сфера, которую мы создали, создана с помощью системы моделирования

NURBS

. Вы также можете создать в Maya другие поверхности, полигоны (например, состоящий из полигонов куб, послуживший базой для создания нашей двери) и subdivision поверхности. Каждая из поверхностей обладает своими свойствами и служит для определенных целей, о чем Вы узнаете немного позже. 

На вертикальной панели, расположенной в правой части рабочего пространства, и называемой

Channel Box

, появится имя объекта -

nurbSphere1

. Щелкните на этой надписи и введите новое название -

knob

(ручка).

Мы рекомендуем Вам давать объектам соответствующие имена, чтобы в последствии не путаться. Далее мы более подробно рассмотрим Channel Box.

Щелкните на кубе, чтобы выбрать его, и переименуйте его в

Door


На виде сбоку выберите сферу (knob) и выберите

View>Frame Selection

, чтобы быстро отмасштабировать ваше изображение.

Возле этого пункта меню можно видеть букву

f

- она обозначает клавишу на клавиатуре, нажав на которую, Вы получите такой же результат, как и при выборе View>Frame Selection. Подобные клавиши (или их сочетания) называются горячими клавишами, или hotkey.

Щелкните на инструменте

Scale

и уменьшите размер сферы вдоль оси Z до примерно половины первоначальной ширины. 

Таким образом мы придаем объекту сферы слегка сплюснутую форму - похожую на форму дверной ручки. (Остальные размеры оставте такими же, позже мы смасштабируем всю дверную ручку в целом)



Итак, начнем


Выберите

Start>Programs>Maya 3.0 Evaluation>Maya

.

Внимательно ознакомьтесь с верхней левой частью главного окна. Там расположено все то, чем Вам придется наиболее часто пользоваться.

common menus (начиная с File и заканчивая Window) в самой верхней части окна содержат пункты, которые являются общими для всех операций в Maya.

Каждая из настроек меню (menu sets) соответствует одному из программных модулей Maya - Animation, Modeling, Dynamix или Rendering. Вы можете переключаться между различными menu sets просто выбирая нужную из выпадающего меню. Меню, соответствующие определенной menu set, отображаются около общего меню.

Наиболее часто используемые инструменты (Common tools, или, как их иногда называют, Mini Bar) расположены просто под menu sets. Вы будете использовать эти инструменты для того, что выделять, перемещать, вращать и масштабировать объекты.

Выберите

Window>Settings/Preferences> Preferences

.

Maya предоставляет для Вашего удобства огромное количество настраиваемых параметров, с помощью которых Вы можете "подогнать" под свои нужды каждый сеанс работы с Maya. Например, Вам может понадобиться отменить несколько последних действий. Вы можете определить, сколько таких отмен будет запоминать Maya (это мы сделаем в нашем туториале, но чуть позже), и этот параметр будет использоваться в последствии каждый раз, когда Вы запустите Maya.

В списке категорий слева, выберите

Undo

(внизу списка) и установите для параметра

Queue

значение

Infinite

(бесконечное количество). Это значит, что Вы сможете вернуться назад на неограниченное количество шагов. Используйте для этого пункт меню

Edit>Undo

.



List


Создание Фикусового Листа

У меня есть множество различных изображений, демонстрирующих, куда я трачу свое свободное время, которого у меня не так уж и много. Одна из этих работ - лист фикуса. Для его создания я пользовался Maya 3.0.

Законченный Готовый Лист

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

Предварительный просмотр сцены: каркас

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

предварительный просмотр текстурированного изображения.

Предварительный просмотр с текстурами

Фактически, я отсканировал обыкновенный лист фикуса, и потом обрабатывал это изображение. Узор шероховатости, зеркальность и карты подсветки были сделаны с помощью Adobe Photoshop.

Для освещения сцены я использовал три источника света: точечный источник (прожектор), с наложенным изображением деревьев для получения большей глубины теней, глобальное освещение и отраженный свет.



Matrix


Эффект замедленного времени

Данный урок для начинающих и рассказывает о простом и эффективном способе создания в

Maya4

иллюзии замедленного времени так красиво обыгранном в нашумевшем фильме "MATRIX" и использованному в не менее популярной игре "MAX PAIN". Все что здесь будет рассказано можно применить и в 3D Sudio Max, проверено.

Для примера я взял все самые "больные" эффекты которые создают наибольшее количество "трудностей".

Сценарий: кирпичная стена разбивается под воздействием частиц. В определенный момент действия, "время" резко замедляется и камера делает оборот вокруг объектов.

1

. Создадим плоскость и кирпичную стену. Как создать куб и отмаcштабировать его под кирпич я надеюсь умеют все. Далее выделяем все кирпичи и делаем их активными твердыми телами, т.е.

Soft/Rigid Bodies -> Create Active Rigid Bodies

. Не снимая выделения сделайте

Fields -> Gravity

и в

channels

в разделе

rigidBody#

поставьте массу (mass)

5

. Плоскость под кирпичами делаем

Soft/Rigid Bodies -> Create Passive Rigid Bodies

. Теперь кирпичи не только взаимодействуют друг с другом, но и с плоскостью/полом.

2

. Создадим emitter который будет испускать частицы,

Particles -> Create Emitter

. Нажмите

Shift + a

, в

Emitter# -> Basic Emitter Attributes -> Emitter Type

поставьте

Directional

, это позволит нам задать направление частиц. В моем случае я поставил

Distance/Direction Attributes -> Direction X ->

-1

,

Spread

->

0.08

. Выделите частицы (не emitter), все кирпичи и в

Paticles

нажмите

Make Collide

. Теперь кирпичи взаимодействуют с частицами, но что бы частицы толкали кирпичи надо выделить их всех и в

channel -> paticleCollision

написать

on

Проиграйте анимацию. Кирпичи чудно рассыпаются под воздействием частиц. 

Наступило время создать эффект замедленного времени. Так как динамика частиц, как впрочем и твердых тел весьма нестабильна и зависит от погоды на улице, то имеет смысл перевести всю анимацию в ключи.
Это позволит нам экономить ресурсы машины и быть абсолютно уверенными в том, что кирпичи упадут там где они упали 15 секунд назад.



3


. Выделите все кирпичи и частицы с emittor-ом.

Edit -> Keys -> Bake Simulation -> Time Range (Start/End)

,

Start Time



0


,

End Time



325


. Далее смело удаляем у всех кирпичей и плоскости/пола

rigidBody#

, т.к. кирпичи имеют ключи анимации и не зависят теперь от гравитации, частиц и друг от друга. Если сейчас проиграть анимацию, то отличий от прошлого раза вы не обнаружите. Выделите любой кирпич и сделаем из него

Character -> Create Character Set

, назовем его

brick


. Выделите следующий кирпич и в

channel

выделите

translate, rotate

по всем осям (т.е. XYZ) и нажмите

Add to Character Set

. Проделайте с остальными тоже самое. Выделите частицы и emitter, добавьте их в character так же. Добавлен ли объект в character можно ясно видеть в

INPUTS

.



4


. Вот и все. Осталось создать clip на основе character который был создан.

Animate -> Create Clip -> Start and End


-> от

0


до

325


. В

Trax Editor

полученный clip делим в приглянувшемся месте пополам, а затем второй клип режем в месте где эффект матрицы должен закончиться. Примерно так это выглядит.



Теперь

clipEND

оттаскиваем дальше, примерно на

200


кадр, а средний

clipMATRIX

растягиваем до начала

clipEND

. Примерно так это выглядит.



Проиграйте анимацию. В кадре #70 все резко замедляется, а в кадре #200 все резко начинает двигаться дальше. Что бы усилить эффект я советую сделать стартовые и конечные клипы значительно быстрее чем клип матрицы. Добавьте камеру по вкусу. 

Ну и конечно экспериментируйте. Например прицепите emitter к "пуле", поработайте над материалом для частиц, их скоростью, плотностью и т.д.


MayaLive


Maya Live! Maya Love…

Вы никогда не просили у своей любимой сделать Вам «матчмувинг»? А чего это Вы так взволновались? Уже пробовали? Нет? Это приятно, особенно, если вашу любовь звать Maya Unlimited! И если Вы любите по-настоящему, Она Вам никогда не откажет.

Сформулируем задачу. Есть отснятый материал – поле подсолнухов, снято с крана с ручным управлением. В движении камеры есть панорама, подъем и отъезд. Необходимо «вживить» в поле бутыль подсолнечного масла (кто бы мог подумать?). Неравномерность в угловых и линейных

скоростях перемещения камеры не позволяют произвести монтаж вручную. Поскольку бутыль моделилась в Maya, решено и трекинг камеры сделать в ее же Майской среде, тем более, что денег на Boujou не дали.

Для вдохновения и зависти – вот такое молдавское поле под городом Бельцы. Почти Кустурица! Утро, прохлада, боже, а ведь уже так скоро там, чуть левее, уже после съемок, несмотря на жару…

О чем это я, да! Нажимаем на любимую иконку, запускаем Майку, подгружаем Maya Live, делаем установки в setup, выбираем опорные точки, производим их трекинг, а по ним и трекинг виртуальной камеры. Все! Быстро и сумбурно… В любви главное – терпение, открываем клавишей F1 «камасутру» и разбираемся с движениями.

Нажмите Window > Settings/Preferences > Plug-in Manager.

В меню Plug-in Manager проставьте галочку напротив mayaLive.mll.

Если желате, чтобы модуль подгружался автоматически при вызове Maya отметьте галочкой и

auto load

.

Закройте окно Plug-in Manager.

Выберите набор меню Live.

Выберите Scene > New Matchmove.

Вот и Live интерфейс появился. Можно покрутить Image Plane с изображением Лого в окне перспективного вида. Внизу слева можно увидеть поле с именами управляющих панелей – Setup, Track, Solve, Fine Tuning.

Панель SETUP. Тут определяются путь к секвенции видео (заготовьте предварительно, например, из файла Field.avi в каталоге MM.files, увеличив Image Size в 2 раза по обеим координатам), выбираются предустановки Filmback, или указываются Film Aperture, Pixel Ratio и т.д, заодно можно и скопировать установки в Render Globals.
После выполнения нажимается загадочная кнопочка Ready  To Track, после чего Вам сообщается, мол, сейчас Вы готовы к трекингу, и попробуйте только не Confirm. Соглашайтесь – капризы есть у каждой любимой, но, мне кажется, кнопочку эту можно и проигнорировать.



Переходим к панели TRACK. Оп! Окна другие. Кнопочки тоже. Погладьте и коснитесь указателем выпуклости с надписью CREATE, легко нажмите – тут же появляется новая эроге… опорная точка, дайте ей хорошее имя в графе Name и запомните ее местоположение.



Нажмите зелененькую кнопочку под клавишей Delete и переместите точку в нужное место. Лучше всего подходят для трекинга точки, Pattern которых выделяется на общем фоне и присутствие по времени в секвенции максимально. Многократно просмотрите фрагмент и выделите такие точки. В данной ситуации это могут быть фрагменты центра подсолнухов переднего плана, контрастные кончики лепестков на среднем плане и отдельно стоящие деревья на горизонте. Очевидно, что чем больше точек Вы выберете, тем точнее будет движение виртуальной камеры. Трекинг можно проводить с любого кадра вперед или назад, как угодно.



В окне pointCenteredCamera можно уточнить область Pattern (внутренний квадрат) и ограничить поле Search. Теперь нужно указать текущий кадр, направление Трекинга и нажать на Start Track. Maya немного подумает и развлечет Вас клипиком, явно хвастаясь. Если что-то вдруг не понравилось, или она, не дай бог остановилась (что вряд ли), можно помочь, встав в нужный кадр и сдвинув опорную точку, а потом продолжить автоматический трекинг. Аналогично поступите с другими понравившимися точечками. Например, можно загрузить уже готовый набор точек All.txt из каталога TrackPoints.



Кстати говоря набор протреченных точек можно всегда записать, используя обратную операцию Track\Export.

Панель SOLVE. Понятно, что это и есть решатель камеры.



Тут создаются локаторы для протреченных точек, расчитывается движение камеры относительно локаторов, или наоборот, определяются установки и связи камеры.


Если Вы предусмотрительно во время съемок снимете и запишете взаимные расстояния между опорными точками, положение точек относительно камеры, текущее фокусное расстояние камеры, то можно внести всю эту информацию и получить четкую привязку системы координат Maya к натуре в выбранных при измерении единицах. Например, выбрав в Survey Constraint Type Distance можно указать расстояние между двумя выбранными точками.



Опять же, чем больше информации, тем точнее расчет, и тем легче интегрировать, например, компьютерный персонаж. А что делать, когда этой информации нет, оператор заболел, бумажка потерялась? Да, ничего – нажимайте кнопку Start, все равно сработает. Сработало! Есть камера! Запустите Play, оцените движение камеры. При такой скудной информации, при том, что большинство опорных точек колыхались вместе с подсолнухами на ветерке - такой приличный результат! Посмотрите тестовый файл MatchMoving.avi.







Теперь стройте, или импортируйте графику, обсчитывайте и признавайтесь в очередной раз:

-         Я люблю тебя, Майя!


MayaMorfing


Сегментный морфинг в анимации физиономии

Пил с вашего лица, но только водку…

Эпиграф.

По мере производства рекламного ролика возникла задача - проанимировать физиономию утенка, поюзав возможности сегментного морфинга для артикуляции.

Строится модель утенка. Исходные Loft объекты режутся по изопармам на патчи, патчи подгоняются, возможно даже неоднократным сшиванием-резкой по швам для точности. Поскольку клюв обрамляет просто «дыру» в голове и во избежание «зашивания» рта, применяется не Global Stitch, а сшивание по ребрам Stitch Edges Tool с включенными галочками Position и Tangent и сшивание по точкам Stitch Surface Point. Ни для кого, конечно, не секрет, что при сшивании ТОЧЕК нужно выделить точки ВСЕХ сходящихся поверхностей, невзирая на то, что они (точки) могут совпадать пространственно, так что внимательнее к «углам». Все патчи (см. сцену Head.mb) сгруппированы в группу HEAD\HL (левая сторона) + HR (правая сторона).

По окончании работ над моделью возникает вопрос – какой тип морфинга наиболее приемлем. Богатая мимика утенку ни к чему, произносимая фраза коротка, и количество фонем невелико. Использование взвешенного морфинга вполне логично – модифицируем «енту харю» в соответствие с каждой фонемой, получаем необходимый ряд целей, завязываем их в цепочку с помощью Blend Shape и получаем возможность ручного (с помощью ползунков Window\Animation Editors\Blend Shape) или программного (с помощью скрипта) управления фонемами артикуляции. Можно даже использовать смешивание фонем, соответственно добавляя или убирая от 0 до 1 степень приближения морфируемого объекта к определенной фонеме. Неплохо!

Но… Хочется богатства! В том числе и богатства возможностей. Чем утешить этот зуд? Что насчет сегментного морфинга? Преимущество его перед взвешенным очевидно - увеличение количества морфинг-целей засчет смешивания морфируемых вариантов сегментов поверхности. Недостаток – увеличение объема работ при написании и отладке скрипта анимации, ведь описывается каждый морфируемый сегмент.
Прикинем, какими могут быть эти сегменты в рожице утенка. Допустим так: 1 – верхняя часть клюва, или верхняя губа, 2 – нижняя часть клюва, или нижняя губа, 3 – щеки. Таким образом, верхняя губа может проговаривать звук «Х», нижняя губа – звук «У», а щеки при этом улыбаться. При таком раскладе просто идеально подходит деформатор Wire:

- контур верхней губы – управляющая кривая деформации верхней губы WireUp и фиксирующая кривая для нижней губы WireDn;

- контур нижней губы – управляющая кривая деформации нижней губы WireDn и фиксирующая кривая для верхней губы WireUp;

- контур щек – фиксирующая кривая для обеих управляющих кривых WireHold.

Как эти кривые сделать? Выделяем в патче нужную изопарму и применяем Modeling\Edit Curves\Duplicate Surface Curves, получая отрезок нужной кривой.



Переходим к следующему патчу –  еще кусок кривой, и так далее. Полученные отрезки кривых, конечно же будут пересекаться. Применяем Modeling\Edit Curves\Cut Curve, лишние кусочки удаляем, а оставшиеся объединяем в одну кривую командой Modeling\Edit Curves\Attach Curves. Удаляем историю построения Edit\Delete by Type\History  и переименовываем полученный объект в WireHold. Подобным образом получаем три кривые и для удобства группируем их в CurvesMorph\WireUp+ WireDn+ WireHold.



Вернемся к деформатору Wire. Выбираем Animation\Deform\Wire Tool (в Wire Settings устанавливаем галочку Holders) и после появления Wire указателя в виде перекрестья с точкой действуем последовательно  (следите за строкой сообщений):

1. На запрос Select shape(s) to deform выделяем патчи верхней части головы и клюва (в Outliner HeadAll\HEAD\HL\HTAL+ HTRL+ KTL+ HTAR+ HTRR+ KTR) и нажимаем ввод;

2. На запрос Select Wire curve выделяем управляющую кривую деформации верхней губы HeadAll\CurvesMorph\WireUp и нажимаем ввод;

3. На запрос Select holder shape выделяем управляющую кривую деформации нижней губы HeadAll\CurvesMorph\WireDn, но (!) в качестве фиксатора, чтобы модификации кривой верхней губы не тянула за собой и деформацию нижней части клюва (ограничение влияния деформации).


Press Enter;

4. На следующий запрос Select Wire curve

снова


выделяем ту же управляющую кривую деформации верхней губы (HeadAll\CurvesMorph\WireUp) и нажимаем ввод. Press Enter;

5. А на запрос Select holder shape уже выделяем в качестве фиксатора контур щек WireHold (ограничиваем влияние деформации областью щек). Press Enter.

6. Снимаем все выделения и нажимаем последний раз ввод, заканчивая работу с деформатором Wire.

7. Получаем объекты деформации WireUpBaseWire и WireUpBaseWire1. Каркас объекта подцвечивается.

8. Аналогично поступаем с кривой управления нижней губы (патчи HeadAll\HEAD\HL\HBAL+ HBRL+ KBL+ HBAR+ HBRR+ KBR, кривые WireDn и WireHold) и получаем объекты деформации WireDnBaseWire и WireDnBaseWire1.

И вот фишка - морфировать достаточно только управляющие и фиксирующие кривые деформатора WireUp, WireDn и WireHold, а не сам объект. Интересненько получается, скажете Вы -  модифицируются кривые, деформируется и исходный объект, а его ведь нужно оставить нетронутым? Ответ: модифицируйте новые кривые, оставляя исходный объект без деформации. А Вы опять логично спрашиваете, а как же модифицировать кривые, если связи нет и при этом интерактивно не видно деформациии объекта? Для этого:

- создаете копии всех Wire кривых с помощью Control-D или Edit\Duplicate (обзываете их как-нибудь в соответствии с фонемой, например для фонемы «А» верхней губы - WireUpAh) и восстанавливаете OUTPUT как у исходных кривых (я это делал вручную так же как и для исходных кривых, просто не знаю как по другому);

- модифицируете кривые, наблюдая за деформацией объекта до получения формы необходимой фонемы;



- и, наконец, убиваете OUTPUT, влияющий на деформацию объекта, выделив крив-ую (-ые) и выполнив Animation\Deform\Edit Wire\Remove. При этом объект возвращается в свое исходное состояние, что визуально подтверждается, как обычно, по изменению цвета каркаса объекта, а кривые остаются сдеформировынными необходимым образом;

- выполнить процедуру для каждой фонемы или ключевого выражения… морды, или у утят лица ?, короче – его face.



В итоге имеем три последовательности кривых – 1) для верхней губы, 2) для нижней губы, 3) для щек.

Морфинг кривых создаем через их выделение и применение Animation\Deform\Create Blend Shape или набором в окне Script Edit соответствующих MEL директив. Или лучше сразу начнем писать скрипт. Итак:

Производим выделение морфинг-целей для верхней губы

select -r WireUpSm WireUpSh WireUpV WireUpP WireUpEe WireUpEh WireUpOh WireUpAh ;

в последнюю очередь выделяем исходник

select -add WireUp ;

создаем и именуем Blend Shape

blendShape -n "FacePhonemsUp";

Аналогично поступаем для кривых нижней губы и щек.

select -r WireDnSm WireDnSh WireDnV WireDnP WireDnEe WireDnEh WireDnOh WireDnAh ;

select -add WireDn ;

blendShape -n "FacePhonemsDn";

select -r WireHoldSm WireHoldSh WireHoldV WireHoldP WireHoldEe WireHoldEh WireHoldOh WireHoldAh ;

select -add WireHold ;

blendShape -n "FacePhonemsHold";

Запускаем скрипт – Execute. В результате все Blend Shape сформированы.

Условимся, что фонем и ключевых выражений «лица» будет одиннадцать:

0 – улыбка                    1 – Ш, Г, К, Д, Т

2 – В, Ф                         3 – Б, П

4 – И                             5 – Е

6 – О                             7 – А

8 – Ц                             9 – Ы

10 – Ч                            11 – исходное положение.



Немного отвлечемся от скрипта. Для локализации фонем по времени импортируем звук.



Затем, прослушивая и анализируя фонограмму, локализуем фонемы по номеру кадра и фиксируем их на бумаге карандашиком, то есть записываем Тайм-код, номер кадра, имя фонемы и номер фонемы.



Теперь можно вернуться к скрипту.

Пишем процедуру выбора фонемы

global proc prFPH (int $Phonem)

{

определяем передаваемую переменную, отвечающую за номер выбираемой фонемы

   int $Phonem;

принудительно обнуляем ползунки  всех Blend Shape

   setAttr "FacePhonemsUp.WireUpSm" 0;

   setKeyframe FacePhonemsUp.WireUpSm;\

   setAttr "FacePhonemsUp.WireUpSh" 0;

   setKeyframe FacePhonemsUp.WireUpSh;



   setAttr "FacePhonemsHold.WireHoldAh" 0;

   setKeyframe FacePhonemsHold.WireHoldAh;

используем переключатель для определения соответствия фонемы ее номеру

      switch ($Phonem)

      {

      case 0://Sm

         setAttr "FacePhonemsUp.WireUpSm" 1; autoKeyframe;

         setAttr "FacePhonemsDn.WireDnSm" 1; autoKeyframe;

         setAttr "FacePhonemsHold.WireHoldSm" 1; autoKeyframe;

         break;

      case 1://Sh, D, T

         setAttr "FacePhonemsUp.WireUpSh" 1; autoKeyframe;

         setAttr "FacePhonemsDn.WireDnSh" 1; autoKeyframe;

         setAttr "FacePhonemsHold.WireHoldSh" 1; autoKeyframe;

         break;



      case 7://Ah

         setAttr "FacePhonemsUp.WireUpAh" 1; autoKeyframe;



         setAttr "FacePhonemsDn.WireDnAh" 1; autoKeyframe;

         setAttr "FacePhonemsHold.WireHoldAh" 1; autoKeyframe;

         break;

      case 8://Ts

А вот, собственно, и небольшое применение сегментного морфинга. Сначала деформируем первый сегмент – верхнюю губу, пользуясь необходимым значением коэффициентов составляющих Blend Shape. Определить веса коэффициентов можно интерактивно, открыв окно Blend Shape и двигая ползунки до получения необходимого результата.



Так и запишем в скрипт.        

  setAttr "FacePhonemsUp.WireUpSm" 0.197; autoKeyframe;

         setAttr "FacePhonemsUp.WireUpEe" 0.634; autoKeyframe;

         setAttr "FacePhonemsDn.WireDnSm" 1; autoKeyframe;

         setAttr "FacePhonemsDn.WireDnP" 1; autoKeyframe;

         setAttr "FacePhonemsDn.WireDnEe" 1; autoKeyframe;

         setAttr "FacePhonemsHold.WireHoldEe" 1; autoKeyframe;

         setAttr "FacePhonemsHold.WireHoldOh" 0.455; autoKeyframe;

         break;

      case 9://Eeh

         setAttr "FacePhonemsUp.WireUpEh" 1; autoKeyframe;

         setAttr "FacePhonemsDn.WireDnEh" 1; autoKeyframe;

         setAttr "FacePhonemsHold.WireHoldEh" 1; autoKeyframe;

         setAttr "FacePhonemsUp.WireUpSm" 1; autoKeyframe;



         setAttr "FacePhonemsHold.WireHoldSm" 1; autoKeyframe;

         break;

      case 10://Ch

         setAttr "FacePhonemsUp.WireUpSm" 0.204; autoKeyframe;

         setAttr "FacePhonemsUp.WireUpSh" 0.441; autoKeyframe;

         setAttr "FacePhonemsUp.WireUpEh" 0.409; autoKeyframe;

         setAttr "FacePhonemsUp.WireUpOh" 0.140; autoKeyframe;

         setAttr "FacePhonemsDn.WireDnOh" 0.452; autoKeyframe;

         break;

      case 11://

         break;

   }

}

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



//Шо цып цып

currentTime 100 ; prFPH (11) ;

currentTime 102 ; prFPH (1) ;

currentTime 106 ; prFPH (6) ;

currentTime 109 ; prFPH (8) ;

currentTime 111 ; prFPH (9) ;

currentTime 113 ; prFPH (3) ;

currentTime 116 ; prFPH (8) ;

currentTime 118 ; prFPH (9) ;

currentTime 120 ; prFPH (3) ;

currentTime 123 ; prFPH (11) ;



Сохраняем скрипт под каким-нибудь именем. Откатываемся назад вплоть до отмены создания всех Blend Shape, или для исключения ошибок открываем файл HeadAni.mb, импортируем звук Duck.wav из каталога Sound, включаем режим Auto keyframe, загружаем скрипт HeadAni.mel, выполняем его и смотрим анимацию.






Наше первое построение


В этом уроке Вы построите дверь, используя для этого примитивы. Вы научитесь пользоваться инструментами преобразования , предоставляемыми Maya, а также научитесь настраивать положение камеры с помощью клавиш мыши и научитесь пользоваться некоторыми редакторами и окнами.



Основные положения


На этом уроке Вы познакомитесь с основами Maya. Следующие уроки построены таким образом, что для их изучения Вы уже должны будете иметь некоторые знания о пользовательском интерфейсе Maya, уметь ориентироваться среди множества окон и пользоваться предоставляемым редактором, не говоря уже о знакомстве с такими элементами, как меню, быстрые ссылки, marking menus.

Если Вы уже неплохо знакомы с Maya, то можете пропустить этот урок, но все таки лучше будет, если Вы прочтете его и освежите свои знания, ведь повторение - мать учения. С другой стороны, возможно, с тех пор, как Вы последний раз пользовались этой программой, в интерфейс внесены некоторые изменения, и нелишним будет с ними ознакомиться.

В этом туториале Вы узнаете:

С чего начать

Как пользоваться примитивами Maya и инструментами камеры

Как пользоваться инструментами преобразования

Как использовать Shelf и renaming объекты

Как использовать Channel Box и Outliner

Как оптимизировать вид объекта в окне просмотра

Как выбирать и преобразовывать компоненты

Как позиционировать объекты

Duplicating и instancing

Что такое опорными точками и как их нужно использовать

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

Также Вы ознакомитесь со встроенным языком Maya (Maya Embedded Language, далее - MEL) (ждите через неделю), и прочтете краткое описание пользовательского интерфейса Maya (ждите через неделю).

Перед тем, как Вы начнете:

Для того, чтобы пользоваться этим уроком так, как задумывали авторы, Вам необходимо будет подключить файлы сцен Maya. Чтобы инсталлировать эти файлы, перейдите в раздел

Try Maya

CD-рома Taste of Maya.

Запуск Maya:

Дважды щелкните на иконке

Maya 3.0 Evaluation

на рабочем столе или из

Start>Programs>Maya 3.0 Evaluation>Maya

.

В Maya:

Как только файлы туториала будут инсталлированы, разрешите текущему проекту доступ к файлам сцен Maya. Для этого в Maya :

· Выберите

File>Progect>Set

и укажите здесь каталог, в котором Вы установили файлы сцен Maya.

· Выберите каталог

Maya_tutorial_data

и нажмите Ок

ВАЖНО!

Для того, чтобы работать с этим уроком, Вам понадобиться трехкнопочная мышь.



Позиционирование объектов


Выполнив следующие шаги, Вы увидите, как можно очень точно позиционировать на двери дверную ручку.

Позиционирование дверной ручки.

Выберите

Display>Show>Show Last Hidden

- мы снова хотим видеть в нашей сцене дверь.

Display>Show

подменю - вещь, полярно противоположная

Display>Hide

меню.

Выделите дверную ручку. Когда Вы выбираете объект Knob, Maya таже выбирает объект Base, так как Base - потомок Knob.

Выполните масштабирование ручки, чтобы ее размеры были пропорциональны размерам двери. Заметьте, что применяемые трансформации относятся как к объекту Knob, так и к объекту Base.

Переместите Knob вперед и вверх, к краю двери, как показано на следующем рисунке. Вы можете даже немного погрузить основание ручки в поверхность двери, чтобы ручка выглядела прикрепленной.



Работа с опорными точками.


Сделайте так, чтобы дверь можно было открывать и закрывать

Предположим, Вы хотите, чтобы Ваша дверь могла открываться, как на петлях. Самый простой способ сделать это - указать точки, относительно которых будет поворачиваться дверь. Такие точки называются опорными точками (pivot). Именно с опорными точсками Вы будете учиться работать в этой части урока.

Удерживая клавишу Shift, щелкните мышью на объектах Knob, Door и Knob1 - так Вы выделите их все.

В главном окне Maya Выберите

Edit>Group

. Таким образом Вы сгруппируете эти объекты.

Группировка - еще один способ как-либо воздействовать на несколько объектов одновременно. Сейчас все наши три объекта объединены в группу. Это значит, что, когда Вы будете производить над группой какие-то действия, все они будут производиться над каждым членом группы.

Переименуйте группу

group1

в

DoorGroup

.

Выделите

DoorGroup

(если Вам не удалось сделать это, воспользуйтесь Outliner), и нажмите клавишу

Insert

, чтобы Maya показала Вам  группы опорных точек. 

Нажатие Insert позволяет Вам редактировать позицию пивота - the point Maya использует в качестве базиса для всех преобразований.

На виде спереди, переместите pivot point в левый угол двери, как показано на рисунке.

Левая часть двери - вполне логичное место для размещения петель, поэтому Вам нужно совместить ось Y точки пивота с краем двери. Совмещение оси X в данном случае не важно, но ось совмещается с нижней кромкой двери по умолчанию. 

Снова нажмите

Insert

, чтобы закрепить позицию точки привязки. 

Выберите инструмент

Rotate

.

На виде в перспективе щелкните на

зеленом указателе оси Y

. (Как только Выделите ее, она станет желтой) и потаскайте вправо - влево. Не правда ли, похоже на то, что дверь с ручкой вращаются на петлях.



Raytools


Установка Raytools

Этот документ описывает пример установки raytools .Так как процедура установки может быть немного сложна, для пользователей с небольшим опытом использования "command shelf", то я нахожу наиболее практичной идею описания практического примера установки, вместо общих указаний.

Кроме этого, даны общие указания о самом процессе.

(Прочитайте описание и следуйте инструкции ВНИМАТЕЛЬНО! НЕВНИМАТЕЛЬНАЯ пробежка по этому документу принесет Вам одни неприятности и головную боль).

ТРЕБОВАНИЯ:

Прежде чем устанавливать raytools, Вы должны иметь:

- Установленную MAYA 4.0 ( поддержка версии 4.0 и выше)

- MR 2.1 установленный в любой форме.

РЕКОМЕНДОВАННОЕ ЧТЕНИЕ:

- Maya Manuals: Essentials/Setting Environment Variables

- mental ray manual: Functionality

- mental ray manual: Usage and Command Line Options/Startup File

Чем больше опыта вы имеете с MAYA ,тем лучше (то же относится к MR)

ЧАСТИ УСТАНОВОЧНОГО ПРОЦЕССА:

Эта часть описывает процесс самой установки. Для того,чтобы приступить непосредственно к установке,- пропустите эту часть.

Процедура установки состоит из последующих частей:

1. Установка и конфигурация модуля plug-in MAYA

- Разархивировать и поместить raytools в выбранную папку;

- В папке конфигурации MAYA должны быть проделаны следующие дополнения/модификации;

- Необходимо создать новое определение plug-in модуля для raytools

- raytools preferences должны быть помещены в папку prefs/

-raytools shelf должны быть помещены в папку prefs/shelves/

- файл "MAYA Env." должен быть создан/отредактирован для добавления необходимых переменных environment

-"UserSetup.mel" file должен быть создан/отредактирован, чтобы он содержал вызов raytools

- путь к папке "raytools /bin" должен быть включен в системную переменную "Path"

2.Конфигурация MR

- файл "rayrc" должен указывать путь к raytools шейдерам

- файл "rayrc_maya" должен быть отредактирован, чтобы он содержал правильные установочные пути.



- путь к папке, содержащей ray 2.exe ( ray.exe) и__Imf_disp.exe_должен быть включен в системную переменную"Path"



3. КОНФИГУРАЦИЯ ПЕРЕМЕННЫХ ENVIRONMENT.


Пример установки не описывает это, так как включенный файл "MAYA env" уже содержит все переменные ENVIRONMENT.



Cледующие ENVIRONMENT переменные должны быть созданы:


-_MAMI_HOME должен указывать на директорию в которой установлен raytools

- ray 2.exe( ray.exe) и Imf_disp.exe должны быть включены в "Path"

- % MAMI_HOME должен быть включен в "Path"

- MI-ROOT должен указывать на папку, содержащую "rayrc" файл.



ВАЖНАЯ ЗАМЕТКА о ENVIRONMENT переменных.


На некоторых машинах файл "MAYA Env." не будет работать корректно.

Если вы закончили установку, но raytools не работает, то Вам необходимо создать все ENVIRONMENT переменные вручную.

откройте "MAYA.env " файл и создайте ENVIRONMENT переменные, которые в нем есть, вручную.



Ниже Вы найдете пример установки.




ПРИМЕР УСТАНОВКИ:


Для начала MR и Maya должны быть установлены на Вашем компьютере.

В данном примере сделаны следующие предположения:

- MR установлен как часть SoftImage |XSI_1.5 в папку " C:/SoftImage/ XSI_1.5 "

- Вы устанавливаете raytools в "C:/ raytools ".

(Примечание по редактированию конфигурационных файлов MAYA: Если имеются уже существующие файлы"MAYA.env " и" userSetup.mel" в конфигурационной папке MAYA, не заменяйте их файлами из дистрибутива raytools.

Вместо этого,добавьте содержание соответствующих файлов из дистрибутива raytools в конец уже существующих файлов)



СЛЕДУЙТЕ ИНСТРУКЦИЯМ ВНИМАТЕЛЬНО.




1.Установка и конфигурация модуля plug-in raytools.


После разархивирования,скопируйте файлы в " C:/ " ( таким образом у Вас получится папка " C: / raytools " )

Теперь Вам необходимо найти конфигурационную папку MAYA .

Обычно эта папка находится в :

"C:/WINNT/Profiles/<username>/maya/4.0" для Win NT



"C:/Documents and Settings/<username>/My Documents/maya/4.0" для Win2K

В дальнейшем это будет называться " config folder"

Уже существующие в папке raytools " misc / config / MAYA / 4.0 " файлы сделают установку проще.

В данном случае это папка " С: / raytools / misc / config / MAYA / 4.0".

Это будет называться " preset folder ".

Далее необходимо осуществить следующие модицикации в Вашем

" config folder "

скопируйте " modules" из " preset folder " в "config folder ".

(Примечание переводчика: если " modules" уже существует (к примеру, если Вы имеете установленный DNT модуль), то тогда скопируйте содержимое папки " modules " дистрибутива raytools в уже существующую папку " modules " ).

Скопируйте содержимое папки " prefs" в папку "prefs " вашего"config folder ".

Если такой папки нет в "config folder " скопируйте ее целиком, вместе с содержимым.

Скопируйте" user Setup.mel " из "preset folder "scripts " в "config folder " "scripts ".

Если такой файл уже существует-добавьте содержимое нового файла в конец старого.

Скопируйте "MAYA.env " в "config folder ".

Eсли "MAYA.env " уже существует- добавьте содержимое нового файла в конец старого.

Это все для установки модуля plug-in .

См.ниже какие файлы необходимо изменить, если Вы хотите изменить конфигурацию.



2. КОНФИГУРАЦИЯ MR .


Вам необходимо найти файл " rayrc ".

В данном примере,файл находится в "C:/Softimage/XSI_1.5/Application/rsrc"

Откройте файл в текстовом редакторе и добавьте в конец $include C:/raytools/mi/rayrc_maya"

Это все.

Теперь вы сможете запустить MAYA, чтобы посмотреть все ли работает правильно.

После запуска у Вас должен появиться ярлык " raytools " (shelf) и 4 дополнительных меню ("Toolkit", "Access", "Graph", "Render") в " Rendering ".



После того ,как установка завершенна и MAYA запущена, откройте Translator Globals и проверьте все пути,в особенности установки Executables и Temporary .

Создайте полигональный примитив и источник света и выберите

"RENDER" > Frame Preview"

На экране должнo появиться консольное окно, показывающее MR messages и rendering progress и окно imf_disp, показывающее рендерящуюся картинку.

У Вас могут появиться проблемы с imf_disp (см.примечание), но отрендеренная картинка всегда помещается в Maya Render View, так,что вы можете посмотреть ее там.

Если у вас проблемы - скорее всего они появились из-за Environment установок.

См."Конфигурация переменных Environment" (особенно примечания)

Если все работает ,как положено,то приступайте к чтению " manuals".



ИЗМЕНЕНИЕ УСТАНОВКИ


Список файлов имеющий отношение к конфигурации raytools.

- < raytools > - установочная папка

- <Maya_app_dir> Maya "config Folder ".

- <mi_root> -папка, где находится " rayrs"файл .

- <Maya_app_dir>/Maya env. - переменные ENVIRONMENT

- <Maya_app_dir >/ modules / raytools путь к plug-in .

- <Maya_app_dir>/prefs/.mr prefs.09_raytools preferences

- <raytools >/ mi / rayrc_maya raytools shaders

- <raytools >/mi /rayrs_ presets/ presets rayrs_Maya

- <mi_root>/rayrs MR startup файл

Папка "<raytools >/mi /rayrs_ presets>" содержит установочные файлы для " SoftImage/XSI и SI / 3D 3.9"

Чтобы использовать любой из них переименуйте этот файл в " rayrs_maya " и замените "rayrs_maya " из дистрибутива.

Возможно Вам придется измениить установки Translator Globals в Maya .



ЗАМЕТКИ :


Ограничения тестовой версии:

-ограниченный размер геометрии (число CV/вершин)

-нет экспорта сабдивов

-нет поддержки UV координат для геометрии(текстуры могут быть наложены используя проекцию)

Приложенная документация далека от завершенности. Несмотря на это,она все таки является очень ценным источнитком информации и рекомендуется к прочтению, в любом случае.





НЕСКОЛЬКО ПОЛЕЗНЫХ СОВЕТОВ - ПОДСКАЗОК:


Использование raytools само по себе (в отличие от создания и присвоения shaders )очень просто.

Properties (свойства):

Вы можете редактировать свойства обьектов,источников света и камер,чтобы использовать явное " explicit " управление MR.

Чтобы сделать это-используйте " Prepare" меню(самое простое "Auto-Prepare Selected " ).

К примеру,чтобы скорректировать тесселяцию NURBS сферы,выберите обьект и "Prepare Selected " -->Objects (shapes)",

"Prepare Transform --> As Geometry"или "Auto-Prepare --> Selected Object(s)"

Это добавит свойства MR.

После этого выберите обьект и " Access -->Geometry

-->Tesselation:Surhace ",чтобы отредактировать параметры тесселяции.



ПРИСВОЕНИЕ MR shader.


Чтобы присвоить обьекту MR shader необходимо:

1.Присвоить обьекту новую shading group.

2.Выбрать обьект и " Toolkit -->Shaders --->Greate nev Shader "

3.Выбрать Shader , к примеру X Base/rt Material.

Если обьект выделен во время создания shader-а , raytools

попытается присвоить этот shader данному обьекту.

Raytools спрашивает,как присвоить shader.

Выберите " Material shader "

После чего raytools присвоит rt Material shader shading group обьекта.



СОЗДАНИЕ Shader Networks_


Для этого Вы можете использовать Hypergraph .

Однако, MR налагает определенные ограничения:

- каждый Shader может иметь только один " output " параметр (атрибут " mr_out<Data type>" Shader Networks могут быть построены присоединением этого "output" к любому другому параметру другого shader (тип данных должен совпадать)

-Вы можете соединить любые параметры shader вместе, это приведет к тому, что эти параметры будут иметь одинаковое значение. Вы можете анимировать любой параметр.

Единственное исключение - нельзя анимировать выходные параметры shader-ов

Т.е. Вы не можете создать'expression shaders' или использовать driven keying с данными, которые передаются shader-ами в момент рендеринга.



- Соединять можно только параметры одинакового типа(color to color, scalar to scalar).

Для соединения color к scalar, например, необходимо использовать"convertion nodes".



SHADER-ы


"Create Shader " содержит 3 части:"XBase", "Mental_Images".

базовые библиотеки shader-ов.

"sibase" библиотека shader-ов доступна только, если MR установлен как часть SoftImage|XSI_1.5



ИСПОЛЬЗОВАНИЕ imf_disp


В XSI имеется более новая версия imf_disp.

Этот image viewer используется для отображения процесса рендеринга. Эта более новая версия ведет себя немного по- другому, чем старая и не работает (хорошо) с raytools.

Поэтому предпочтительно использовать imf_disp, который идет с SI3D.

Это влияет только на отображение процесса рендеринга,готовое избражение всегда помещается в Maya Render View.



ЦВЕТОВАЯ СХЕМА:


Прилагается с raytools.

Чтобы установить - "<raytools>/misc/desktop_colors/raytools_desktop_colors.reg".

Это добавит"raytools" Desktop Appearance Scheme.

Переименуйте три файла в "<raytools>/misc/config/maya/4.0/prefs/", начинающихся с raytools_.

Удалите "raytools_" часть и оставьте paletteColors.mel, userColors.mel userRGBColors.mel.

Скопируйте их в "config folder". Не забудьте, что это надо делать с незапущенной Maya. Рестарт Maya и у Вас будет raytools color scheme.


Улучшение представления объектов на различных видах


В этой части урока Вы узнаете, как можно быстро улучшить представление объектов на виде.

Облагораживание представления дверной ручки

На виде в перспективе выберите

Shading>Smooth Shade All

.

Этот режим шейдинга подходит, когда Вы хотите видеть поверхности Ваших объектов. По умолчанию Maya работает в режиме сетки (wireframe), так как в режиме сглаженного затенения (Smooth Shading) слегка снижается скорость работы с объектами.

Выделите объект

Door

и выберите

Display>Hide>Hide Selection

. Этим мы убрали с вида дверь, и теперь можем полностью сконцентрироваться на дверной ручке.

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

Выделите объект

Knob

и выберите

Display>NURBS smoothness>Fine

. Дверная ручка после этого будет представлена с большей точностью, детализацией.

Эта операция работает для отдельных объектов и применима, когда Вы хотите получить изображение, хотя бы немного напоминающее то, что получится в результате рендеринга. Имейте в виду, что NURBS smoothness абсолютно не влияет на рендеринг, и применяется только для улучшения качества представления на виде. 

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

Выделите объект

Base

и щелкните на указателе

makeNurbCylinde1

внизу

Channel Box

.

Измените значение поля

Spansс 1

на

2

и нажмите Enter. 

Увеличив значение Spans на более высокое, Вы увеличили количество кривых, образующих поверхность цилиндра. Зачем это нужно, Вы сейчас узнаете.

Очень важно то, что Maya позволяет Вам изменять эти атрибуты, связанные с созданием объекта. Эти атрибуты, и другие, используемые при конструировании объекта, называются construction history (история создания).



Выбор и преобразование компонентов.


С помощью следующих шагов будет продемонстрировано, как пользоваться marking menus для того, чтобы быстро выбирать компоненты объекта и выполнять их преобразование.

Создание реалистически выглядящей дверной ручки

На виде сбоку щелкните правой кнопкой мыши на Base из меню, которое появится,

Control Vertex


Это меню называется marking menu, еще одно традиционное средство Maya, применяющееся для ускорения доступа к действиям и инструментам. Содержимое этого меню зависит от того, какой объект в данный момент является выделенным. В нашем случае пункты меню относятся к опциям геометрии компонентов NURBS объекта.

Компонентами

являются точки и элементы, которые все связывают воедино. Например, контрольные вершины (control vertices (CV)) - это точки, определяющие форму NURBS кривой, а вершины - это точки, которые образуют вершины полигонов.

Выделите область, охватывая контрольные вершины на границе пересечения сферы и цилиндра. (выделенная область может также называться marquee, или marquee-select).

Отмасштабируйте контрольные вершины таким образом, чтобы внешний край объекта Base соприкоснулся с внутренним краем объекта Knob. Руководствуйтесь нижеприведенными рисунками .

На виде в перспективе видно, насколько естественнее стало выглядеть сопряжение поверхностей.

Одна из компонентов удачного преобразования, которое мы только что выполнили - это увеличение количества образующих поверхность кривых. Если Вы помните, мы поменяли в Channel Box параметр

Spans

на

2

. Чем больше кривых, тем тем точнее и сглаженнее будет выглядеть объект. Чтобы получить наилучшие результаты, не забудьте, что количество кривых нужно увеличивать ПЕРЕД тем, как Вы будете производить манипуляции с индивидуальными компонентами NURBS объекта.

Чтобы выйти из режима показа компонентов и вернуться в режим выделения объекта, снова щелкните на объекте Base правой кнопкой мыши и выберите

Select

из marking menu.



Заканчиваем создание двери


Выделяем Knob и выбираем

Edit>Duplicate

. Появится окошко с опциями дублирования Maya.

Параметры в окне опций дублирования (Duplicate Options window), так же, как и параметры в других окнах опций, относятся к атрибутам объекта и могут быть в последствии отредактированы.

СОВЕТ

Любые изменения, которые Вы вносите в окне опций, сразу же вступают в силу. Вы можете установить первоначальные параметры, выбрав Reset Settings из меню Edit окна опций.

В нашем случае, тип исходной геометрии, Copy, нужно выключить (выставить в off), а

Instance

включить (выставить в on)

Когда Вы создаете ссылочную копию, Вы в действительности не создаете копии геометрии выделенного объекта. Вместо этого Maya еще раз отображает исходную геометрию так, чтобы Вы могли преобразовывать ее отдельно.

Cсылочная копия потребляет меньше системной памяти, чем настоящая копия. Единственное связонное с применением ссылочных копий неудобство - то, что Вы не сможете изменить компоненты копии, такие, например, как control vertices, так, чтобы они отличались от компонентов оригинала.

Щелкните на кнопке

Duplicate

в окне опций. Maya создаст дубликат под именем Knob1.

Выделите

Knob1

, выставьте значение поля

Rotate X

в -

180

и переместите на противоположную часть двери. Теперь у Вас есть настоящая дверь - с ручками с обеих сторон.



Только что Вы закончили первый


Только что Вы закончили первый урок, который должен был, как минимум, ознакомить Вас с интерфейсом Maya. В последующих уроках нам больше не понадобится дверь, так что, если Вы выполнили все, что было нужно сделать по ходу урока, можете все удалить. Для этого просто выделите все и нажмите клавишу
Backspace
.
Следующий раздел этого урока посвящен MEL (Maya Embedded Language, то есть встроенный язык Maya), и дано краткое описание пользовательского интерфейса. 
Для Вас это - веха, место, куда нужно вернуться, если Вы вдруг забудете, для чего нужны определенные окна, или какое сочетание клавиш соответствует определенной операции.