| Иллюстрированный самоучитель по Maya для начинающих |
|
|
| 14.12.2007 г. | |||||||||
Страница 6 из 7 Крэш-тест Как создать симуляцию крэш-теста, в которой автомобиль с водителем внутри разбивается о каменную стену? Тема:
Используемые техники и инструменты:
Настоящие крэш-тесты очень дороги, поскольку в них разбиваются настоящие машины. Моделирование аварий также весьма дорого, но уже по другой причине. В отличие от реальных тестов компьютерную модель можно повторять бесконечное количество раз однако, они требуют очень мощных компьютерных ресурсов. Эти ресурсы необходимы, поскольку тесты имеют дело с еле заметными, крошечными изменениями материалов. Они не только тестируют типы материалов, из которых сделана машина, но также и качество их плавки и соединения. Эластичность - это определяющий фактор для таких тестов. Однако важна и специфичная точка , в которой каждая часть машины теряет эту эластичность и ломается. Когда она ломается, как она ломается? Что случается со сломанными частями, как они воздействуют на окружающие предметы? Начинают ли они цепную реакцию? Мы не можем ответить на эти вопросы с помощью MAYA. Мы можем скопировать динамические отношения, но область строения материалов нам не доступна. Мы смоделируем крэш-тест только на простейшем уровне. Тем не менее он будет достаточно впечатляющим, чтобы вызвать у вас сочувствие к водителю.
Рис. 16.1. Минимум затрат на моделирование: стена, улица, машина, пассажир
Рис. 16.2. Твердые тела не должны соприкасаться друг с другом в начале компьютерной модели. Поэтому водителя следует поместить немного над дном внутренней области машины, а машину немного выше улицы. На рисунке вы видите изображение в каркасном виде в окне Side View
При воспроизведении анимации машина занимает свое место на улице, а водитель прямо сидит внутри машины. Это все, что гравитация дает нам на данном этапе, однако это всего лишь начало симуляции. Убедитесь, что MAYA просчитывает каждый кадр симуляции, вместо того чтобы воспроизводить анимацию в реальном времени, пропуская некоторые кадры. Проверьте опцию Play every Frame (Воспроизводить каждый Кадр) в окне Timeline Preferences (Настройки временной шкалы). Для того чтобы сделать симуляцию более захватывающей, мы добавим водителю и машине начальную скорость. В реальности это была бы скорость, с которой машина и водитель двигались бы в направлении стены. Она должна быть одинаковой для машины и водителя. Это значение вы можете ввести для обоих объектов сразу в окне Channel Box (Окно Каналов).
Рис. 16.3. Крэш-тест на скорости 36 км/ч (22 мили/ч). Здесь показаны несколько кадров сразу после столкновения автомобиля со стеной. Его отбрасывает в сторону. Через полсекунды после аварии водитель, переворачиваясь в воздухе, падает вниз Рис. 16.4. Самые важные параметры теста: Initial Velocity (Начальная Скорость) и Mass (Масса) Это округленно соответствует отношению веса реальной машины к весу среднестатистического водителя. Теперь, посмотрев крэш-тест (рис. 16.5 и 16.6), вы без труда сможете представить, что бы произошло с водителем, если бы все это случилось в реальности. Если вы собираетесь продолжить работать с подобного рода симуляциями, то вам следует поближе познакомиться с Динамикой Мягких Тел (Soft Body Dynamics), Пружинами (Springs) и, наконец, точной настройкой весов целевых объектов (Soft Body Goal) для разных частей «мягкого» тела. Рис. 16.5. Крэш-тест стал более захватывающим со значением скорости 66 миль/ч и использованием более реалистичных значений параметра Mass (Масса). Водитель вылетает из машины по широкой дуге и переворачивается в воздухе несколько раз за доли секунды Рис. 16.6. Десятая доля секунды после аварии (изображение отрендерено с помощью Motion Blur (Размытость при Движении) А теперь кое-что новенькое. Никогда не пробовали в многослойном шейдере накладывать абсолютно прозрачный шершавый Phong на ярко-красный Blinn? Извержение вулкана Как создать кратер вулкана, выбрасывающий огонь в темную ночь? Тема:
Используемые техники и инструменты:
Взрывы, извержения и пламя - эти эффекты часто встречаются в кинофильмах. Они обычно отдельно создаются пиротехниками, а потом совмещаются с реальным местом действия. Мы можем моделировать многие из этих спецэффектов в MAYA - от фейерверков до ураганов, - используя частицы, которые подчиняются динамическим законам, и, для того чтобы выглядеть реалистично, от аниматора требуется большой опыт как для задания их физического поведения, так и для текстурирования. В этом уроке мы затронем основы анимации частиц: создание источника, анимация интенсивности эмиссии, влияние на поведение частиц турбулентности и гравитации. Текстурирование частиц - это отдельное искусство, которое выходит далеко за рамки этого урока. Однако, применяя встроенный в MAYA эффект Fire (Огонь), мы можем получить отличные результаты.
Рис. 17.1. Способ моделирования конуса вулкана командой Revolve (Вращать), примененной к профильной кривой
Рис. 17.2. Ramp-текстура придает цвет вулкану
Эта небольшая поверхность внутри кратера и будет источником частиц. Ее построение невозможно, если изопарма, по которой строится эта поверхность, сама не будет планарна. Благодаря истории построения, планарная поверхность перестроится, если вы измените форму вулкана. Вам не обязательно видеть построенную планарную поверхность), поэтому можете сделать ее невидимой (клавиши Ctrl+H).
Рис. 17.3. Планерная поверхность становится источником частиц
Рис. 17.4. Частицы не должны покидать источник, разлетаясь во всех направлениях. Мы хотим чтобы они двигались вверх по нормали к поверхности При воспроизведении анимации вы увидите, что частицы движутся вверх по нормали к поверхности. Если ваши частицы падают вниз, измените направление нормалей поверхности. Нажмите F3, выберите Edit NURBS / Reverse Surface Direction (Редактирование NURBS / Изменить Ориентацию Поверхности). Этот шаг необходим, если, к примеру, у вас есть большая сфера, которая должна испускать частицы внутрь. Нормали поверхности стандартной сферы направлены наружу. Прямо сейчас равные области поверхности испускают примерно равное количество частиц.Чтобы перемешать их, необходимо подействовать на них каким-то полем, поэтому подвергнем их действию турбулентности.
Рис. 17.5. Турбулентное поле начинает перемешивать частицы в момент их появления из кратера
Теперь частицы движутся беспорядочно, однако они летят прямо вверх. Поэтому далее добавим им немного тяготения. С самого начала поле гравитации будет тянуть их вниз с такой силой, что у них не останется ни малейшего шанса двигаться вверх. Теперь у нас есть две противоборствующие силы, как и в ракетной пусковой установке: сила гравитации против скорости эмиссии. Этот шаг также подчеркивает разницу между источником и собственно частицами: задача источника - выстрелить частицы с определенной скоростью, определенной плотностью и в определенном направлении. Ему все равно, что случится с частицами после этого. Источник беспокоится только о том, чтобы отправить частицы в путешествие по миру сил.
Рис. 17.6. Благодаря гравитации частицы не уносятся в бесконечность, а через некоторое время возвращаются на землю
Рис. 17.7. При немного увеличенной Tangent Speed (Скорость по Касательной) источник делает поток частиц шире Когда ширина потока увеличена, огромное количество частиц падает на стороны вулкана и сквозь него. Если вы хотите, чтобы при столкновении с землей они исчезали, будто бы угасая, то вы должны связать их с поверхностью, используя команду меню Particles / Make Collide (Частицы / Задействовать Столкновение). Есть один изящный и естественный способ - не позволять слишком большому количеству частиц достигать поверхности и проваливаться сквозь нее. Сейчас наши частицы живут вечно. Но мы можем уменьшить время их жизни.
Рис. 17.8. Частицы исчезнут через четыре секунды, плюс -минус полсекунды
Теперь период существования каждой частицы перед исчезновением будет составлять случайно выбранное число от 3,5 до 4,5 с. В природе извержения редко бывают равномерными. Они начинаются с нуля, когда ничего не происходит, затем в течение нескольких мгновений происходит высокий выброс большого количества частиц, а потом достигается равновесие потока на несколько меньшей высоте. Ключевым параметром (и атрибутом источника) для достижения этого эффекта является Rate (Интенсивность) испускания.
Теперь вулкан ведет себя очень тихо, прежде чем начать внезапное извержение. Затем он немного замедляет извержение до уровня средней интенсивности. Используя Graph Editor (Редактор Анимационных Кривых), отрегулируйте этот процесс. Рис. 17.9. Анимация интенсивности извержения вулкана. В Graph Editor (Редактор Анимационных Кривых) вы можете внести необходимые для отладки анимации изменения Если хотите, можете добавить и другие силы, влияющие на движение частиц, например ветер (Air (Ветер), либо увеличить турбулентность, или Drag (Трение), которое замедлит движение частиц, независимо от направления их движения. Но даже без всего этого анимация частиц в целом удовлетворяет нашим требованиям, и мы можем начать работу над внешним видом частиц. Визуализировав сцену обычным способом, вы вообще не увидите частиц. Их можно увидеть лишь в результате специальной процедуры рендеринга через Hardware Render Buffer (Буфер Аппаратного Рендеринга) (меню Window / Rendering Editors (Окно / Редакторы рендеринга). Скорее всего, это будут точки, штрихи или сферы. После такого рендеринга вы сможете вставить их в сцену с вулканом, только используя композиционную программу, типа MAYA Fusion, Edit или After Effects. Нам же нужно желто-красное пламя с небольшой прозрачностью, поэтому мы должны воспользоваться процессом обычного программного рендеринга. Откройте Attribute Editor (Редактор Атрибутов) для частиц (см. рис. 17.10). В секции Render Attributes (Атрибуты Рендеринга) измените Particle Render Type (Тип Визуализации Частиц) на Cloud (s/w), где s/w обозначает программный рендеринг. Cloud придает нашим частицам размытый, полупрозрачный вид. В результате рендеринга вы получите голубые облака. Голубой цвет обусловлен установленным по умолчанию шейдером для частиц, который вы найдете в Hypershader. Он называется particleCloudl. Если вы измените цвет particleCloudl с голубого на красный, то вулкан будет извергаться полупрозрачными красными облаками (см. рис. 17.11). Рис. 17.10. Лишь два нижних типа частиц в выпадающем меню Particle Render Type (Тип Визуализации Частиц) могут быть визуализированы обычным способом. Остальные требуют применения Hardware Render Buffer (Буфер Аппаратного Рендеринга). Тип Cloud (Облако) - это подходящий для вулкана тип визуализации частиц при рендеринге Рис. 17.11. ParticleCloud определяет вид облака частиц. Средняя секция визуализированного изображения слева показывает измененную с голубого на красный текстуру particleCloud Однако это очень отдаленно напоминает огонь. Если вы поиграете с цветом, например примените к частицам ramp-текстуру, то увидите, что,'несмотря на то что реалистичную анимацию частиц очень просто создать, весьма сложно придать ей красивый вид. Могут понадобиться часы работы над particleCloud 1 в Hypershade, чтобы добиться не только внешнего вида пламени, но и его реалистичного поведения при анимации. В этом уроке мы упростим себе задачу и используем встроенный в MAYA эффект Fire (Огонь). Сначала мы создадим огонь и назначим его вид частицам вулкана. Эта процедура не только сэкономит время, но и позволит вам изучить шейдер огня, так что в дальнейшем вы сможете модифицировать его исходя из собственных нужд.
Рис. 17.12. Команда Create Fire (Создать Огонь) добавляет огненные частицы к уже имеющимся частицам вулкана При воспроизведении анимации вы увидите маленький огонь внутри вулкана, прежде чем начнется запрограммированное вами извержение. В окне modeling view (окно Моделирования) он зеленого цвета, в окне рендеринга огонь принимает вид настоящего пламени (рис. 17.13). В Hypershader рядом с particleCloud 1 вы увидите шейдер для огня partideCloud 2. Рис. 17.13. Перед извержением вулкана огонь уже горит в кратере. Слева - вид Perspecrive View (Вид Перспективы), справа - окно рендеринга
Рис. 17.14. Мы назначаем цвет пламени первоначальным частицам В виде Modeling View (Окно Моделирования) частицы становятся зелеными, как и частицы огня, и повторяют вашу анимацию, а не исходные параметры анимации огня. Вы все еще можете видеть небольшой огонь в кратере. Оставьте его там либо удалите секцию particleCloud 2. Изящным штрихом может быть небольшой огонь в кратере после угасания мощного извержения. Кратер в этом случае будет продолжать тлеть до конца анимации. В результате рендеринга вы получите слишком тоненькое пламя для мощного извержения. Это признак того, что плотность выбрасываемых частиц очень низкая. Чтобы это исправить в окне Channel Box (Окно Каналов) или в Graph Editor (Редактор Анимационных Кривых), увеличьте значение Emission Rate (Интенсивность эмиссии) для emitter 1. He бойтесь ввести большое значение, к примеру 1000! В зависимости от размеров кратера, который вы создали, огонь может быть либо чересчур маленьким, либо слишком большим. Чтобы получить требуемый размер, выделите частицы и масштабируйте их на свой вкус. Рис. 17.15. Четыре визуализированные фазы извержения Если же вы работаете именно над видом огня, изучите его структуру в Hypershader. По умолчании огонь MAYA включает три рамп-текстуры, соответственно для цвета, прозрачности и свечения . Кроме того, 3D-Crater текстура служит в качестве Blob Map (Карта Капель). Наконец, есть несколько выражений для работы с некоторыми другими вещами, например определяющие параметры эффекта Glow (Свечение). Если вас заинтересовала динамика огня, добавьте дополнительные поля и поиграйте с ними, с атрибутами частиц и источника. А теперь кое-что новенькое. Можете ли вы построить ухо по трем кривым? Пусть они улягутся Как разместить несколько объектов на волнистой поверхности, чтобы они «прилипли» к ней? Тема:
Используемые техники и инструменты:
Очень мало поверхностей имеет по-настоящему плоскую форму. Даже полы в новом здании имеют неровности, особенно заметные по краям ковра. Размещение на их неровной поверхности каких-нибудь объектов в трехмерной графике всегда вызывает затруднения. Много времени уходит на операции перемещения и вращения объектов, пока они действительно красиво лягут на землю, а не зависнут над ней и не погрузятся внутрь. При использовании динамики твердого тела эта проблема решается мгновенно. И не потребуется ни единого перемещения! Мы преобразуем объекты, которые хотим разместить на поверхности в твердые тела, и позволим им упасть под действием гравитации. Они лягут очень натурально, именно так, как нам это нужно.
Рис. 18.1. Поверхность плотностью 20x20 патчей...
Рис. 18.2. ...деформируем с помощью кисти модуля Artisan
Рис. 18.3. Куб размещен вручную. Сложно найти точку, в которой он естественно лежал бы на поверхности. В данном случае он проникает в поверхность по крайней мере в двух точках
Рис. 18.4. Стартовая позиция симуляции. Четыре объекта расположены над поверхностью и сейчас упадут на нее
Рис. 18.5. Земля заявлена как пассивное твердое тело и теперь может участвовать в симуляции
Рис. 18.6. Сила гравитации влияет на объекты. Они становятся активными твердыми телами и готовы к падению Добавив гравитацию, мы убиваем сразу двух зайцев: она преобразует каждый объект в активное твердое тело и связывает их с полем тяготения, которое потянет их вниз со скоростью 9,8 м/с .
Рис. 18.7. Три фазы падения четырех объектов на волнистую поверхность в соответствии с законами сэра Исаака Ньютона. Чем округлее объекты, тем дольше они катятся по поверхности до полной остановки Для того чтобы MAYA точно воспроизвела симуляцию кадр за кадром, откройте Preferences (Установки) и измените Playback Speed (Скорость Воспроизведения) с Normal (Нормальная) на Play every Frame (Воспроизводить каждый кадр). Если какие-то из ваших объектов все еще проникают в поверхность, увеличьте разрешение плоскости (рис. 18.8). Значение для Tesselation Factor (Множитель Тесселяции) вы можете найти в Attribute Editor (Редакторе Атрибутов) для Rigid Body (Твердое Тело) (но не для поверхности) в секции Performance Attributes (Атрибуты выполнения). Рис. 18.8. Упавшие объекты не будут проникать в поверхность, если вы увеличите значение для Tesselation Factor (Множитель Тесселяции) [Тесселяция - разбиение. - Примеч. ред. ] Если вам не нужно, чтобы объекты катились по поверхности перед окончательной остановкой, выполните несколько действий. Разместите объекты ближе к земле перед падением уменьшите значение параметра Bounciness (Упругость) (рис. 18.9), и объекты не будут подпрыгивать при соприкосновении с землей; либо вы можете увеличить их Static Friction (Сила трения покоя), чтобы они не скатывались с возвышенностей. Однако помните: чтобы вы ни делали, симуляция остается симуляцией. Другими словами, ничего предсказать нельзя. Рис. 18.9. При значении 0 параметра Bounciness (Упругость) объекты теряют упругость
Рис. 18.10. Все объекты естественно расположены на поверхности
Используя такой подход, вы можете не только расположить несколько предметов один рядом с другим на поверхности, но и позволить им падать друг на друга, складываясь в пирамиду. рис. 18.11 демонстрирует размещение 2001 полигонального куба на плоской поверхности. Симуляция, использованная для этого, в действительности состоит из нескольких симуляций с сотней или около того кубов в каждой. Большую симуляцию из 2001 кубов не выдержал бы никакой центральный процессор персонального компьютера. Кроме того, более мелкие симуляции позволяют вам эффективнее контролировать область размещения - большая она или маленькая, размещение объектов контролируется динамическими законами. Размещение кубов один на другой либо один около другого вручную заняло бы у вас целый день.
Рис. 18.11. Хаос из 2001 куба после нескольких динамических симуляций (из анимации для детского телевидения Германии) А теперь кое-что новенькое. Приходилось ли вам вызывать и убирать окно Outliner (Схема Сцены) всего лишь двумя щелчками мышки (используя значок в верхней правой части экрана)? [В правой верхней части экрана нет иконки для Outliner. - Примеч. ред. ] Атака частиц Как создать спиральную туманность, атакующую мою камеру (а затем исчезающую в космосе)? Тема:
Используемые техники и инструменты:
Движение частиц определяется силовыми полями, такими, как, например, гравитация и турбулентность. Именно в этом сочетании они чаще всего используются. Частицы также направляются целями - ими может быть что угодно, от сферы до кривой со свойствами мягкого тела или камеры. В этом уроке мы используем Particle Goal (Цель Частиц), для того чтобы приманить вихревой поток облаков к нашей камере. Мы немного драматизируем сцену: спиральная туманность медленно найдет нашу камеру, устремится к ней, закружится вокруг и, наконец, исчезнет.
Рис. 19.1. Частицы, испускаемые из начала координат во всех направлениях
Параметр Play every Frame (Воспроизводить Каждый Кадр) очень важен: мы не хотим пропусков в шагах симуляции при работе модуля динамики MAYA. Затем мы создадим локатор, движущийся вокруг камеры при ее движении. Локаторы - это объекты, которые не визуализируются, как вы, наверное, помните из главы 8.
Рис. 19.2. Передвиньте опорную точку локатора к центру камеры. Вы можете привязать его к сетке в центре координат сцены Переместив таким образом опорную точку, вы сможете вращать локатор вокруг камеры. Вы можете воспользоваться ключевыми кадрами для вращения, но более изящный способ - написать простое выражение.
Рис. 19.3. Зависимое от времени уравнение заставит локатор медленно кружить вокруг начала координат сцены
Последний шаг заставляет локатор следовать за камерой, куда бы она ни двигалась и ни поворачивалась. Попробуйте теперь подвигать камеру. Теперь мы будем привлекать частицы, но не к камере, а к локатору.
Через камеру кажется, что поток частиц атакует нас, а затем кружит вокруг. Окно Perspective View (Вид Перспективы) показывает, что на самом деле частицы залетают далеко за камеру. Причиной такого перелета являются весовые коэффициенты частиц по отношению к их цели. Сейчас это все имеет среднюю величину, но мы это исправим. Рис. 19.4. Локатор будет служить целью для частиц
Рис. 19.5. Атрибуты частиц в окне Channel Box (Окно Каналов). Атрибут Goal Weight [0] (Целевой Вес [0]) определяет, насколько точно частицы следуют по пути движения мишени
Теперь частицы разбрызгиваются во всех направлениях на протяжении 100 кадров, затем они устремляются к локатору и кружат вокруг камеры (рис. 19.6 - 19.10). Теперь сквозь объектив камеры анимация выглядит гораздо более драматично. Рис. 19.6. Частицы вылетают из источника во всех направлениях... Рис. 19.7. ...пока их не привлечет камера... Рис. 19.8. ...они в форме ядра устремляются к локатору, который непрерывно вращается вокруг камеры... Рис. 19.9. ... они ослепляют камеру... Рис. 19.10. ...а затем залетают за свою мишень и возвращаются
Чтобы еще более драматизировать анимацию, в окне Graph Editor (Редактор Анимационных Кривых) задайте касательным анимационной кривой атрибута Goal Weight [0] (Целевой Вес [0]) тип flat (горизонтальные). Теперь смена направления движения будет мягче начинаться и заканчиваться. Если значение атрибута Goal Weight [0] (Целевой Вес [0]) ниже 0,1, его действие незаметно, поэтому, может быть, вам стоит установить еще один ключевой кадр для более быстрого перехода с 0 до установленного значения. Вы можете вставить ключ в окне Graph Editor (Редактор Анимационных Кривых). Теперь переключим наше внимание на внешний вид частиц, с тем чтобы они визуализировались не как точки.
Рис. 19.11. Тип частиц изменен с Points (Точка) на Cloud (s\w) (Облако)
Рис. 19.12. Вид спиральной туманности, состоящей из облака сфер, сквозь объектив камеры Если в результате рендеринга вы видите просто голубой экран, скорее всего, у вас слишком много частиц большого размера, которые расположены слишком близко к камере. Частицы нельзя масштабировать по отдельности, вам придется работать с ними как с одним целым. И прежде чем вы начнете этим заниматься, попробуйте увеличить их прозрачность. Созданный шейдер particleCloud имеет по умолчанию значение прозрачности 0,5 (см. в главе 17 о шейдинге облака частиц при извержении вулкана).
Рис. 19.13. Используя контекстное меню, откройте Attribute Editor (Редактор Атрибутов) для шейдера particleCloud. Поменяйте его цвет с голубого на желтый и увеличьте прозрачность. Теперь объект в центре сцены становится видимым сквозь густую желтую спиральную туманность
Вы также можете наложить текстуру на цвет, прозрачность и другие атрибуты материала с помощью ramp-текстур. Incadescence (Самосветимость) - это важный атрибут шейдинга частиц. Он заставляет их светиться. Как только вас устроит вид частиц, вы можете отрегулировать движение облака частиц. Как насчет небольшой (анимированной) турбулентности? Давайте добавим немного нерешительности поведению частиц. Пусть они потеряют интерес к камере, привлеченные другой целью.
Две цели для одной группы частиц звучит противоречиво. Однако это как раз то, что делает цели гибкими. Мы можем задать силу влияния каждой цели, изменяя ее вес, и таким образом анимировать путь движения частиц просто и эффективно. Сейчас частицы больше не приближаются к камере. Основной параметр, который изменил их поведение, - это вес новой цели, который вы можете увидеть в окне Channel Box (Окно Каналов): Goal Weight [1] (Целевой Вес [1]). Этот атрибут определяет, насколько точно частицы следуют за новым локатором. Поскольку сейчас это значение установлено на 0,5, частицы, находясь под его влиянием, уносятся от камеры к средней точке между первым и вторым локатором.
Теперь через 10 с частицы теряют интерес к камере и устремляются ко второму локатору - невидимой далекой цели. Наш полет может спокойно продолжаться. А теперь кое-что новенькое. Приходилось ли вам искать Instant Maya через клавишу F1? Толкаем вверх, тянем вниз Как анимировать два связанных между собой объекта, один из которых должен двигаться вверх, а другой при этом падать? Тема:
Используемые техники и инструменты:
Мы чувствуем себя легче в воде не из-за уменьшения силы тяготения, а потому, что существует противоположная сила, которая выталкивает нас вверх. Эта плавучесть в действительности обусловливается массой тела и плотностью и объемом вытесненной нашим телом жидкости. Все это может быть симулировано в трехмерной анимации, просто путем использования поля гравитации, работающего в противоположном направлении. Механически соединив два объекта с конфликтующими силовыми полями (одно толкает вверх, другое тянет вниз), мы получим в результате движение настолько сложное, что эту сложность невозможно получить с помощью обычной анимации по ключевым кадрам. В этом уроке мы создадим такую ситуацию и немного насладимся нашей работой, глядя на конфликт полей. Затем подожжем оба объекта, заставим первый объект гореть голубым пламенем, а второй погаснуть, когда он опустится ниже линии горизонта в воду.
Рис. 20.1. Принудительное согласование объединит тор и конус
Рис. 20.2. Перед началом симуляции переместите Pin Constraint (Принудительное согласование Булавка) немного вверх и в сторону Принудительное согласование типа Nail (Гвоздь), кстати, не является альтернативой для Pin Constraint (Принудительное согласование Булавка). Nail (Гвоздь) работает только с одним объектом, как гвоздь в рамке для картины, мы же скрепляем два объекта [Имеется в виду, что Nail Constraint позволяет прикрепить объект к какой-то точке в пространстве, «прибить гвоздем», Pin Constraint позволяет скрепить два объекта друг с другом - Примеч. ред. ]. При воспроизведении анимации на этом этапе вы ничего не увидите, поскольку ни на тор, ни на конус не воздействуют никакие силы.
Рис. 20.3. Тор падает под влиянием гравитации и тянет за собой в бесконечность конус, на который не действуют никакие поля
Рис. 20.4. Второе, развернутое в противоположном направлении поле тяготения поднимает конус вверх Теперь тор продолжает тянуть оба объекта вниз, а конус старается поднять их вверх - в результате мы получаем сложное движение пары (рис. 20.5). Если вы хоть немного усилите одно из полей тяготения, движение потеряет равновесие, и объекты моментально исчезнут из вида, увлекаемые большим силовым полем. Рис. 20.5. Конус летит вверх, тор вниз. Объединенные с помощью Pin Constraint (Принудительное согласование Булавка), они вынуждены держаться на одном уровне, создавая, таким образом, сложное, но сбалансированное движение
Анимация остается прежней, однако мы придали ей особенный шарм (рис. 20.6). Пламя на конусе и торе - в окнах modeling view (окно Моделирования) оно представлено в виде широко разбрасываемых зеленых сфер - горит сверху и снизу объектов, легко следуя их движению, как хвост кометы. Рис. 20.6. Мы подожгли объекты. При движении огонь создает пылающий хвост
Рис. 20.7. Изменяем цвет пылающего хвоста конуса с оранжевого на голубой Теперь конус сопровождается красивым хвостом из голубого огня (см. рис. 20.8). Наконец, введя три строки программного кода, мы добавим еще один штрих, погашая пламя тора, когда он опускается ниже линии горизонта. Для того чтобы адекватно записать уравнение, вам нужно знать точное имя объекта. Его вы увидите, щелкнув по объекту мышкой, а также в окне Channel Box (Окно Каналов): nurbsTorml.
Рис. 20.8. Отрендеренное изображение в кадре 100 Рис. 20.9. Emission Rate (Интенсивность Испускания) огня - это атрибут источника частиц
Рис. 20.10. Три новые строки программного кода в окне Expression Editor (Редактор Выражений) погасят пламя тора, когда тот опустится ниже линии горизонта. Когда он снова поднимется, введенные строки уже не будут к нему применяться, и пламя зажжется снова
В примерном переводе эти строки означают для MAYA следующее: «Если значение атрибута Translate Y (значение перемещения по оси Y) меньше нуля, убавьте интенсивность испускания до нуля; в противном случае делайте то, что вы обычно делаете». Теперь, при воспроизведении анимации, хвост пламени оторвется от тора, как только тор опускается слишком низко, и появится снова, как только тор поднимается над горизонтом (рис. 20.11). Рис. 20.11. Пылающий хвост отрывается от тора, как только тор опускается слишком низко. Слева - изображение, полученное в результате рендеринга с помощью полупрозрачной Checkerboard (Шахматная доска), служащей поверхностью горизонта А теперь кое-что новенькое. Приходилось ли вам выделять камеру, используя меню View (Вид)? Пончо Как сшить шелковое пончо и набросить его на туловище? Тема:
Используемые техники и инструменты:
До появления Maya Cloth нужно было либо прилагать колоссальные усилия, чтобы одежда трехмерных персонажей выглядела более или менее натурально, либо заключать их в жесткую оболочку, как панцирь насекомых, либо надевать на них амуницию, подобно Ларе Крофт. Теперь же юбки, брюки и рубашки для аниматора не проблема. Пончо - это всего лишь кусок ткани с отверстием для головы - никаких рукавов, никаких пуговиц. То есть это идеальный объект для начала изучения сложного мира цифровой одежды. Модуль Cloth занимает уникальное место в семье Мауа. Сшивая части ткани вместе, мы фактически создаем поверхность; однако вы не найдете Cloth в меню моделирования (клавиша F3). Способ драпировки и более или менее свободного набрасывания тканей на туловище напоминает нам о модуле Soft Body Dynamics (Динамика Мягкого Тела). Но и в меню динамики (клавиша F4) мы не увидим Cloth. Модуль Cloth занимает свое собственное место в левом верхнем углу Maya Unlimited. Модуль Cloth и взаимодействуют с анимацией персонажей весьма не традиционным образом. Программный модуль, который определяет, как одежда себя «чувствует» и как она взаимодействует с телом, которого касается, называется Solver (Решатель). Solver (Решатель) требует времени, для того чтобы оценить конструкцию, придать форму состояния покоя и наложить ее на смоделированную геометрию. Приходится ждать, пока Cloth выполнит инициализационную часть работы, придаст одежде начальную форму, и только по окончании этого этапа работы Решателя мы сможем начать какие-то телодвижения нашего персонажа. После завершения Решателем начальной стадии и начинается симуляция со вполне приемлемой скоростью, а результаты действительно впечатляют. В частности, объекты, созданные с помощью модуля Cloth, не выглядят резиновыми, что очень типично для мягких тел. Модуль Cloth содержит математическое описание уникальных свойств различных материалов, таких, как эластичность и плотность. С помощью Cloth мы можем получить шелк, шерсть и джинсы.
Рис. 21.1. Это туловище состоит из наскоро смоделированных SDS-поверхностей. Вы также можете начать с многоугольников или NURBS-примитивов. Высота туловища (здесь 1,5 единицы) очень важна в этом уроке
В модуле Cloth размер играет важную роль. Представьте, что у вас есть большой кусок ткани и вы хотите сшить из него большое платье для женщины и маленькое для куклы. Хотя вы используете при этом один и тот же материал, маленькое платье на кукле будет сидеть не так, как на женщине, - кукольное платье будет более жестким. Когда вы моделируете персонаж, например туловище, Solver (Решатель) не знает, насколько большим будет этот персонаж. Параметр Solver Scale (Масштаб Решателя), чья задача заключается в координации расположения ткани на смоделированной геометрии, компенсирует эту неопределенность. При моделировании пончо вы захотите отвести торсу пассивную роль. Для этого выберите Actions / Template (Действия / Шаблон) из контекстного меню. Так, вы можете видеть туловище, но не сможете его случайно выделить.
Есть два условия создания одежды: первое условие требует кривых, лежащих в одной плоскости. Второе условие требует кривых, чьи границы образуют замкнутый контур. Создать одежду мы пока не можем, потому что наши окружности удовлетворяют только первому условию. Но очень скоро они сформируют два замкнутых цикла, которые мы сможем использовать для конструирования двух составных частей одежды, а не одного. Итак, мы собираемся разрезать обе окружности пополам и создать две дополнительные прямые линии, которые соединят полуокружности вдоль линии плеч. Это даст нам два замкнутых цикла, из которых мы впоследствии сможем создать две половинки одежды и сшить их вместе.
Рис. 21.2. Разбейте две окружности - по двум точкам каждую Рис. 21.3. Мы получили четыре полуокружности - базовая геометрия для передней и задней части пончо
Рис. 21.4. Две соединительные прямые между полуокружностями позволяют нам создать панель. Стрелки указывают на четыре кривые, выделенные для создания первой панели
Одежда, однако, пока состоит только из половины пончо. Она автоматически увеличится вдвое, как только мы пришьем к ней вторую половину. На этом этапе одежда состоит из 25 полигонов - это недостаточно для сглаженной поверхности. Наконец, когда все готово для анимации, мы зададим разрешение поверхности 1000 многоугольников, для того чтобы получить красивые складки и изгибы. Однако для нашего следующего шага зададим промежуточное значение количества многоугольников.
Рис. 21.5. Сшейте перед и спинку, создав два шва вдоль линии плеч
Эти швы соединяют спинку и перед пончо и автоматически создают garment [Специальная поверхность Maya Cloth. - Примеч. ред. ] из задней панели. Типичная ошибка начинающих - это сшивание не тех частей; например, если вы забудете сшить второй плечевой шов, пончо будет открыто в этом месте, и либо повиснет на одном плече, либо упадет на землю. Итак, все, что вы сделали, - это создали две панели из шести кривых, затем применили команду Create Garment (Создать Одежду) к одной из панелей путем наложения швов и, наконец, пришили получившуюся часть одежды (garment) с помощью шва. Более сложные предметы одежды создаются тем же способом. Это быстрый и интересный путь создания реалистично выглядящей трехмерной одежды. Две поверхности не обязаны соприкасаться друг с другом перед сшиванием, как это было в случае с нашим пончо. Если панели находятся далеко друг от друга, сшивание соединит их, создав дополнительную поверхность между ними. (Урок Cloth Tutorial в документации по Instant Maya предлагает интересные способы создания рубашки и джинсов.) Теперь при воспроизведении анимации пончо упадет и исчезнет благодаря тяготению. Оставьте его ненадолго там и, если хотите, выделите и сделайте невидимыми первоначальные кривые и панели. Они вам больше не понадобятся, но и уничтожать их нельзя.
Рис. 21.6. Два основных фактора, влияющих на падение пончо на туловище, - это Collision Offset (Расстояние до объекта коллизии) и Collision Depth (Глубина проникновения ). Значение, установленное по умолчанию - 1, - слишком велико для туловища, размером в 1 или 2 единицы, и пончо, которое должно бы красиво лечь вокруг шеи
Рис. 21.7. С увеличенным значением параметра Solver Scale (Масштаб Решателя) симуляция выглядит так, как будто наш торс - это тело взрослого человека, а не куклы ( Solver Scale 1)
Рис. 21.8. С уменьшенными значениями параметров коллизии vi увеличенным значением параметра Solver Scale (Масштаб Решателя) пончо красиво падает на туловище. С разрешением всего лишь 300 многоугольников на панель некоторые части ткани проникают в геометрию. Цвет мы получили, наложив стандартную 2D Cloth texture
При внесении такого рода изменений мудро было бы удалить кэш симуляции, перед тем как запустить ее снова. Выберите Simulation / Delete Cache (Симуляция / Удалить Кэш). В противном случае никаких изменений вы не увидите. Кэш симуляции необходим, когда вы заканчиваете работу над симуляцией ткани и начинаете анимацию персонажа. Он записывает данные симуляции на жесткий диск, чтобы Мауа не приходилось делать все с самого начала снова и снова, при воспроизведении анимации. С высоким разрешением пончо выглядит более мягким, а симуляции требуется больше времени для выполнения (рис. 21.9). Но что же это за материал? Мы можем выбрать материю в секции cloth properties (свойства ткани). В ней есть шелк, шерсть, джинсовая ткань и другие. Давайте сошьем наше пончо из тончайшего шелка. Рис. 21.9. При разрешении 1000 полигонов на поверхность пончо превосходно ложится на туловище
Шелковый материал ведет себя еще мягче на туловище. Особенно это заметно при движении тела. В окне Attribute Editor (Редактор Атрибутов) вы найдете физические свойства, обусловившие это поведение, такие, как Bend Resistance (Сопротивление Сгибанию) (чем ниже значение этого параметра, тем большее количество складок вы получите), Thickness (Плотность) (для смоделированного зимнего пальто в противоположность ночной рубашке) и Friction (Трение) (между туловищем и пончо, а также между пончо и пончо). Значение параметра Friction (Трение) для шелка, конечно, значительно ниже, чем для хлопковых тканей. Рис. 21.10. Физические свойства тканей. Мауа предоставляет лишь несколько готовых материалов. Мы нажмем на значок папки, чтобы выбрать шелк Когда вы проанимируете туловище, после того как пончо уютно на нем расположится, пончо будет натурально следовать за движением туловища. По мере движения туловища на пончо будут появляться новые складки, колебания, некоторые части будут растягиваться и собираться. Когда движение туловища будет достаточно быстрым, Air Damping (Демпфирование Воздуха) - атрибут свойства ткани - станет важным фактором. Если хотите, чтобы анимация туловища начиналась в кадре 0 или 1, вместо того чтобы проигрывать кадр за кадром для симуляции, используйте команду Simulation / Start / Stop Simulation (Симуляция / Начать / Закончить Симуляцию). Мауа через некоторое время оденет туловище, не продвигаясь вперед по таймлайну. А теперь кое-что новенькое. Приходилось ли вам смешивать руку из модуля Paint Effects с березой? |
|||||||||
| Последнее обновление ( 14.12.2007 г. ) | |||||||||
| « Пред. |
|---|