Крэш-тест
Как создать симуляцию крэш-теста, в которой автомобиль с водителем внутри разбивается о каменную стену?
Тема:
Динамика.
Используемые техники и инструменты:
Active Rigid Body (Активное Твердое Тедо), Passive Rigid Body (Пассивное Твердое Тело), Gravity (Гравитация).
Настоящие крэш-тесты очень дороги, поскольку в них разбиваются настоящие машины. Моделирование аварий также весьма дорого, но уже по другой причине. В отличие от реальных тестов компьютерную модель можно повторять бесконечное количество раз однако, они требуют очень мощных компьютерных ресурсов. Эти ресурсы необходимы, поскольку тесты имеют дело с еле заметными, крошечными изменениями материалов. Они не только тестируют типы материалов, из которых сделана машина, но также и качество их плавки и соединения. Эластичность - это определяющий фактор для таких тестов. Однако важна и специфичная точка , в которой каждая часть машины теряет эту эластичность и ломается. Когда она ломается, как она ломается? Что случается со сломанными частями, как они воздействуют на окружающие предметы? Начинают ли они цепную реакцию?
Мы не можем ответить на эти вопросы с помощью MAYA. Мы можем скопировать динамические отношения, но область строения материалов нам не доступна. Мы смоделируем крэш-тест только на простейшем уровне. Тем не менее он будет достаточно впечатляющим, чтобы вызвать у вас сочувствие к водителю.
Создайте сцену: улицу, стену, машину, водителя.
Расположите стену вертикально, улицу горизонтально, поместите машину немного выше улицы и посадите водителя в машину (рис. 16.1).
Рис. 16.1.
Минимум затрат на моделирование: стена, улица, машина, пассажир
Для крэш-теста вам не обязательно моделировать что-то очень красивое. Для создания машины достаточно будет использовать полигональный куб, разделенный на три секции вверху. Смаштабируйте машину так, чтобы ее длина составила примерно три клетки сетки. Теперь нам потребуется что-то вроде сиденья, куда можно поместить водителя. Для этого экструдируйте среднюю грань вниз для создания внутренней области машины.
При моделировании водителя используйте NURBS-цилиндр, немного масштабировав его в соответствующих местах (рис. 16.2).
Рис. 16.2.
Твердые тела не должны соприкасаться друг с другом в начале компьютерной модели. Поэтому водителя следует поместить немного над дном внутренней области машины, а машину немного выше улицы. На рисунке вы видите изображение в каркасном виде в окне Side View
Выделите стену и улицу и преобразуйте их в пассивные твердые тела. Для этого нужно нажать F4 и выполнить команду меню Soft/Rigid Bodies / Create Passive Rigid Body (Мягкие/Твердые Тела / Создать Пассивное Твердое Тело). Пассивное в данном контексте означает, что эти объекты будут вести себя так, будто у них твердая оболочка, которой они могут воздействовать на другие объекты, но сами не будут реагировать на воздействия других объектов. Это отражает реальность - стены и улицы совершенно не беспокоят сумасшедшие автомобили.
Выделите водителя и машину и назначьте им обоим одно и то же поле гравитации. Выберите Fields / Gravity (Поля / Гравитация).
При воспроизведении анимации машина занимает свое место на улице, а водитель прямо сидит внутри машины. Это все, что гравитация дает нам на данном этапе, однако это всего лишь начало симуляции.
Убедитесь, что MAYA просчитывает каждый кадр симуляции, вместо того чтобы воспроизводить анимацию в реальном времени, пропуская некоторые кадры. Проверьте опцию Play every Frame (Воспроизводить каждый Кадр) в окне Timeline Preferences (Настройки временной шкалы).
Для того чтобы сделать симуляцию более захватывающей, мы добавим водителю и машине начальную скорость. В реальности это была бы скорость, с которой машина и водитель двигались бы в направлении стены. Она должна быть одинаковой для машины и водителя. Это значение вы можете ввести для обоих объектов сразу в окне Channel Box (Окно Каналов).
Выделите водителя и автомобиль.
В зависимости от направления движения автомобиля задайте для параметров Initial Velocity X или Z (Начальная Скорость по оси X или Z) в окне Channel Box (Окно Каналов) положительное или отрицательное значение 10.
Скажем, длина вашей машины три ячейки сетки. Мы будем считать, что ее длина в реальной жизни 3 метра. Ее Initial Velocity (Начальная Скорость), равная 10, будет соответствовать скорости 10 м/с, или 36 км/ч (около 22 миль/ч). При повторном воспроизведении компьютерной модели оба объекта потеряют немного скорости из-за трения с землей, но в целом они несутся со скоростью 10 единиц в секунду к стене и отскакивают от нее (см. рис. 16.3). Для того чтобы увидеть эту аварию на низкой скорости в реальном времени, вам придется использовать Playblast (Проигрыватель).
Выделите машину и водителя. Увеличьте значение их Initial Velocity (Начальная Скорость) до скорости скоростного шоссе (30 ячеек сетки в секунду). На этой скорости авария выглядит гораздо драматичнее. Для того чтобы добавить реалистичности в нашу симуляцию, давайте отредактируем значение параметра Mass (Масса) ее участников. Как и скорость, масса является атрибутом для Rigid Body (Твердое Тело).
Увеличьте значение параметра Mass (Масса) для машины с 1 до 15 (см. рис. 16.4).
Рис. 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?
Извержение вулкана
Как создать кратер вулкана, выбрасывающий огонь в темную ночь?
Тема:
Динамика, Рендеринг.
Используемые техники и инструменты:
Particles (Частицы), Emit from Surface (Испускать с Поверхности), Turbulence (Турбулентность), Gravity (Гравитация), Fire (Огонь).
Взрывы, извержения и пламя - эти эффекты часто встречаются в кинофильмах. Они обычно отдельно создаются пиротехниками, а потом совмещаются с реальным местом действия. Мы можем моделировать многие из этих спецэффектов в MAYA - от фейерверков до ураганов, - используя частицы, которые подчиняются динамическим законам, и, для того чтобы выглядеть реалистично, от аниматора требуется большой опыт как для задания их физического поведения, так и для текстурирования.
В этом уроке мы затронем основы анимации частиц: создание источника, анимация интенсивности эмиссии, влияние на поведение частиц турбулентности и гравитации. Текстурирование частиц - это отдельное искусство, которое выходит далеко за рамки этого урока. Однако, применяя встроенный в MAYA эффект Fire (Огонь), мы можем получить отличные результаты.
Создайте конус вулкана, либо переместив вниз верхушку NURBS - конуса, либо применив команду Revolve (Вращать) к соответствующей профильной кривой (рис. 17.1).
Рис. 17.1.
Способ моделирования конуса вулкана командой Revolve (Вращать), примененной к профильной кривой
Наложите на вулкан ramp-текстуру, которая начинается с зеленого цвета (окружающий ландшафт), затем становится коричневой (внешняя часть вулкана), а затем и красной (кратер внутри вулкана), как показано на рис. 17.2.
Рис. 17.2.
Ramp-текстура придает цвет вулкану
Нажмите F3, выберите Surfaces / Planar (Поверхности / Планарные) для построения планарной поверхности по одной из изопараметрических кривых внутри кратера.
Эта небольшая поверхность внутри кратера и будет источником частиц. Ее построение невозможно, если изопарма, по которой строится эта поверхность, сама не будет планарна. Благодаря истории построения, планарная поверхность перестроится, если вы измените форму вулкана.
Вам не обязательно видеть построенную планарную поверхность), поэтому можете сделать ее невидимой (клавиши Ctrl+H).
Переключитесь в раздел динамики (клавиша F4).
Выделив планарную поверхность, выберите Particles / Emit from Object (Частицы / Испускать с Поверхности Объекта) (см. рис. 17.3).
Так поверхность превратится в источник частиц, в чем вы сможете убедиться, запустив симуляцию. Частицы выглядят серыми и испускаются источником во всех направлениях. Мы бы хотели, чтобы они вылетали только вверх.
Рис. 17.3.
Планерная поверхность становится источником частиц
В окне Channel Box (Окно Каналов) найдите Emitter Type (Тип Источника) в секции emitterl (рис. 17.4). Поменяйте его значение с Omni (Равнонаправленный) на Surface (С поверхности).
Рис. 17.4.
Частицы не должны покидать источник, разлетаясь во всех направлениях. Мы хотим чтобы они двигались вверх по нормали к поверхности
При воспроизведении анимации вы увидите, что частицы движутся вверх по нормали к поверхности. Если ваши частицы падают вниз, измените направление нормалей поверхности. Нажмите F3, выберите Edit NURBS / Reverse Surface Direction (Редактирование NURBS / Изменить Ориентацию Поверхности). Этот шаг необходим, если, к примеру, у вас есть большая сфера, которая должна испускать частицы внутрь. Нормали поверхности стандартной сферы направлены наружу.
Прямо сейчас равные области поверхности испускают примерно равное количество частиц.Чтобы перемешать их, необходимо подействовать на них каким-то полем, поэтому подвергнем их действию турбулентности.
Воспроизведите несколько кадров анимации до тех пор, пока не появятся частицы. Выделите их. Создайте для них турбулентное поле. Выберите Fields / Turbulence (Поля / Турбулентность).
Поле все еще выделено. Переместите его центр вверх, над вершиной вулкана (рис. 17.5). Поток частиц должен ощутить турбулентность через несколько кадров после своего появления и развития.
Рис. 17.5.
Турбулентное поле начинает перемешивать частицы в момент их появления из кратера
В окне Channel Box ( Окно Каналов) настройте силу поля. Попробуйте значение параметра Magnitude (Величина) 1 или даже меньше. Поле должно лишь слегка перемешивать частицы, не влияя на основное направление их движения.
Теперь частицы движутся беспорядочно, однако они летят прямо вверх. Поэтому далее добавим им немного тяготения. С самого начала поле гравитации будет тянуть их вниз с такой силой, что у них не останется ни малейшего шанса двигаться вверх. Теперь у нас есть две противоборствующие силы, как и в ракетной пусковой установке: сила гравитации против скорости эмиссии.
Этот шаг также подчеркивает разницу между источником и собственно частицами: задача источника - выстрелить частицы с определенной скоростью, определенной плотностью и в определенном направлении. Ему все равно, что случится с частицами после этого. Источник беспокоится только о том, чтобы отправить частицы в путешествие по миру сил.
Выделите частицы и добавьте им гравитацию. Для этого выберите Fields / Gravity (Поля / Гравитация).
Выделите источник (лучше это сделать в окне Outliner (Схема Сцены); его родительским объектом является планарная поверхность) и увеличьте значение для Emission Speed (Скорость Эмиссии).
Создайте анимационный тест инструментом Playblast (Проигрыватель). Выберите Window / Playblast (Окно / Проигрыватель). Если у вас нет супермощного компьютера, вам придется воспользоваться инструментом Playblast, чтобы оценить качество симуляции в реальном времени.
Уменьшайте силу поля гравитации и увеличивайте скорость эмиссии до тех пор, пока частицы не взлетят на приличную высоту над вулканом, перед тем как гравитация захватит их и потянет вниз. Попробуйте значения для Emission Speed (Скорость Эмиссии) - 20 (секция emitter 1-), а для Magnitude (Величина) - 5 (секция gravity 1-) (рис. 17.6).
Рис. 17.6.
Благодаря гравитации частицы не уносятся в бесконечность, а через некоторое время возвращаются на землю
Теперь перемешанный турбулентностью поток частиц вылетает вверх из вулкана и продолжает это движение, пока гравитация не потянет его прямо вниз.
Было бы еще неплохо расширить поток частиц, чтобы они падали не прямо вниз, в жерло вулкана, но также и на землю, по обе его стороны, - как фонтан. Параметр, ответственный за такое падение, называется Tangent Speed (Скорость по Касательной), который является атрибутом источника, а не частиц.
Выделите источник. Измените Tangent Speed (Скорость по Касательной) с О на какое-нибудь небольшое значение, к примеру 0,1 (рис. 17.7).
Рис. 17.7.
При немного увеличенной Tangent Speed (Скорость по Касательной) источник делает поток частиц шире
Когда ширина потока увеличена, огромное количество частиц падает на стороны вулкана и сквозь него. Если вы хотите, чтобы при столкновении с землей они исчезали, будто бы угасая, то вы должны связать их с поверхностью, используя команду меню Particles / Make Collide (Частицы / Задействовать Столкновение). Есть один изящный и естественный способ - не позволять слишком большому количеству частиц достигать поверхности и проваливаться сквозь нее. Сейчас наши частицы живут вечно. Но мы можем уменьшить время их жизни.
Откройте Attribute Editor (Редактор Атрибутов) для particle 1. В секции Lifespan Attributes (Атрибуты Периода Существования) измените режим Lifespan Mode (Режим Периода Существования) с Live Forever (Вечно) на Random Range (Случайный Диапазон). Это активизирует поле входных данных (см. рис. 17.8).
Рис. 17.8.
Частицы исчезнут через четыре секунды, плюс -минус полсекунды
Введите значение 4 для атрибута Lifespan и установите Lifespan Random (Границы случайного отклонения от среднего значения времени жизни) (стандартное отклонение от заданного значения Lifespan) на 0,5.
Теперь период существования каждой частицы перед исчезновением будет составлять случайно выбранное число от 3,5 до 4,5 с.
В природе извержения редко бывают равномерными. Они начинаются с нуля, когда ничего не происходит, затем в течение нескольких мгновений происходит высокий выброс большого количества частиц, а потом достигается равновесие потока на несколько меньшей высоте.
Ключевым параметром ( и атрибутом источника) для достижения этого эффекта является Rate (Интенсивность) испускания.
Выделите источник. На временной шкале идите в кадр (не слишком близко к началу анимации), где извержение достигает равновесия. Щелкните правой кнопкой мыши на параметр Rate (Интенсивность) и установите здесь ключевой кадр. Для этого выполните команду Key Selected (Сделать ключевыми выделенные атрибуты).
Вернитесь в тот момент, когда извержение только начинается. Увеличьте значение параметра Rate (Интенсивность) для источника вдвое и установите еще один ключевой кадр.
Вернитесь на 10 кадров назад (треть секунды). Уменьшите значение Rate (Интенсивность) до 0 и установите третий ключ (см. рис. 17.9).
Теперь вулкан ведет себя очень тихо, прежде чем начать внезапное извержение. Затем он немного замедляет извержение до уровня средней интенсивности. Используя 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 (Огонь). Сначала мы создадим огонь и назначим его вид частицам вулкана. Эта процедура не только сэкономит время, но и позволит вам изучить шейдер огня, так что в дальнейшем вы сможете модифицировать его исходя из собственных нужд.
Выделите пленарную поверхность, которая служит источником частиц.
Зажгите ее. Нажмите F4, выберите Effects / Create Fire (Эффекты / Создать Огонь) (рис. 17.12).
Рис. 17.12.
Команда Create Fire ( Создать Огонь) добавляет огненные частицы к уже имеющимся частицам вулкана
При воспроизведении анимации вы увидите маленький огонь внутри вулкана,
прежде чем начнется запрограммированное вами извержение. В окне modeling view (окно Моделирования) он зеленого цвета, в окне рендеринга огонь принимает вид настоящего пламени (рис. 17.13). В Hypershader рядом с particleCloud 1 вы увидите шейдер для огня partideCloud 2.
Рис. 17.13. Перед извержением вулкана огонь уже горит в кратере. Слева - вид Perspecrive View (Вид Перспективы), справа - окно рендеринга
Выделите частицы вулкана.
Откройте Hypershader. Найдите particleCloud 2, шейдер огня. Щелкните правой кнопкой мыши и выберите команду Assign Material to Selection (Назначить Материал Выделенным Объектам) для применения его к частицам (рис. 17.14).
Рис. 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 (Свечение). Если вас заинтересовала динамика огня, добавьте дополнительные поля и поиграйте с ними, с атрибутами частиц и источника.
А теперь кое-что новенькое. Можете ли вы построить ухо по трем кривым?
Пусть они улягутся
Как разместить несколько объектов на волнистой поверхности, чтобы они «прилипли» к ней?
Тема:
Динамика.
Используемые техники и инструменты:
Sculpt Surface Tool (Создание рельефа на NURBS-поверхности), Rigid Body Dynamics (Динамика Твердого Тела), Gravity (Гравитация).
Очень мало поверхностей имеет по-настоящему плоскую форму. Даже полы в новом здании имеют неровности, особенно заметные по краям ковра. Размещение на их неровной поверхности каких-нибудь объектов в трехмерной графике всегда вызывает затруднения. Много времени уходит на операции перемещения и вращения объектов, пока они действительно красиво лягут на землю, а не зависнут над ней и не погрузятся внутрь. При использовании динамики твердого тела эта проблема решается мгновенно. И не потребуется ни единого перемещения!
Мы преобразуем объекты, которые хотим разместить на поверхности в твердые тела, и позволим им упасть под действием гравитации. Они лягут очень натурально, именно так, как нам это нужно.
Создайте плоскость с достаточно плотной геометрией для осуществления на ней мелких деформаций (рис. 18.1).
Рис. 18.1.
Поверхность плотностью 20x20 патчей...
Откройте окно настроек, выбрав Edit NURBS / Sculpt Surface Tool (Редактирование NURBS / Создание рельефа на NURBS-поверхности). Если ваша поверхность представляет собой полигональную плоскость, выберите Edit Polygons / Sculpt Polygons Tool (Редактирование Многоугольников / Создание рельефа на полигональной поверхности).
Используя кисть модуля Artisan, деформируйте поверхность так, чтобы она стала волнистой (рис. 18.2).
Рис. 18.2. ...деформируем с помощью кисти модуля Artisan
Создайте несколько NURBS-примитивов либо импортируйте объекты предыдущих проектов. Если вы попробуете разместить эти объекты на поверхности, то увидите, насколько сложно найти точку, в которой они не утопают в поверхности и не зависают над ней (рис. 18.3). Даже когда вы найдете эту точку, объект не лежит в ней естественно, он выглядит очень неуклюже, так, будто вот-вот соскользнет с поверхности.
Для того чтобы исправить этот дефект, вам бы пришлось иметь дело с опорными точками и крошечными поворотами, которые занимают много времени.
Рис. 18.3.
Куб размещен вручную. Сложно найти точку, в которой он естественно лежал бы на поверхности. В данном случае он проникает в поверхность по крайней мере в двух точках
Переместите объекты так, чтобы они лежали немного над поверхностью (рис. 18.4).
Рис. 18.4.
Стартовая позиция симуляции. Четыре объекта расположены над поверхностью и сейчас упадут на нее
Преобразуйте плоскость в пассивное твердое тело. Нажмите F4, выберите Soft/Rigid Bodies / Create Passive Rigid Body (Мягкие/Твердые Тела / Создать Пассивное Твердое Тело) (рис. 18.5).
Рис. 18.5.
Земля заявлена как пассивное твердое тело и теперь может участвовать в симуляции
Как вы, наверное, помните из предыдущей главы о крэш-тесте, преобразование поверхности в пассивную означает, что она будет твердой для падающих объектов и не изменится при соприкосновении с ними.
Выделите все объекты над землей и назначьте им гравитацию. Для этого выберите Fields / Gravity (Поля / Гравитация) (рис. 18.6).
Рис. 18.6.
Сила гравитации влияет на объекты. Они становятся активными твердыми телами и готовы к падению
Добавив гравитацию, мы убиваем сразу двух зайцев: она преобразует каждый объект в активное твердое тело и связывает их с полем тяготения, которое потянет их вниз со скоростью 9,8 м/с .
Воспроизведите анимацию (рис. 18.7).
Рис. 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.10.
Все объекты естественно расположены на поверхности
Остановите симуляцию и прекратите существование объектов как твердых тел. Для этого выберите Edit / Delete by Type / Rigid Bodies (Редактирование / Удалить в зависимости от Типа / Твердые Тела). Эта команда удаляет все твердые тела, вам даже не нужно их выделять.
Используя такой подход, вы можете не только расположить несколько предметов один рядом с другим на поверхности, но и позволить им падать друг на друга, складываясь в пирамиду. рис. 18.11 демонстрирует размещение 2001 полигонального куба на плоской поверхности. Симуляция, использованная для этого, в действительности состоит из нескольких симуляций с сотней или около того кубов в каждой. Большую симуляцию из 2001 кубов не выдержал бы никакой центральный процессор персонального компьютера. Кроме того, более мелкие симуляции позволяют вам эффективнее контролировать область размещения - большая она или маленькая, размещение объектов контролируется динамическими законами.Размещение кубов один на другой либо один около другого вручную заняло бы у вас целый день.
Рис. 18.11.
Хаос из 2001 куба после нескольких динамических симуляций (из анимации для детского телевидения Германии)
А теперь кое-что новенькое. Приходилось ли вам вызывать и убирать окно Outliner (Схема Сцены) всего лишь двумя щелчками мышки (используя значок в верхней правой части экрана)? [В правой верхней части экрана нет иконки для Outliner. - Примеч. ред. ]
Атака частиц
Как создать спиральную туманность, атакующую мою камеру (а затем исчезающую в космосе)?
Тема:
Динамика.
Используемые техники и инструменты:
Emitter (Источник), Expressions (Выражения), Particle Goal (Цель Частиц), Goal Weighting (Целевой Вес), Particle Cloud (Тип Частиц Облако).
Движение частиц определяется силовыми полями, такими, как, например, гравитация и турбулентность. Именно в этом сочетании они чаще всего используются. Частицы также направляются целями - ими может быть что угодно, от сферы до кривой со свойствами мягкого тела или камеры. В этом уроке мы используем Particle Goal (Цель Частиц), для того чтобы приманить вихревой поток облаков к нашей камере. Мы немного драматизируем сцену: спиральная туманность медленно найдет нашу камеру, устремится к ней, закружится вокруг и, наконец, исчезнет.
Создайте пушку для частиц. Нажмите F5, выберите Particles / Create Emitter (Частицы / Создать Источник) (рис. 19.1).
Рис. 19.1.
Частицы, испускаемые из начала координат во всех направлениях
В окне Timeline Preferences (Настройки временной шкалы) установите Playback Speed (Скорость Воспроизведения) на значение Play every Frame (Воспроизводить Каждый Кадр).
Запустите симуляцию.
Параметр Play every Frame (Воспроизводить Каждый Кадр) очень важен: мы не хотим пропусков в шагах симуляции при работе модуля динамики MAYA.
Затем мы создадим локатор, движущийся вокруг камеры при ее движении. Локаторы - это объекты, которые не визуализируются, как вы, наверное, помните из главы 8.
Идите в начало анимации к сцене без частиц.
Создайте новую камеру и локатор.
Разместите локатор над камерой.
В режиме Insert mode (Режим редактирования опорной точки) передвиньте опорную точку локатора к центру камеры, который совпадает с началом координат сцены (рис. 19.2).
Рис. 19.2.
Передвиньте опорную точку локатора к центру камеры. Вы можете привязать его к сетке в центре координат сцены
Переместив таким образом опорную точку, вы сможете вращать локатор вокруг камеры.
Вы можете воспользоваться ключевыми кадрами для вращения, но более изящный способ - написать простое выражение.
В окне Channel Box (Окно Каналов) нажмите на Rotate Z (Вращение по оси Z). Используя контекстное меню правой кнопки мышки, откройте Expression Editor (Редактор Выражений).
Используя среднюю кнопку мышки, скопируйте строку locatorl .rotateZ из поля Selected Obj and Attr и вставьте ее в пустое поле снизу.
Завершите выражение вводом = frame (см. рис. 19.3).
Активизируйте выражение, нажав Create (Создать).
Сверните окно Expression Editor (Редактор Выражений) и воспроизведите анимацию.
Рис. 19.3.
Зависимое от времени уравнение заставит локатор медленно кружить вокруг начала координат сцены
Вот что должно произойти: источник разбрасывает частицы во всех направлениях, а локатор медленно вращается вокруг камеры. Давайте заставим его вращаться быстрее.
Откройте снова окно Expression Editor (Редактор Выражений) и отредактируйте существующее выражение, умножив переменную frame на 10. Нажмите Edit (Редактирование) для сохранения изменений.
Выражение
locatorl .rotateZ =10*frame увеличивает скорость вращения в 10 раз. Если вы теперь передвинете камеру, локатор будет продолжать вращаться вокруг начала координат сцены, а не вокруг центра камеры. Мы должны сделать его дочерним объектом по отношению к камере.
Выделите локатор, затем камеру и нажмите клавишу Р.
Последний шаг заставляет локатор следовать за камерой, куда бы она ни двигалась и ни поворачивалась. Попробуйте теперь подвигать камеру. Теперь мы будем привлекать частицы, но не к камере, а к локатору.
Выделите частицы, вслед за ними - локатор.
Привлеките частицы к локатору. Для этого выберите Particles / Goal (Частицы / Цель) (см. рис. 19.4).
Просмотрите анимацию в окне Perspective View (Вид Перспективы) и в окне Camera View (Вид сквозь Камеру).
Через камеру кажется, что поток частиц атакует нас, а затем кружит вокруг. Окно Perspective View (Вид Перспективы) показывает, что на самом деле частицы залетают далеко за камеру.
Причиной такого перелета являются весовые коэффициенты частиц по отношению к их цели. Сейчас это все имеет среднюю величину, но мы это исправим.
Рис. 19.4.
Локатор будет служить целью для частиц
Выделите частицы (не источник) и в окне Channel Box (Окно Каналов) найдите атрибут Goal Weight [0] (Целевой Вес [0]).
Идите в кадр 100 анимации.
Уменьшите значение атрибута Goal Weight [0] (Целевой Вес [0]) до 0 (рис. 19.5).
Рис. 19.5.
Атрибуты частиц в окне Channel Box (Окно Каналов). Атрибут Goal Weight [0] (Целевой Вес [0]) определяет, насколько точно частицы следуют по пути движения мишени
Используя контекстное меню, установите ключевой кадр для этого значения.
Идите в кадр 300.
Увеличьте значение Goal Weight [0] (Целевой Вес [0]) до 0,2 и установите еще один ключ.
Теперь частицы разбрызгиваются во всех направлениях на протяжении 100 кадров, затем они устремляются к локатору и кружат вокруг камеры (рис. 19.6 - 19.10). Теперь сквозь объектив камеры анимация выглядит гораздо более драматично.
Рис. 19.6.
Частицы вылетают из источника во всех направлениях...
Рис. 19.7.
...пока их не привлечет камера...
Рис. 19.8.
...они в форме ядра устремляются к локатору, который непрерывно вращается вокруг камеры...
Рис. 19.9.
... они ослепляют камеру...
Рис. 19.10.
...а затем залетают за свою мишень и возвращаются
Создайте анимацию движения камеры между кадрами 50 и 400.
Просмотрите анимацию через камеру.
Чтобы еще более драматизировать анимацию, в окне Graph Editor (Редактор Анимационных Кривых) задайте касательным анимационной кривой атрибута Goal Weight [0] (Целевой Вес [0]) тип flat (горизонтальные). Теперь смена направления движения будет мягче начинаться и заканчиваться. Если значение атрибута Goal Weight [0] (Целевой Вес [0]) ниже 0,1, его действие незаметно, поэтому, может быть, вам стоит установить еще один ключевой кадр для более быстрого перехода с 0 до установленного значения. Вы можете вставить ключ в окне Graph Editor (Редактор Анимационных Кривых).
Теперь переключим наше внимание на внешний вид частиц, с тем чтобы они визуализировались не как точки.
В Окне Attribute Editor (Редактор Атрибутов) для частиц откройте секцию Render Attributes (Атрибуты Рендеринга).
Измените Particle Render Type (Тип Рендеринга Частиц) с Points (Точка) на Cloud (s\w) (Облако) (рис. 19.11).
Рис. 19.11.
Тип частиц изменен с Points (Точка) на Cloud (s\w) (Облако)
Визуализируйте вид сквозь камеру (рис. 19.12).
Рис. 19.12.
Вид спиральной туманности, состоящей из облака сфер, сквозь объектив камеры
Если в результате рендеринга вы видите просто голубой экран, скорее всего, у вас слишком много частиц большого размера, которые расположены слишком близко к камере. Частицы нельзя масштабировать по отдельности, вам придется работать с ними как с одним целым. И прежде чем вы начнете этим заниматься, попробуйте увеличить их прозрачность. Созданный шейдер particleCloud имеет по умолчанию значение прозрачности 0,5 (см. в главе 17 о шейдинге облака частиц при извержении вулкана).
Щелкните правой кнопкой мыши по частицам и выберите Materials / Material Attributes (Материалы / Атрибуты Материала). Так вы откроете Attribute Editor (Редактор Атрибутов) для шейдера частиц.
В окне Attribute Editor (Редактор Атрибутов) нажмите на вкладку particleCloud 1 (рис. 19.13).
Поменяйте его цвет и прозрачность.
Рис. 19.13.
Используя контекстное меню, откройте Attribute Editor (Редактор Атрибутов) для шейдера particleCloud. Поменяйте его цвет с голубого на желтый и увеличьте прозрачность. Теперь объект в центре сцены становится видимым сквозь густую желтую спиральную туманность
Создайте объект-ссылку (только для расположения текстуры) в центре координат сцены.
Визуализируйте вид сквозь камеру.
Вы также можете наложить текстуру на цвет, прозрачность и другие атрибуты материала с помощью ramp-текстур. Incadescence (Самосветимость) - это важный атрибут шейдинга частиц. Он заставляет их светиться. Как только вас устроит вид частиц, вы можете отрегулировать движение облака частиц.
Как насчет небольшой (анимированной) турбулентности?
Давайте добавим немного нерешительности поведению частиц. Пусть они потеряют интерес к камере, привлеченные другой целью.
Создайте второй локатор, который будет служить конечной целью для частиц.
Поместите локатор в точку, которую будет видно из камеры в конце анимации, но достаточно далеко от нее.
Выделите частицы, затем новый локатор и создайте вторую цель. Выберите Particles / Goal (Частицы / Цель).
Две цели для одной группы частиц звучит противоречиво. Однако это как раз то, что делает цели гибкими. Мы можем задать силу влияния каждой цели, изменяя ее вес, и таким образом анимировать путь движения частиц просто и эффективно.
Сейчас частицы больше не приближаются к камере. Основной параметр, который изменил их поведение, - это вес новой цели, который вы можете увидеть в окне Channel Box (Окно Каналов): Goal Weight [1] (Целевой Вес [1]). Этот атрибут определяет, насколько точно частицы следуют за новым локатором. Поскольку сейчас это значение установлено на 0,5, частицы, находясь под его влиянием, уносятся от камеры к средней точке между первым и вторым локатором.
Идите в кадр 400.
Выделите частицы.
Установите Goal Weight [1] (Целевой Вес [1]) второго локатора на 0 и установите здесь ключевой кадр.
Идите в кадр 500.
Задайте еще один ключ для Goal Weight [1] (Целевой Вес [1]) со значением 0,5.
Теперь через 10 с частицы теряют интерес к камере и устремляются ко второму локатору - невидимой далекой цели. Наш полет может спокойно продолжаться.
А теперь кое-что новенькое. Приходилось ли вам искать Instant Maya через клавишу F1?
Толкаем вверх, тянем вниз
Как анимировать два связанных между собой объекта, один из которых должен двигаться вверх, а другой при этом падать?
Тема:
Динамика.
Используемые техники и инструменты:
Dynamic Constraints (Динамические Ограничения), Gravity (Гравитация), Fire (Огонь), Particle Cloud (Облако Частиц), Expressions if...Else (Условные Выражения).
Мы чувствуем себя легче в воде не из-за уменьшения силы тяготения, а потому, что существует противоположная сила, которая выталкивает нас вверх. Эта плавучесть в действительности обусловливается массой тела и плотностью и объемом вытесненной нашим телом жидкости. Все это может быть симулировано в трехмерной анимации, просто путем использования поля гравитации, работающего в противоположном направлении. Механически соединив два объекта с конфликтующими силовыми полями (одно толкает вверх, другое тянет вниз), мы получим в результате движение настолько сложное, что эту сложность невозможно получить с помощью обычной анимации по ключевым кадрам. В этом уроке мы создадим такую ситуацию и немного насладимся нашей работой, глядя на конфликт полей. Затем подожжем оба объекта, заставим первый объект гореть голубым пламенем, а второй погаснуть, когда он опустится ниже линии горизонта в воду.
Создайте два объекта: тор и конус.
Расположите их рядом друг с другом.
Выделите оба объекта и откройте окно настроек. Нажмите F4, выберите Soft/Rigid Bodies / Create Constraint Option box (Мягкие/Твердые Тела / Создать принудительное согласование Окно Настроек) (рис. 20.1).
В выпадающем меню выберите Pin (Булавка) в качестве Constraint Type (Тип принудительного согласования) и выполните команду.
Рис. 20.1.
Принудительное согласование объединит тор и конус
Переместите немного Pin Constraint (Принудительное согласование Булавка) вверх и в сторону (рис. 20.2). Это добавит движению дополнительный поворот, когда начнется симуляция.
Рис. 20.2.
Перед началом симуляции переместите Pin Constraint (Принудительное согласование Булавка) немного вверх и в сторону
Принудительное согласование типа Nail (Гвоздь), кстати, не является альтернативой для Pin Constraint (Принудительное согласование Булавка). Nail (Гвоздь) работает только с одним объектом, как гвоздь в рамке для картины, мы
же скрепляем два объекта [Имеется в виду, что Nail Constraint позволяет прикрепить объект к какой-то точке в пространстве, «прибить гвоздем», Pin Constraint позволяет скрепить два объекта друг с другом - Примеч. ред. ]. При воспроизведении анимации на этом этапе вы ничего не увидите, поскольку ни на тор, ни на конус не воздействуют никакие силы.
Выделите тор и добавьте к нему гравитацию. Для этого выберите Fields / Gravity (Поля / Гравитация).
При воспроизведении анимации вы увидите, как тор стремительно уносится вниз, увлекая за собой конус, на который не действует ни одно силовое поле (рис. 20.3).
Выделите конус и тоже добавьте к нему гравитацию.
Рис. 20.3.
Тор падает под влиянием гравитации и тянет за собой в бесконечность конус, на который не действуют никакие поля
В окне Channel Box (Окно Каналов) измените значение атрибута Magnitude (Величина) нового поля тяготения с 9,8 на-9,8 (см. рис. 20.4).
Рис. 20.4.
Второе, развернутое в противоположном направлении поле тяготения поднимает конус вверх
Теперь тор продолжает тянуть оба объекта вниз, а конус старается поднять их вверх - в результате мы получаем сложное движение пары (рис. 20.5). Если вы хоть немного усилите одно из полей тяготения, движение потеряет равновесие, и объекты моментально исчезнут из вида, увлекаемые большим силовым полем.
Рис. 20.5.
Конус летит вверх, тор вниз. Объединенные с помощью Pin Constraint (Принудительное согласование Булавка), они вынуждены держаться на одном уровне, создавая, таким образом, сложное, но сбалансированное движение
Выделите тор и зажгите его. Для этого выберите Effects /.Create Fire (Эффекты / Создать Огонь).
Выделите конус и тоже зажгите его.
В окне Channel Box (Окно Каналов) измените значение атрибута Fire Direction Y (Направление Огня по оси Y) для конуса с 1 на -1.
Анимация остается прежней, однако мы придали ей особенный шарм (рис. 20.6). Пламя на конусе и торе - в окнах modeling view (окно Моделирования) оно представлено в виде широко разбрасываемых зеленых сфер - горит сверху и снизу объектов, легко следуя их движению, как хвост кометы.
Рис. 20.6.
Мы подожгли объекты. При движении огонь создает пылающий хвост
В окне Hypershader найдите материал пламени конуса. Его имя particleCloud3.
Номер 3 в имени рarticleCloud3, кстати, обусловлен тем, что в каждой новой сцене Мауа создается шейдер Облака Частиц и он, по умолчанию, имеет имя particleCloudl. В действительности же это второе созданное нами облако частиц [Когда мы применяем эффект огонь, мы, помимо всего прочего, создаем систему частиц типа particle cloud и создаем для нее новый экземпляр шейдера. Поскольку один шейдер (с номером 1) создается автоматически при создании новой сцены, то новые шейдеры (а мы дважды применили эффект огонь и, следовательно, создали два шейдера) будут иметь порядковые номера 2 и 3. - Примеч. ред. ].
В окне Attribute Editor (Редактор Атрибутов) для particleCloud 3 найдите атрибуты Color (Цвет) и Incandescence (Самосветимость). К обоим атрибутам присоединены ramp-текстуры. Измените красные цвета текстуры на голубые (рис. 20.7).
Рис. 20.7.
Изменяем цвет пылающего хвоста конуса с оранжевого на голубой
Теперь конус сопровождается красивым хвостом из голубого огня (см. рис. 20.8).
Наконец, введя три строки программного кода, мы добавим еще один штрих, погашая пламя тора, когда он опускается ниже линии горизонта. Для того чтобы адекватно записать уравнение, вам нужно знать точное имя объекта. Его вы увидите, щелкнув по объекту мышкой, а также в окне Channel Box (Окно Каналов): nurbsTorml.
Выделите огонь тора и откройте для него Attribute Editor (Редактор Атрибутов) (см. рис. 20.9). Щелкните мышкой по вкладке emitterl и найдите поле Rate (Particle/Sec).
Этот атрибут определяет, сколько частиц пламени вылетит из конуса в единицу времени.
Значение атрибута по умолчанию запрограммировано в эффекте огня.
Рис. 20.8.
Отрендеренное изображение в кадре 100
Рис. 20.9.
Emission Rate (Интенсивность Испускания) огня - это атрибут источника частиц
Щелкните правой кнопкой мыши по атрибуту Emission Rate (Интенсивность Испускания), для того чтобы открыть Expression Editor (Редактор Выражений).
Здесь вы увидите несколько строк программы, которые определяют динамику выброса огня. Мы не будем менять эти сложные выражения, а просто кое-что добавим в самом их начале. Наше добавление изменит интенсивность испускания огня до нуля, когда тор погрузится ниже линии горизонта (когда значение его атрибута Translate Y (Значение перемещения по оси Y) будет меньше нуля).
Для записи новых строчек вам нужно знать полные имена для значений перемещения по оси Y и интенсивности испускания. Значение перемещения по оси Y объекта nurbsTorusl - nurbsTorusl.translateY. Полное имя для интенсивности испускания вы можете найти в первой строке уже существующего выражения; это emitter!.rate.
Добавьте следующие три строки перед уже существующими выражениями (рис. 20.10). Не забудьте о точке с запятой:
if (nurbsTorusl.translateY < 0)
emitterl.rate = 0;
else.
Рис. 20.10.
Три новые строки программного кода в окне Expression Editor (Редактор Выражений) погасят пламя тора, когда тот опустится ниже линии горизонта. Когда он снова поднимется, введенные строки уже не будут к нему применяться, и пламя зажжется снова
С этого места выражение продолжится исходным кодом. Введите изменения, нажав кнопку Edit (Редактирование).
В примерном переводе эти строки означают для MAYA следующее: «Если значение атрибута Translate Y (значение перемещения по оси Y) меньше нуля, убавьте интенсивность испускания до нуля; в противном случае делайте то, что вы обычно делаете».
Теперь, при воспроизведении анимации, хвост пламени оторвется от тора, как только тор опускается слишком низко, и появится снова, как только тор поднимается над горизонтом (рис. 20.11).
Рис. 20.11.
Пылающий хвост отрывается от тора, как только тор опускается слишком низко. Слева - изображение, полученное в результате рендеринга с помощью полупрозрачной Checkerboard (Шахматная доска), служащей поверхностью горизонта
А теперь кое-что новенькое. Приходилось ли вам выделять камеру, используя меню View (Вид)?
Пончо
Как сшить шелковое пончо и набросить его на туловище?
Тема:
Ткани, Динамика.
Используемые техники и инструменты:
Maya Cloth (Maya ткани).
До появления Maya Cloth нужно было либо прилагать колоссальные усилия, чтобы одежда трехмерных персонажей выглядела более или менее натурально, либо заключать их в жесткую оболочку, как панцирь насекомых, либо надевать на них амуницию, подобно Ларе Крофт. Теперь же юбки, брюки и рубашки для аниматора не проблема. Пончо - это всего лишь кусок ткани с отверстием для головы - никаких рукавов, никаких пуговиц. То есть это идеальный объект для начала изучения сложного мира цифровой одежды.
Модуль Cloth занимает уникальное место в семье Мауа. Сшивая части ткани вместе, мы фактически создаем поверхность; однако вы не найдете Cloth в меню моделирования (клавиша F3). Способ драпировки и более или менее свободного набрасывания тканей на туловище напоминает нам о модуле Soft Body Dynamics (Динамика Мягкого Тела). Но и в меню динамики (клавиша F4) мы не увидим Cloth. Модуль Cloth занимает свое собственное место в левом верхнем углу Maya Unlimited.
Модуль Cloth и взаимодействуют с анимацией персонажей весьма не традиционным образом. Программный модуль, который определяет, как одежда себя «чувствует» и как она взаимодействует с телом, которого касается, называется Solver (Решатель). Solver (Решатель) требует времени, для того чтобы оценить конструкцию, придать форму состояния покоя и наложить ее на смоделированную геометрию. Приходится ждать, пока Cloth выполнит инициализационную часть работы, придаст одежде начальную форму, и только по окончании этого этапа работы Решателя мы сможем начать какие-то телодвижения нашего персонажа. После завершения Решателем начальной стадии и начинается симуляция со вполне приемлемой скоростью, а результаты действительно впечатляют. В частности, объекты, созданные с помощью модуля Cloth, не выглядят резиновыми, что очень типично для мягких тел. Модуль Cloth содержит математическое описание уникальных свойств различных материалов, таких, как эластичность и плотность.
С помощью Cloth мы можем получить шелк, шерсть и джинсы.
Создайте модель туловища, либо его упрощенную форму (см. рис. 21.1).
Самый простой способ - это начать с NURBS-сферы и вытянуть из нее два обрубка для изображения рук и один для шеи. Что касается Мауа 4, модуль
Cloth может работать с SDS-поверхностями. Именно эта технология используется в наших иллюстрациях. Вы могли бы использовать и полигональный подход - пара экструдов и команда Polygons / Smooth (Многоугольники / Сглаживание) (см. главу 10 для освежения этого в памяти).
Рис. 21.1.
Это туловище состоит из наскоро смоделированных SDS-поверхностей. Вы также можете начать с многоугольников или NURBS-примитивов. Высота туловища (здесь 1,5 единицы) очень важна в этом уроке
Отмасштабируйте готовый торс так, чтобы его ширина и высота были в пределах между 1 и 2 ячейкой сетки.
В модуле Cloth размер играет важную роль. Представьте, что у вас есть большой кусок ткани и вы хотите сшить из него большое платье для женщины и маленькое для куклы. Хотя вы используете при этом один и тот же материал, маленькое платье на кукле будет сидеть не так, как на женщине, - кукольное платье будет более жестким. Когда вы моделируете персонаж, например туловище, Solver (Решатель) не знает, насколько большим будет этот персонаж. Параметр Solver Scale (Масштаб Решателя), чья задача заключается в координации расположения ткани на смоделированной геометрии, компенсирует эту неопределенность.
При моделировании пончо вы захотите отвести торсу пассивную роль. Для этого выберите Actions / Template (Действия / Шаблон) из контекстного меню. Так, вы можете видеть туловище, но не сможете его случайно выделить.
В окне Top View (Вид Сверху) создайте две концентрические NURBS-окруж- ности.
Передвиньте обе окружности вверх вместе, чтобы они располагались немного выше плеч туловища. Передвигать окружности вместе следует затем, чтобы они все время оставались в одной плоскости.
Увеличьте в размере внешнюю окружность. Это будет край ткани, покрывающей туловище.
Уменьшите внутреннюю окружность настолько, чтобы она плотно облегала шею.
Есть два условия создания одежды: первое условие требует кривых, лежащих в одной плоскости. Второе условие требует кривых, чьи границы образуют замкнутый контур. Создать одежду мы пока не можем, потому что наши окружности удовлетворяют только первому условию. Но очень скоро они сформируют два замкнутых цикла, которые мы сможем использовать для конструирования двух составных частей одежды, а не одного. Итак, мы собираемся разрезать обе окружности пополам и создать две дополнительные прямые линии, которые соединят полуокружности вдоль линии плеч. Это даст нам два замкнутых цикла, из которых мы впоследствии сможем создать две половинки одежды и сшить их вместе.
Используйте контекстное меню или нажмите клавишу F8 для отображения Edit Points (Точки Редактирования) на обеих окружностях.
Выделите все четыре редактируемые точки над плечами туловища (см. рис. 21.2).
Разрежьте обе окружности по этим точкам. Нажмите F3, выберите Edit Curves / Detach Curves (Редактирование Кривых / Разъединить Кривые) (см. рис. 21.3).
Соедините точки разделения двумя прямыми линиями, используя инструменты ЕР Curve Tool (Построение кривой по редактируемым точкам) и Curve Snapping (Прилипание к кривой) (клавиша С).
Активизируйте меню Cloth в верхней левой части экрана.
Выделите две передние полуокружности и обе новые прямые линии (порядок выделения не имеет значения).
Рис. 21.2.
Разбейте две окружности - по двум точкам каждую
Рис. 21.3.
Мы получили четыре полуокружности - базовая геометрия для передней и задней части пончо
Создайте панель из полученных замкнутых кривых. Выберите Cloth / Create Panel (Ткани / Создать Панель) (рис. 21.4).
Рис. 21.4.
Две соединительные прямые между полуокружностями позволяют нам создать панель. Стрелки указывают на четыре кривые, выделенные для создания первой панели
Выделите обе задние полуокружности плюс две прямые линии и создайте из них вторую панель.
Панель Cloth - это предварительное состояние одежды, которое не может быть визуализировано. Если вы запустите симуляцию ткани сейчас, с панелью ничего не произойдет. Нам нужно преобразовать ее в одежду, которая может быть визуализирована и которая фактически упадет на туловище.
Выделите одну из двух панелей и создайте из них первую половину одежды: выберите Cloth / Create Garment (Ткани / Создать Одежду).
Одежда, однако, пока состоит только из половины пончо. Она автоматически увеличится вдвое, как только мы пришьем к ней вторую половину.
На этом этапе одежда состоит из 25 полигонов - это недостаточно для сглаженной поверхности. Наконец, когда все готово для анимации, мы зададим разрешение поверхности 1000 многоугольников, для того чтобы получить красивые складки и изгибы. Однако для нашего следующего шага зададим промежуточное значение количества многоугольников.
В окне Channel Box (Окно Каналов) увеличьте Base Resolution (Базовое Разрешение) cpStitcher с 25 до 300.
Теперь самое время для сшивания. Я люблю шить, особенно сложные части одежды. Двух швов вдоль линии плеч будет вполне достаточно. Используйте маску выбора для дезактивации поверхности ткани. Так вы не сможете нечаянно ее выделить.
Выделите одну из двух прямых линий над плечами.
Создайте по ним шов. Выберите Cloth / Create Seam (Ткани / Создать Шов) (рис. 21.5).
Рис. 21.5.
Сшейте перед и спинку, создав два шва вдоль линии плеч
Выделите вторую прямую линию и также создайте вдоль нее шов.
Эти швы соединяют спинку и перед пончо и автоматически создают garment [Специальная поверхность Maya Cloth. - Примеч. ред. ] из задней панели. Типичная ошибка начинающих - это сшивание не тех частей; например, если вы забудете сшить второй плечевой шов, пончо будет открыто в этом месте, и либо повиснет на одном плече, либо упадет на землю.
Итак, все, что вы сделали, - это создали две панели из шести кривых, затем применили команду Create Garment (Создать Одежду) к одной из панелей путем наложения швов и, наконец, пришили получившуюся часть одежды (garment) с помощью шва.
Более сложные предметы одежды создаются тем же способом. Это быстрый и интересный путь создания реалистично выглядящей трехмерной одежды. Две поверхности не обязаны соприкасаться друг с другом перед сшиванием, как это было в случае с нашим пончо. Если панели находятся далеко друг от друга, сшивание соединит их, создав дополнительную поверхность между ними. (Урок Cloth Tutorial в документации по Instant Maya предлагает интересные способы создания рубашки и джинсов.)
Теперь при воспроизведении анимации пончо упадет и исчезнет благодаря тяготению. Оставьте его ненадолго там и, если хотите, выделите и сделайте невидимыми первоначальные кривые и панели. Они вам больше не понадобятся, но и уничтожать их нельзя.
Выделите туловище и сделайте из него объект коллизий с тканью. Выберите Cloth / Create Collision Object (Ткани / Создать Объект коллизий).
При воспроизведении симуляции на этом этапе вы будете разочарованы. Пончо не ляжет на туловище, но будет парить вокруг него, пока не исчезнет в бесконечности. В действительности это нюанс, на котором многие новички Maya Cloth сдаются. Все выглядело таким понятным, а теперь почему-то все усложнилось. Ничего не усложнилось!
Существуют две причины «неправильного поведения» пончо, и обе эти причины могут быть быстро устранены. Первая проблема заключается во взаимодействии модуля Cloth с геометрией, которая, как я говорил ранее, может быть устранена с помощью Solver Scale (Масштаб Решателя). Вторая имеет отношение к расстоянию, на которой ткань старается держаться от объекта, чтобы не проникать в него. Эти параметры называются Collision Offset (Расстояние до объекта коллизии) и Depth (Глубина проникновения), и мы сначала займемся именно ими. Единственная хитрость заключается в том, что в действительности это параметры не одежды, а объекта коллизий, которым является туловище.
Выделите туловище и откройте секцию Shapes (Форма) в окне Channel Box (Окно Каналов). Уменьшите значения для Collision Offset (Расстояние до объекта коллизии) и Collision Depth (Глубина Проникновения) с 1 до 0,1 (рис. 21.6).
Рис. 21.6.
Два основных фактора, влияющих на падение пончо на туловище, - это Collision Offset (Расстояние до объекта коллизии) и Collision Depth (Глубина проникновения ). Значение, установленное по умолчанию - 1, - слишком велико для туловища, размером в 1 или 2 единицы, и пончо, которое должно бы красиво лечь вокруг шеи
Эти небольшие изменения имеют огромный эффект. Они позволяют пончо лучше «почувствовать» туловище. Перед этим пончо парило над туловищем на расстоянии 1 ячейки сетки, словно большая арка.
Теперь давайте обратимся к Solver Scale (Масштаб Решателя), чтобы наше пончо знало, с чем имеет дело.
Выделите пончо. В окне Channel Box (Окно Каналов) в разделе Inputs (Входные Данные) щелкните мышкой на вкладку cpSolverl. Увеличьте значение Solver Scale (Масштаб Решателя) до значения, значительно большего 1, например, 15 (рис. 21.7).
Рис. 21.7.
С увеличенным значением параметра Solver Scale (Масштаб Решателя) симуляция выглядит так, как будто наш торс - это тело взрослого человека, а не куклы ( Solver Scale 1)
Со значением параметра Solver Scale (Масштаб Решателя)! пончо ведет себя так, будто оно представляет собой одежду для куклы, - слишком жесткое и грубое. Значение параметра Solver Scale (Масштаб Решателя) 15 говорит о том, что мы создали реальное пончо для взрослого человека, поэтому оно более мягко ложится на геометрию (рис. 21.8). Для получения более изящной симуляции мы снова увеличим разрешение поверхности.
Рис. 21.8.
С уменьшенными значениями параметров коллизии vi увеличенным значением параметра Solver Scale (Масштаб Решателя) пончо красиво падает на туловище. С разрешением всего лишь 300 многоугольников на панель некоторые части ткани проникают в геометрию. Цвет мы получили, наложив стандартную 2D Cloth texture
Увеличьте Base Resolution (Базовое Разрешение) cpStitcher до 1000.
При внесении такого рода изменений мудро было бы удалить кэш симуляции, перед тем как запустить ее снова. Выберите Simulation / Delete Cache (Симуляция / Удалить Кэш).
В противном случае никаких изменений вы не увидите. Кэш симуляции необходим, когда вы заканчиваете работу над симуляцией ткани и начинаете анимацию персонажа. Он записывает данные симуляции на жесткий диск, чтобы Мауа не приходилось делать все с самого начала снова и снова, при воспроизведении анимации.
С высоким разрешением пончо выглядит более мягким, а симуляции требуется больше времени для выполнения (рис. 21.9). Но что же это за материал? Мы можем выбрать материю в секции cloth properties (свойства ткани). В ней есть шелк, шерсть, джинсовая ткань и другие. Давайте сошьем наше пончо из тончайшего шелка.
Рис. 21.9.
При разрешении 1000 полигонов на поверхность пончо превосходно ложится на туловище
Создайте для пончо новую материю. Выберите Properties / Create Cloth Properties (Свойства / Создать Свойства Ткани).
Откройте Attribute Editor (Редактор Атрибутов) для нового материала и откройте в нем Material Library (Библиотека Материалов), небольшой набор встроенных материалов. В поле Material Name (Имя Материала) выберите cpSilk (см. рис. 21.10).
Удалите кэш симуляции (Simulation / Delete Cache (Симуляция / Удалить Кэш) и запустите анимацию заново.
Шелковый материал ведет себя еще мягче на туловище. Особенно это заметно при движении тела. В окне Attribute Editor (Редактор Атрибутов) вы найдете физические свойства, обусловившие это поведение, такие, как Bend Resistance (Сопротивление Сгибанию) (чем ниже значение этого параметра, тем большее количество складок вы получите), Thickness (Плотность) (для смоделированного зимнего пальто в противоположность ночной рубашке) и Friction (Трение) (между туловищем и пончо, а также между пончо и пончо). Значение параметра Friction (Трение) для шелка, конечно, значительно ниже, чем для хлопковых тканей.
Рис. 21.10.
Физические свойства тканей. Мауа предоставляет лишь несколько готовых материалов. Мы нажмем на значок папки, чтобы выбрать шелк
Когда вы проанимируете туловище, после того как пончо уютно на нем расположится, пончо будет натурально следовать за движением туловища.По мере движения туловища на пончо будут появляться новые складки, колебания, некоторые части будут растягиваться и собираться. Когда движение туловища будет достаточно быстрым, Air Damping (Демпфирование Воздуха) - атрибут свойства ткани - станет важным фактором. Если хотите, чтобы анимация туловища начиналась в кадре 0 или 1, вместо того чтобы проигрывать кадр за кадром для симуляции, используйте команду Simulation / Start / Stop Simulation (Симуляция / Начать / Закончить Симуляцию). Мауа через некоторое время оденет туловище, не продвигаясь вперед по таймлайну.
А теперь кое-что новенькое. Приходилось ли вам смешивать руку из модуля Paint Effects с березой?
Освещение с настроением
Как создать эффект еле заметного беспорядочного движения источника рассеянного света в комнате?
Тема:
Рендеринг, Динамика.
Используемые техники и инструменты:
Ambient Light (Источник рассеянного света), Nail Constraint (Принудительное согласование по типу Гвоздь), Gravity (Гравитация), Point Constraint (Принудительное согласование по типу Точка).
Слегка анимированное освещение может значительно усилить впечатление в которой, по сути, ничего особенного не происходит. Оно добавляет штрихи и к освещенной и анимированной сцене. Идея этого урока заключается в том, чтобы использовать реальные силовые поля, то есть механику Ньютона для источника рассеянного света.
Создайте комнату из большого полигонального цилиндра [На рисунке изображен куб. - Прим, переводчика. ] и удалите его потолок и две передние стены, чтобы получить вид внутри комнаты.
Поместите в нее несколько объектов.
Откройте окно настроек для создания источника рассеянного света. Для этого выберите Create / Lights / Ambient Light (Создать / Освещение / Источник Рассеянного Света (рис. 22.1).
Рис. 22.1.
Создайте источник рассеянного света, чтобы осветить сцену
Убедитесь, что значение параметра Ambient Shade (Тень источника рассеянного света) больше нуля (см. рис. 22.2).
Чем меньше значение параметра Ambient Shade (Тень источника рассеянного света), тем освещение более равномерно. Хотя по умолчанию источник рассеянного света освещает всю сцену в целом, Мауа позволяет локально увеличить его интенсивность. Нам нужен свет, локализированный в пространстве, то есть он должен быть ярче в области, где находится его источник, и при этом освещать и остальные части сцены. При установленном по умолчанию значении параметра 0,45 освещение ярче в области, где находится его источник; по мере удаления от источника интенсивность освещения падает. При значении параметра Ambient Shade (Тень источника рассеянного света), равном 1, рассеянный источник света приобретает свойства точечного источника света.
Рис. 22.2.
С помощью значения параметра Ambient Shade (Тень источника рассеянного света) больше нуля, положение света локализуется в пространстве
Создайте свет.
Визуализируйте сцену.
Источник света появляется в начале координат и сияет там ярче. Лучше всего это видно, если вы передвинете источник освещения немного вверх перед визуализацией. В отличие от других источников освещения в Мауа, рассеянный источник света достигает поверхностей, направленных от него, как, например, темные стороны цилиндра и конуса на рис. 22.3.
Рис. 22.3.
Рассеянный источник света ярче в центре сцены, чем в других ее местах. Однако он все же освещает те части объектов, которые точечный источник света оставил бы совершенно темными
Теперь мы создадим гвоздь в (уже не существующем) потолке, на котором источник света будет крепиться и раскачиваться. Осуществляя это, мы попадем в область динамических симуляций, которые содержатся в Мауа в меню клавиши F4. Динамические симуляции требуют геометрии; источники света (и другие негеометрические объекты, типа камеры) не могут напрямую участвовать в симуляции. Они могут принимать только опосредованное участие. Задача заключается в том, чтобы прикрепить источник света к геометрическому объекту, например, к сфере, то есть фактически подвесить сферу (а не источник света) и заставить ее раскачиваться на гвозде в потолке.
Создайте сферу.
Выделив сферу, откройте окно настроек меню Soft/Rigid Bodies / Create Constraint option box (Мягкие/Твердые Тела / Принудительное согласование) (рис. 22.4).
Рис. 22.4.
В действительности на гвозде подвешена сфера
Убедитесь, что Constraint Type (Тип Принудительного согласования) установлен на Nail (Гвоздь), и выполните команду.
Выполнением одной команды в действительности заставляет Мауа выполнить два действия сразу: создать гвоздь и преобразовать сферу в динамическое твердое тело. Для того чтобы раскачать источник освещения, нам нужно расположить гвоздь над сферой.
Выделите гвоздь в окне Outliner (Схема Сцены) (он называется rigidNailConstrainl) и подтяните его к потолку.
Переместите немного выше и сферу (см. рис. 22.5).
Рис. 22.5.
Гвоздь и сфера в начальной позиции
Вся эта конструкция должна выглядеть как длинный маятник, свисающий с потолка (он должен быть достаточно длинным, для того чтобы, раскачиваясь, охватывать большую часть комнаты). Если вы проиграете симуляцию, то ничего не произойдет: сфера спокойно свисает с гвоздя, поскольку на нее не воздействует никакая сила.
Выделите сферу и добавьте ей гравитации, сделайте ее тяжелее. Для этого выберите Fields / Gravity (Поля / Гравитация) (рис. 22.6).
Рис. 22.6.
Мы воздействуем на сферу гравитацией
Оттяните сферу в сторону, для того чтобы начать колебания маятника.
Воспроизведите анимацию.
Теперь сфера раскачивается на гвозде вперед-назад в одной плоскости. Для того чтобы точно воспроизвести симуляцию, в меню Preferences (Установки) откройте раздел Timeline Settings (Установки временной шкалы) и в пункте
Real time (Реальное Время) выберите значение Play every Frame (Воспроизводить каждый кадр). Результат неплохой, однако симуляция несколько надоедлива; давайте добавим ей немного джаза.
Поскольку сфера все еще выделена, откройте секцию rigidBody1 в окне Channel Box (Окно Каналов) и увеличьте Initial Velocity (Начальная Скорость) сферы по оси X и Z (рис. 22.7).
Рис. 22.7.
Увеличьте значение параметров Initial Velocity (Начальная Скорость) сферы
После установки значений начальной горизонтальной скорости движение сферы больше не ограничено вертикальной плоскостью. Теперь при воспроизведении симуляции сфера движется по гораздо более сложной траектории, выписывая петли и восьмерки, и «заметает» гораздо большую область комнаты (рис. 22.8)
Рис. 22.8.
Сфера раскачивается по всей комнате
Вы можете повозиться с начальной скоростью, для того чтобы она подошла к размеру вашей комнаты, а также изменить остальные значения rigidBodyl, для того чтобы усложнить движение.
Измените местоположение сферы в начале симуляции, чтобы она качалась внутри комнаты, не выходя за ее пределы.
Когда вас удовлетворит движение сферы, вы можете согласовать ее движение с движением источника рассеянного света.
Нажмите клавишу F2, для того чтобы войти в меню анимации.
Выделите сферу, затем источник рассеянного света и выберите Constrain / Point (Принудительное согласование по типу Точка), для того чтобы привязать источник света к сфере.
Вы, наверное, заметили, что мы используем два типа меню согласований. Команда Constrain (Принудительное согласование), принадлежащая меню анимации, используется для прикрепления объектов друг к другу, в то время как команда Create Constraint (Создать принудительное согласование) в секции динамики применяется только в динамических симуляциях. Принудительное согласование по типу Nail (Гвоздь), к примеру, бесполезно без силовых полей. Вместо использования принудительного согласования по типу Point (Точка), вы могли бы также связать движение сферы с движением источника освещения, используя иерархию «родитель - дочерний объект» (выберите Edit / Parent (Редактирование / Родительский объект). Однако принудительное согласование типа Point (Точка) экономит нам один шаг, автоматически перемещая источник освещения к сфере. При использовании родительского объекта вам пришлось бы вручную перемещать источник освещения к сфере.
Теперь самое время для последнего, завершающего шага нашей работы.
Выделите сферу и сделайте ее невидимой (клавиши Ctrl+H) (см. рис. 22.9).
Теперь вы видите иконку источника рассеянного света, свисающую с гвоздя и качающуюся внутри комнаты во время симуляции. В результате рендеринга анимации вы увидите периодически освещаемые части комнаты (см. рис. 22.10). Когда симуляция полностью вас устроит, можете запечь (to bake) ее в настоящие ключевые кадры (выберите Edit / Keys / Bake Simulation (Редактирование / Ключи / Запечь Симуляцию). Затем удалите оставшиеся твердые тела (выберите Edit / Delete by Type/ Rigid Bodies (Редактирование / Удалить в зависимости от типа / Твердые Тела), упростите, масштабируйте и подредактируйте ключевые кадры в Graph Editor (Редактор Анимационных Кривых), для того чтобы сделать эффект переменного освещения менее заметным или, напротив, более ярко выраженным.
Рис. 22.9.
Сфера спрятана. Теперь источник света как будто сам свисает с гвоздя
Рис. 22.10.
Едва заметный, но создающий необходимое впечатление эффект: динамически анимированный рассеянный свет оживляет комнату
А теперь кое-что новенькое. Приходилось ли вам раскрашивать лысую голову?
Пешеходный переход
Как в реальном времени из NURBS-плоскости сделать пешеходную «зебру», растворяющуюся в густом тумане?
Тема:
Аппаратный Рендеринг.
Используемые техники и инструменты:
Assign Material per Patch (Попатчевое присвоение материала), Hardware Fog (Аппаратный туман).
В отличие от полигональной NURBS-поверхность не имеет граней, поэтому она допускает наложение одной-единственной текстуры на всю поверхность целиком. Если вы, скажем, хотите приклеить логотип компании на NURBS-тостер, вы, скорее всего, используете метод Stencil (Трафарет). Но поскольку Stencil (Трафарет) фактически плавает над поверхностью (что иногда имеет свои преимущества), этот метод бесполезен, если вы хотите использовать параметризацию поверхности в качестве текстурных координат при наложении текстуры. Скажем, у вас есть NURBS-улица и вы хотели бы добавить к ней осевую линию. Вам бы долго пришлось возиться с параметрами закладки place2dTexture окна Attribute Editor (Редактор Атрибутов), пока не получили бы требуемое, как на рис. 23.1. Но этот метод не абсолютно точен при интерактивной работе [Здесь имеется в виду, что при визуализации расположение текстуры может отличаться от того, что вы видите в окне моделирования. -Примеч. ред. ], и если вы дополнительно (еще) захотите добавить «зебру», то у вас ничего не получится.
Вы должны были использовать многослойную текстуру, но для такой простой задачи это было бы чересчур сложное решение. Не правда ли, было бы здорово, если бы мы могли использовать патчи NURBS-поверхности, которые мы видим в окне моделирования, для того, чтобы частично и в интерактивном режиме раскрасить улицу в серый и белый цвета?
Теперь это желание может быть реализовано. Мауа 4 позволяет вам присваивать индивидуальные цвета к различным частям NURBS-поверхности. Правда, с большим ограничением: результат можно увидеть только при использовании аппаратного шейдинга - он не визуализируется! Тем не менее это довольно заметный шаг вперед, поскольку многие художники используют Мауа в проектах реального режима времени.
Но все-таки в процессе работы над этим уроком помните, что вы не сможете использовать этот метод (или новый инструмент Hardware Fog Tool (Аппаратный туман) в высококачественно визуализирован- ной анимации. Однако я уверен, что вы оцените быстрый и простой способ тек- стурирования улицы осевой линией и пешеходной «зеброй». Кроме того, он по требует хороших навыков выделения отдельных патчей.
Рис. 23.1.
Утомительный метод назначения уличной разметки NURBS-поверхности использованием шахматной текстуры. Слева: шахматная текстура, наложенная на всю поверхность целиком. В середине: параметры расположения текстуры настроены так, чтобы получить разметку пешеходной «зебры». Справа: текстура, настроенная так, чтобы получить осевую линию. Используя такой подход, получить одновременно и осевую линию, и пешеходную «зебру» невозможно
Создайте NURBS-плоскость.
В окне Channel Box (Окно Каналов) откройте секцию makeNurbsPlane и измените Width (Ширина) на 3, a Length Ratio (Соотношение сторон) на 10.
Увеличьте количество патчей вдоль U до 21, а вдоль V до 11 (см. рис. 23.2).
Мы получили плоскость следующего размера: ширина - 3 единицы, длина - в 10 раз больше, прямо как на настоящей дороге. Количество патчей - это шаблон для аппаратного текстурирования.
Выберите Window / Rendering Editors (Окно / Редакторы Рендеринга), для того чтобы открыть Hypershade. Создайте материал для асфальта улицы и материал для белой разметки.
Назначьте серый материал всей улице.
Этот - и только этот - материал будет использоваться при программном рендеринге. Все остальные цвета в этом уроке будут видимы только при аппаратном рендеринге.
Рис. 23.2.
Новая NURBS-плоскость с относительно высокой плотностью геометрии
Щелкните правой кнопкой мыши по дороге для получения изображения (только) Surface Patches (Патчи Поверхности) NURBS-плоскости (рис. 23.3).
Рис. 23.3.
Используя контекстное меню поверхности, сделайте патчи видимыми и доступными для выделения
Заметьте: в модуле меню маски выделения в верхней части окна Maya Surface Patches (Патчи Поверхности) называются NURBS-Patches (рис. 23.4). Оба термина обозначают одно и то же.
Рис. 23.4.
Вместо контекстного меню вы можете использовать маску выделения в верхней части окна Мауа для отображения патчей поверхности
В следующем шаге мы найдем самый лучший способ для выделения отдельных патчей, используя различные окна моделирования.
В окне Front View (Вид Спереди) выделите центральные патчи улицы (рис. 23.5).
Рис. 23.5.
В окне Front View (Вид Спереди) вы можете одновременно выделить все центральные патчи улицы
В окне Top View (Вид Сверху) снимите выделение с каждого второго патча (клавиша CTRL) (см. рис. 23.6).
Проверьте выделение в перспективном окне. Если вы случайно снимете выделение, используйте команду Undo (Отменить Действие).
Откройте Hypershader. Щелкните правой кнопкой мышки по белому материалу и, используя команду Assign Material to Selected (Назначить Материал выделенным объектам), наложите белую разметку на выделенные патчи (см. рис. 23.7).
Как только вы снимете выделение и вернетесь из режима Component mode (компонентный режим ) в режим Object mode (объектный режим), то увидите белые полосы вдоль дороги (см. рис. 23.8). Если разрешение поверхности вдоль оси U (вдоль длины улицы) у вас небольшое, полоски будут широкими. Если по какой-то причине вы недовольны размером линий разметки, выполните команду Edit NURBS / Insert Isoparms (Редактирование NURBS / Вставить изопармы). Так вы добавите дополнительные изопармы, а значит, и новые патчи к поверхности.
Рис. 23.6.
В окне Top View (Вид Сверху) снимите выделение с каждого второго патча
Рис. 23.7.
Оставшиеся патчи получают белый материал для изображения осевой линии улицы
Рис. 23.8.
Теперь осевая пиния разметки видна
Плотность ячеек по оси V (по ширине улицы) позволит нам нанести разметку пешеходного перехода.
Выделите пары соседних патчей для пешеходного перехода. Оставьте невыделенными по два патча между каждой парой выделенных.
Мы получили разметку пешеходного перехода, и расстояние между ее линиями в два раза больше, чем ширина осевой линии разметки.
Назначьте белый материал выделенным ячейкам (см. рис. 23.9).
Если серый патч случайно окрасится в белый цвет, просто снова назначьте ему серый асфальтовый цвет тем же самым способом.
Деформируйте поверхность так, чтобы улица слегка изогнулась (см. рис. 23.10).
Наконец, давайте используем еще один эффект, видимый лишь при аппаратном шейдинге, но не при рендеринге. Выберите Shading / Hardware Fog (Шейдинг / Аппаратный туман) (рис. 23.11). Вы можете настроить этот эффект в окне настроек. Это великолепное презентационное средство, особенно если вы проанимируете камеру и просчитаете тестовую анимацию. Для «настоящего» (то есть программного) рендеринга вам нужен другой вид тумана, который не реализуется графической картой на аппаратном уровне: Environment Fog (Туман в Окружающей Среде).
Рис. 23.9.
А теперь у нас есть и пешеходный переход
Рис. 23.10.
Деформированная улица
Рис. 23.11.
Эффект Hardware Fog (Аппаратный туман) идеален для презентаций в реальном режиме времени
А теперь кое-что новенькое. Не приходилось ли вам сравнивать одуванчик, который растет перед вашей дверью, с одуванчиком, созданным в Мауа?
Дикая растительность
Как смешать различные цвета и нарисовать Трехмерный ландшафт луга с облаками и небом?
Тема:
Рендеринг.
Используемые техники и инструменты:
Paint Effects (Эффекты Рисования), Sky Texture (Текстура Неба), Depth of Field (Глубина резкости).
Когда вы используете акварель или масляные краски, вам периодически приходится смешивать цвета - так вы получите необходимый набор оттенков для красивой сложной картины. Это очень важная процедура. Программы двухмерного рисования обычно не содержат средств для интерактивного смешивания цветов. Вместо смешивания голубого с желтым вы просто выбираете зеленый. В модуле Maya Paint Effects микширрвание должно быть глубоко запрятанным секретом; но нет, напротив, оно легко доступно.
Просто щелкните правой кнопкой мышки, и вы можете не только смешивать цвета, но и выбирать кисти и формы. В этом уроке мы будем активно использовать техники микширования и нарисуем трехмерный луг с дикорастущей травой, несколькими генетически измененными деревьями и реалистично выглядящим небом с облаками. Наконец, мы визуализируем едва заметное плавное движение камеры с глубиной резкости (Depth of Field).
Смешивание шейдинга и форм в Мауа настолько сильно, что художники двухмерной графики просто должны были бы влюбиться в него. Давайте познакомимся с двумерным поведением штрихов на плоской поверхности, проще называемой «холст».
Нажмите клавишу 8, для того чтобы войти в Paint Effects (Эффекты Рисования).
Выберите Paint / Paint Canvas (Рисование / Рисование на Холсте), для того чтобы переключиться с трехмерного, на двухмерный вид.
Щелкните по пиктограмме Get Brush (Взять Кисть) и в окне Visor откройте папку Oil (Масляные Краски).
Выберите красную кисть. Нарисуйте линию на чистом холсте.
Щелкните правой кнопкой мышки (и держите ее) по одной из голубых кистей.
В контекстном меню выберите Blend Shading (Смешать Тонирование) 50% (см. рис. 24.1).
Рис. 24.1.
Секция масляных красок в Paint Effects (Эффекты Рисования). Мы добавляем 50% голубого цвета к нашей красной кисти
Таким образом, вы погружаете красную кисть в голубой цвет и получаете точное 50-процентное смешение красного с голубым цветом. Как и большинство программ, Мауа использует термин «кисть» для обозначения того, что художники назвали бы «цветом». При смешивании цветов мы на самом деле смешиваем тонирование и формы кистей. Кисти в программном обеспечении означают более чем цвет, поскольку они не только содержат цвет, но также создают различные штрихи, используя свою уникальную форму.
Нарисуйте вторую линию. Это смешение красного и голубого: фиолетовый.
Тем же способом смешайте 50% белой кисти и полученной фиолетовой и нарисуйте третью линию. Мы получили ярко-сиреневый цвет.
Прибавьте к этому 100% желтой кисти и нарисуйте четвертую линию: полностью желтую.
Используйте 100% Shading (Тонирование) первоначальной красной кисти, чтобы вернуться к тому цвету, с которого начали (рис. 24.2).
Рис. 24.2.
Смешиваем различные масляные краски. Слева направо: красная краска; красная краска, смешанная с 50% голубой краски; все это перемешано с 50% белой краски; результат смешан со 100% желтой; и наконец, желтая кисть полностью погружена в первоначальную красную краску
Таким образом, вы легко смешиваете цвета в точной пропорции. Нарисованные вами линии также выглядят по-разному, поскольку масляные кисти имитируют не только цвет, но и освещение. За счет этого штрихи местами выглядят ярче и различаются от одной масляной кисти к другой. Операция смешения тонирования учитывает как освещение, так и отражение.
В окне Visor откройте папку, содержащую Перья (рис. 24.3). Выберите красное перо и нарисуйте перистый штрих.
Рис. 24.3.
Библиотека Перьев
Откройте секцию Fibers (Волокна). Нажмите правой кнопкой мышки на веревку rope.mel (рис. 24.4). Используя команду Blend Brush (Смешивание Кистей) 50%, возьмите 50% свойств веревки (что означает больше чем просто цвет) и нарисуйте вторую линию.
Рис. 24.4.
Библиотека Волокон
Новая линия выглядит перистой, однако она также содержит элементы плетения веревки.
Ее цвет представляет собой смешение красного цвета пера
и бежевого цвета веревки. Используя команду Blend Brush (Смешивание Кистей), вы смешали не только информацию о тонировании, но и о форме.
Смешайте 50% цветка или соцветия одуванчика, dandelionYellow.mel, который вы найдете в библиотеке Flowers (Цветы) (рис. 24.5), с «пероверевкой» и нарисуйте новую линию.
Рис. 24.5.
Цветение одуванчика в секции Flowers (Цветы)
Добавьте 50% головок одуванчика (Seed-head) и на этом закончите эксперимент.
Цветение одуванчика берет структуру перо/веревка и смешивает ее с 50% эффекта цветения. Головка одуванчика добавляет белое цветение и делает структуру листьев значительно менее похожей на первоначальную перистую. Новые цветки очень отдаленно напоминают структуру желтого цветения одуванчика и больше похожи по форме и размеру на его белую головку (рис. 24.6).
Рис. 24.6.
Смешиваем цвета и формы. Слева направо: красное перо; красное перо, смешанное с веревкой; результат смешан с цветком одуванчика; результат смешан с головкой одуванчика
Покажите это и другие свои достижения вашим друзьям, занимающимся двухмерной компьютерной графикой. А через некоторое время, когда вы встретитесь снова, подготовьте для них трехмерный дикий луг (см. рис. 24.14).
Выйдите из Paint Effects (Эффекты Рисования), нажав клавишу 8.
Создайте большую NURBS-плоскость для ландшафта.
Деформируйте ее так, чтобы на ней появились холмы и долины.
Назначьте ей новый материал.
Выделите ландшафт и приготовьтесь к использованию Paint Effects (Эффекты Рисования). Нажмите F5, выберите Paint Effects / Make Paintable (Эффекты Рисования / Сделать Доступным для Рисования).
Снова войдите в Paint Effects (Эффекты Рисования) (клавиша 8). Если перед вами все еще двухмерный холст, переключитесь в трехмерное пространство, выбрав Paint / Paint Scene (Рисование / Рисовать в Сцене).
Теперь землю нашего луга мы засеем растениями как естественного, так и генетически измененного происхождения.
В окне Visor выберите кисть из папки Grasses (Травы).
Определитесь, где будет находиться камера, и несколькими штрихами нарисуйте в этом месте немного травы (рис. 24.7). Если листья травы кажутся вам слишком мелкими или слишком крупными, используйте «горячую клавишу» В (плюс левая кнопка мышки), чтобы изменить их размер.
Рис. 24.7.
Несколько штрихов травы на широком поле. Камера будет находиться очень близко, и в объектив попадет холм на заднем плане
Из папки Flowers (Цветы) выберите цветок. Смешайте его с деревом из секции Trees (Деревья). Новой кистью нарисуйте растение в траве.
Выйдите из Paint Effects (Эффекты Рисования).
Создайте и расположите где-нибудь еще одну камеру. Она должна находиться в траве, очень близко к растениям/деревьям.
Установите два вида освещения: (направленный) солнечный свет и слабый источник рассеянного света.
Визуализируйте вид сквозь камеру.
Измените цвет поверхности ландшафта. Используйте пипетку Color Chooser (Выбор Цвета), для того чтобы скорректировать цвет поверхности ландшафта в соответствии с цветом травы.
Визуализируйте снова (рис. 24.8).
Рис. 24.8.
Первый рендеринг обычной травы с гибридами цветов и деревьев. В цветы на переднем плане добавлена небольшая доза одуванчика
Вернитесь в Paint Effects (Эффекты Рисования), смешайте несколько других растений и кистей на ваш вкус и нанесите новые штрихи близко к камере. Выполняйте тестовую визуализацию после каждого вновь выращенного цветка.
Если ваши растения располагаются вне обзора камеры, в перспективном окне выделите штрих и передвиньте его или просто немного передвиньте камеру. Если вам не нравится вид растений, просто удалите их в окне Outliner (Схема сцены).
Если работа вашего компьютера замедляется по мере добавления новых элементов в сцену, временно скройте отдельные растения, например всю траву. Самый лучший инструмент для подключения и отключения групп объектов - это Layer Editor (Редактор Слоев).
Привлекательный луг проще создать стандартными растениями Paint Effects (Эффекты Рисования), чем их гибридами (рис. 24.9).
Например, если вы скрестите цветы с водорослью (из секции Underwater (Подводный Мир), то получите неинтересное растение с отполированными стволами и цветами скучных пастельных тонов. Поэтому вам придется выкинуть большинство ваших созданий.
Рис. 24.9.
Добавляем растения-гибриды. В центре вы видите белую головку одуванчика, опущенную в красную масляную краску. Близко к камере - полупрозрачный красный лист, который фактически является смешением березы, травы и акварельной краски
Две основные вещи вы должны помнить при засеивании луга. Первое: размещайте наиболее красивые растения ближе к камере, а менее привлекательные - подальше. Второе: не усердствуйте при заполнении ландшафта! Фон должен оставаться хоть немного незанятым, поскольку мы еще будем использовать глубину резкости при визуализации. Это сделает объекты более размытыми по мере удаления их от камеры.
В нашей сцене все еще нет неба. Черное небо - не слишком привлекательный выбор для картины природы. Немного голубого цвета над горизонтом значительно улучшит вид - ramp-текстура поможет разнообразить атмосферу всей сцены. Все, что вам нужно, - это либо простой цвет фона, либо Image Plane (Плоскость Изображения) с наложенной на нее текстурой. Мы используем последний способ и наложим текстуру Sky (Небо) на Image Plane (Плоскость Изображения). Этот метод дает нам не только приятные, естественные цвета для неба в любое время дня, но и добавит облака и солнце.
Откройте Attribute Editor (Редактор Атрибутов) камеры. В секции Environment (Окружающая Среда) нажмите на Image Plane Create (Создать Плоскость Изображения).
В секции Placement (Расположение) нажмите Fit to Resolution Gate (в Соответствии с Разрешением). Так текстура фона будет заполнять все области визуализируемого изображения.
В Image Plane Option box (окно настроек Плоскости Изображения) выделите Texture (Текстура) и нажмите на шахматный значок рядом с этим полем (рис. 24.10).
Рис. 24.10.
Attribute Editor (Редактор Атрибутов) для камеры Image Plane (Плоскость Изображения).
Мы готовы к изображению цифрового неба
В окне Create Render Node (Создать Узел Рендеринга) откройте секцию Environment Textures (Текстуры Окружающей Среды) и выберите Env Sky (рис. 24.11).
Рис. 24.11.
Выбираем текстуру для Image Plane (Плоскость Изображения)
Визуализируйте сцену.
Environment Sky (Небо Окружающей Среды) предлагает много настроек для получения более или менее реалистичного изображения неба. Например, вы можете изменить яркость, создать облака (используя текстуру fractal) либо добавить атмосферные эффекты. Поскольку вы намерены напрямую связать плоскость изображения с камерой, то применять различные наклоны и неровности вы не можете, изображение не будет выглядеть реалистично.
Здесь имеется в виду следующее. Image Plane может позиционироваться по отношению к камере двумя способами - жестко прикрепляться к камере (опция «attached to camera») или позиционироваться в пространстве, независимо от положения камеры (опция «fixed»). В первом случае при любых движениях камеры фоновая картинка не меняется, при изменении положения камеры и при больших поворотах или панорамировании передний план и фон будут несогласованы друг с другом - фон останется неизменным, а передний план будет двигаться, что будет выглядеть неестественно. Поэтому перевод, скорее, будет примерно следующим.
Так как мы выбрали жесткое прикрепление image plane к камере, то мы не можем сильно панорамировать или поворачивать камеру - это разоблачит нашу хитрость (подделку).
Если вы хотите свободы в движении камеры по сцене, то вы должны были бы наложить текстуру на сферу большого размера, накрывающую всю сцену целиком. Поскольку наша камера будет лишь немного передвигаться в глубь луга, использование плоскости изображения - это самый прямой путь достичь нашей цели (рис. 24.12).
Рис. 24.12.
Луг с небом и облаками
В окне Top View (Вид Сверху) измерьте расстояние между камерой и цветами, которые представляют для вас наибольший интерес. Если вы не доверяете вашей сеточной разметке, используйте инструмент Measure Distance Tool (Измерение Расстояния) в меню Create (Создать) и Point Snapping (Привязка Точки) для размещения локаторов инструмента.
Откройте Attribute Editor ( Редактор Атрибутов) для камеры секцию Depth of Field (Глубина резкости).
Включите Depth of Field (Глубина Резкости).
В поле Focus Distance (Фокусное расстояние) введите расстояние (предварительно измеренное) между камерой и желаемой фокальной плоскостью.
Визуализируйте сцену.
Если изображение получилось чересчур размытым, значит, глубина резкости недостаточна (рис. 24.13), поэтому увеличьте Focus Region Scale (Масштаб Области Фокусирования) и F-Stop. Последнее значение определяет ширину раскрытия линзы камеры. Широко раскрытая линза (низкое значение F-Stop) означает меньшую глубину резкости и большую размытость. Это озадачивает компьютерных графиков и так знакомо настоящим фотографам!
Рис. 24.13.
Слишком малая глубина резкости, слишком сильная размытость: только стебли трав справа изображены (неожиданно) с хорошей резкостью
Когда вас удовлетворит размытость изображения, точно наведите фокус на объект, который вы хотели бы видеть резким (рис. 24.14). Параметр для фокусирования на объектах называется Focus Distance (Расстояние Фокуса).
Рис. 24.14. Оптимальная глубина резкости: размытость размазывает пустоты между растениями и выделяет находящийся в четком фокусе красный одуванчик
Идите в конец анимации и установите ключевой кадр для положения камеры.
Идите в начало анимации, немного отведите назад камеру и установите второй ключевой кадр.
Визуализируйте изображение.
Многие растения в Paint Effects (Эффекты Рисования) содержат информацию о ветре, и ветер будет дуть без какого-либо вашего вмешательства. И вы можете убедиться в этом, «поелозив» бегунком по таймлайну, - трава будет раскачиваться, листья дрожать, стебли травы и некоторых из созданных вами растений сгибаться под порывами ветра. Именно так, как это должно быть в настоящем трехмерном ландшафте для трехмерных существ, которых вы еще создадите.
А теперь кое-что новенькое. Приходилось ли вам создавать скелет, гуляющий в Dirk Bialuch's Footsteps? [Здесь речь идет о скрипте, который называется footsteps, автора Dirk Bialuch, который позволяет создавать анимацию ходьбы, расставляя «следы». - Примеч.ред. ]
Маска черной дыры
Как создать анимацию планеты с облаками и спутниковой орбитой на трех отдельных слоях для отправки проекта в отдел компоузитинга?
Тема:
Rendering
Используемые техники и инструменты:
Extrude Surface (Экструдировать Поверхность), Reverse Utility (Утилита Обращения), Black Hole Mask (Маска Черной Дыры).
Когда вы располагаете таким многосторонним и объемным программным продуктом, как Мауа, существует соблазн провести в нем всю работу по созданию проекта. Сконструировав и анимировав сложную сцену, отрендерив сотни тестов и даже получив нужное освещение, вам сразу же захочется отрендерить весь комплекс объектов как единое целое, даже если это займет несколько дней.
В действительности же лучше было бы проводить рендеринг по слоям, а скомпоузитить все позже. Существуют два аргумента в пользу преимущества такого подхода. Во-первых, это время, которое уходит на рендеринг. Вы можете его сэкономить, например, путем рендеринга статичных объектов отдельным слоем и скомпоузитить их с движущимися объектами позднее. Для анимации, которая обычно требует десять часов рендеринга, можно подчас сэкономить девять часов времени. Вы можете поспорить, что время рендеринга не такой уж важный аспект в анимации, в особенности если имеешь дело с видеоразрешением NTSC или PAL (а не киноразрешением); мощные процессоры не так дороги в настоящее время, а Мауа может осуществлять распределенный рендеринг на нескольких машинах. А если вы работаете с программой рендеринга Мауа, вам даже не нужно платить лицензию на ее использование, как в случае с другими программным продуктами.
Самый веский аргумент за рендеринг по слоям - это мощь компоузитинга.
Во время компоузитинга слоев вы легко можете осуществить такие эффекты, как смена цвета отдельных частей финального изображения, добавление небольшого свечения всего лишь одному объекту либо придание чему-нибудь вида рисованной анимации во время движения по экрану. Кроме того, в компоузитинговых программах очень легко согласовать цвет, яркость и контрастность нескольких слоев, с тем чтобы изображение стало изящным и реалистичным.
Художнику трехмерной графики очень сложно бывает полностью контролировать цвет, поскольку все материалы и освещение сцены живут каждый своей
собственной жизнью, что существенно влияет на конечное изображение, если камера передвинется в другое положение, где, к примеру, луч прожектора вызывает отражение. Если заказчик вдруг захочет, чтобы небо выглядело более голубым и жизнерадостным, то, если небо было отдельно отрендерено, вам потребуется один раз щелкнуть мышкой в пакете компоузитинга. А если бы вы делали это в Мауа, вам пришлось бы заново рендерить всю анимацию.
В этом уроке мы не будем создавать ничего сложного - сложные вещи пусть выполняет художник-компоузитор. Мы с вами займемся чем-то более реальным: подготовим три простых слоя трехмерной сцены для их компоузитинга: сферу планеты, облака и спутниковую орбиту. Мы также будем иметь дело с моделированием, текстурированием и прозрачностью.
Создайте NURBS-сферу и новый материал. Используйте для этого материала процедурную текстуру, например Crater (Кратер). Либо с помощью инструмента 3D Paint Tool (инструмент трехмерного рисования) нанесите континенты и океаны на сферу вручную.
Создайте маленькую NURBS-окружность.
Щелкните правой кнопкой мышки по сфере и, используя контекстное меню, отобразите ее изопараметрические кривые. Не снимая выделения с маленькой окружности, нажмите клавишу SHIFT и выделите также изопарму вдоль экватора.
Откройте окно настроек. Для этого нажмите F3, выберите Surfaces / Extrude option box (Поверхности / Экструдировать Окно настроек).
Установите Result Position (Результирующее Положение) на At Path (Вдоль Пути), a Pivot (Опорная Точка) на Component (Компонента) (см. рис. 25.1). Эти настройки гарантируют, что новая поверхность будет построена там, где находится изопарма, и никак иначе.
Нажмите Extrude (Экструдировать), для того чтобы экструдировать маленькую окружность вдоль экватора.
Смасштабируйте новую поверхность - орбиту воображаемого спутника - немного наружу, чтобы она не проникала в сферу (см.
рис. 25.2). Если вы хотите, чтобы она выглядела тоньше, уменьшите размер маленькой окружности, которая определяет размер орбиты в поперечном сечении.
Рис. 25.1.
С такими настройками инструмента Extrude Tool (Экструдирование) маленькая красная окружность из центра экструдируется вдоль желтого экватора, образуя кольцо
Рис. 25.2.
NURBS-сфера, раскрашенная вручную меньше чем за минуту, напоминает планету Земля, а тор служит орбитой воображаемого спутника
Сдублируйте сферу и немного смасштабируйте новую сферу наружу, чтобы она уместилась между планетой и орбитой спутника.
Наложите на новую сферу новый материал Lambert с фрактальной текстурой - это будет слой облаков.
Отрендерите сцену.
В отрендеренном изображении планета полностью покрыта сферой фрактальных облаков. Для того чтобы снова увидеть планету (или хотя бы ее часть), нам нужно к слою облаков добавить информацию о прозрачности, и ничего не может быть для этого более удобным, чем сама фрактальная текстура.
В окне Hypershader откройте иерархию материала облаков. С помощью средней кнопки мыши перетащите фрактальную текстуру на материал Lambert. Во всплывающем меню выберите Transparency (Прозрачность) в качестве текстурируемого канала.
Когда вы отрендерите сцену, облака будут черными, а промежутки между ними прозрачными (рис. 25.3). Проблема заключается в том, что канал прозрачности сферы облаков воспринимает в качестве прозрачного белый цвет облаков вместо черного промежутка между ними. Поэтому только черные части текстуры облаков становятся видимыми. Если мы инвертируем цвета фрактала, мы получим ту же проблему с другой стороны: прозрачные в настоящее время части станут черными и непрозрачными. Нам требуется инвертировать только значения цвета фрактала, которые входят в канал прозрачности материала (а не те, которые входят в канал цвета).
Рис. 25.3. Сквозь слой облаков видны части планеты. Но почему же облака черные?
Разорвите связь информации о прозрачности между фрактальной текстурой и материалом Lambert.
Для этого вам нужно выделить ее и удалить.
Не выходя из окна Hypershader, откройте секцию Create Utility (Создать Утилиту) и с помощью правой кнопки мышки перетащите Reverse Utility (Утилита обращения) на рабочую область.
Соедините атрибут фрактала outColor (рис. 25.4) со входным каналом (input) Reverse Utility (Утилита обращения) (рис. 25.5).
Рис. 25.4.
Для того чтобы облака были прозрачными там, где это нам нужно, значения цвета информации о прозрачности следует изменить на противоположные. Выход канала цвета фрактала...
Рис. 25.5.
...соединяется со входным каналом Reverse Utility (Утилита обращения). Reverse Utility (Утилита обращения) инвертирует значения цвета...
Соедините выход (output) утилиты со входом канала прозрачности материала Lambert (рис. 25.6).
Рис. 25.6.
...и передает их каналу прозрачности материала облаков
Теперь белые (а не черные) части облаков воспринимаются как непрозрачные. При рендеринге вы увидите белые облака и планету в промежутках между ними (рис. 25.7) Если вы нажмете на круглый белый значок в окне рендеринга, то увидите альфа-маску изображения. Здесь у облаков есть красивые пушистые края (рис. 25.8).
Рис. 25.7.
Инвертированный канал прозрачности создает требуемый эффект облаков
Рис. 25.8.
Канал маски прозрачности слоя облаков. Края облаков выглядят красивыми и пушистыми
Заметьте, что, хотя мы говорили только о черном и белом цветах, Мауа фактически использует информацию об оттенках серого для рендеринга прозрачности. Поэтому Reverse Utility (Утилита обращения) делает темно-серый светлосерым и оставляет средние тона без изменений. Пушистый вид облаков обусловлен областями разной степени прозрачности, то есть различными уровнями яркости серого цвета.
Перед тем как начать рендеринг сцены по слоям, стоит объединить элементы каждого шага рендеринга в индивидуальные слои, которые легко можно подключать и отключать.
Вы оцените этот подход, когда одним лишь щелчком мыши в секции видимости Layer Editor (Редактора Слоев) вы на время спрячете слой облаков, оставив в окне моделирования лишь слой с планетой.
Layer Editor ( Редактор Слоев) не представляет собой ничего сложного и находится прямо под окном Outliner (Схема сцены) [Здесь ошибка в исходном тексте. Layer Editor находится прямо под Channel Box (Окном Каналов). — Примеч. ред.] (рис. 25.9).
Рис. 25.9.
Для рендеринга каждый уровень следует объединить в отдельный слой с помощью Layer Editor (Редактор Слоев). Здесь объекты в пределах одного слоя можно легко подключать и отключать, нажимая на значок V (видимость)
Многие аниматоры трехмерной графики испытывают отвращение к альфа-каналам и маскам. Для них действительно есть вещи поважнее, чем быть «альфа-экспертом». Однако вам необходимо знать, что именно вы отдаете вашему коллеге или заказчику. Обычное изображение, отрендеренное в Мауа, содержит канал маски, который в общих чертах говорит: здесь (где белый цвет) находится объект, здесь (где черный) вы можете смотреть в бесконечность. Канал маски полностью покрывает картинку белым цветом только в том случае, когда у вас есть фон, заполненный картинками, либо большое изображение, типа сферы для текстуры неба.
Если вы просто сделаете облака и планету невидимыми, чтобы отрендерить только орбиту спутника (см. рис. 25.10), и отдадите отрендеренное изображение вашему коллеге в отдел компоузитинга, вы получите массу претензий. Ваш коллега пожалуется, что кольцо не содержит информации ни о том, какая его часть должна быть видимой в композиции (передняя часть), ни где планета
с облаками должна перекрывать его (скорее, задняя часть) (рис. 25.11). Передняя и задняя часть объектов (их видимые и скрытые области) - это наиболее важная деталь для компоузитора, и вы, художник трехмерной графики, должны корректно предоставить ему эту информацию.
Рис. 25.10.
Кольцо орбиты спутника при скрытой планете и облаках
Рис. 25.11.
Изображен только канал маски кольца спутника. Хотя он выглядит абсолютно совершенным для художника трехмерной графики, он бесполезен для его коллеги- компоновщика, поскольку не содержит информации о том, где кольцо и другие слои изображения перекрывают друг друга в конечной композиции
Давайте предположим, что вы скроете планету и орбиту спутника и оставите для рендеринга только слой облаков. Тогда ваш коллега столкнется с той же проблемой. Загруженный в программу компоузитинга слой облаков сферы будет просвечиваться, будто он сделан из стекла (см. рис. 25.12).
Рис. 25.12.
Слои планеты и орбиты спутника скрыты, отрендерены только облака. Такое изображение нельзя использовать для компоузитинга, поскольку задняя часть сферы облаков будет просвечиваться и лежать поверх планеты и кольца спутника
Основная процедура рендеринга по слоям для компоузитинга должна быть примерно такой. Начните с самого дальнего слоя и отрендерите его первым без других слоев. Затем сделайте видимым второй слой, а первый сделайте черным, чтобы он не выдавал никакой информации о цвете, но сообщал бы альфа-каналу: я здесь! Эта опция - существенная для компоузитинга - называется Black Hole Mask (Маска Черной Дыры), и это свойство материала объекта, а не самого объекта. Отрендерите второй проход, в котором слой 2 видим, а к слою 1 применена Black Hole Mask (Маска Черной Дыры). При рендеринге третьего слоя примените Black Hole Mask (Маска Черной Дыры) к слоям 1 и 2 и оставьте видимым только слой 3. И так далее.
В нашем случае лучше всего поступить так (это сохранит межличностные отношения в коллективе):
Скройте орбиту спутника и облака.
Отрендерите сферу планеты как она есть и оставьте это изображение для вашего коллеги-компоузитора (рис. 25.13).
Рис. 25.13.
Первый корректно отрендеренный результат: слой планеты отрендерен; оба других слоя невидимы
Откройте Attribute Editor (Редактор Атрибутов) для материала планеты (не ее геометрии) и в секции Matte Opacity (Непрозрачность вещества) установите параметр Mode (Режим} на Black Hole (Черная Дыра) (рис. 25.14 и 25.15).
Рис. 25.14.
Маска планеты
Рис. 25.15.
Перед рендерингом второго шага маску материала планеты следует установить на Black Hole (Черная Дыра.)
Скройте слой облаков.
Отрендерите вторым проходом слой облаков (рис. 25.16).
Рендеринг принимает во внимание альфа-информацию о местонахождении планеты, но не рендерит цвет планеты (рис. 25.17). Сохраните это изображение для своего коллеги-компоузитора.
Установите маску материала облаков на Black Hole (Черная Дыра).
Сделайте слой спутника видимым.
Рис. 25.16.
Отрендеренные облака и слой планеты. Эффект Black Hole-Mask (Маска Черной Дыры) материала планеты (слева)
Рис. 25.17.
... можно видеть в альфа-канале слоя облаков. Это детальный вид, в котором край слоя планеты совершенно белый. Маска скрывает все облака за планетой (справа)
Третьим проходом отрендерите орбиту спутника (рис. 25.18). Сохраните это изображение для вашего коллеги-компоузитора (рис. 25.19).
Рис. 25.18.
Третий корректно отрендеренный проход. Кольцо перекрывает облака и сферу планеты только спереди и исчезает сзади. Black Hole Mask (Маска Черной Дыры) слоев планеты и облаков участвует в рендеринге
Рис. 25.19.
Альфа-канал орбиты спутника. Маска кольца учитывает присутствие облаков и планеты
Любая программа компоузитинга сможет корректно работать с этими тремя изображениями (а если это будет анимация, то с последовательностями изображений). Молодой польский аниматор, который завоевал несколько призов своей первой трехмерной анимацией, как-то сказал мне, что не видит смысла в рендеринге по слоям. Все равно никому свои наработки он отдавать не собирается. Может, у него был уже печальный опыт в этой области. В самом деле, компоузитинг не сложнее трехмерной анимации. Скорее всего, его проблема (и многих других аниматоров) заключается в неспособности взаимодействовать, недостатке уверенности в компоузиторе, который, кстати, тоже очень неплохо может разбираться в области трехмерной графики.
Поскольку эта книга посвящена трехмерной анимации, мы завершим этот урок без сведения трех наших слоев в окончательную картинку. Пусть это сделает (за нас) отдел компоузитинга.
А теперь кое-что новенькое. Приходилось ли вам прятать временную шкалу?
Тень от деревьев
Как добавить тень от веток и листьев березы, трепещущих на ветру, в мою скучную трехмерную комнату?
Тема:
Рендеринг, Анимация.
Используемые техники и инструменты:
Paint Effects (Эффекты Рисования).
Простой и симпатичный прием сделать источник освещения более интересным - это наложить на него фильтр. В Мауа это можно сделать, либо изменив цвет источника света, либо наложив на его цвет текстуру. Анимируя текстуру, вы можете воспроизвести (смоделировать) такие эффекты, как тени от бегущих облаком или поднимающихся венецианских жалюзи.
С появлением модуля Paint Effects (Эффекты Рисования) мы можем использовать цифровые деревья для оживления освещения и тени сцены. Иногда мы даже не должны видеть деревья - только их тень.
Создайте полигональный куб, достаточно большой, для того чтобы внутри него свободно могла перемещаться камера.
Экструдируйте одну из его граней, смасштабируйте ее до размеров окна и удалите (рис. 26.1).
Рис. 26.1.
Полигональный куб с экструдированной, смасштабированной и удаленной передней гранью для получения окна
Создайте рассеянный источник света и солнечный свет (направленный свет). Расположите последний так, чтобы он освещал комнату через окно, достигая
пола и задней или боковой стенки. Для этого выберите Panels / Look Through Selected (Панели / Смотреть Через Выделенное).
В окне Attribute Editor (Редактор Атрибутов) для освещения включите Depth Map Shadows (Тени на основе карты глубины) и увеличьте Dmap Filter Size (Размер Фильтра Dmap), например, до 3. Это смягчит края тени.
Для того чтобы привлечь взгляд, добавьте в комнату две колонны, смоделированные из цилиндров.
Создайте новую камеру и разместите ее в комнате. Если это необходимо, уменьшите длину фокуса для увеличения угла обзора.
Отрендерите изображение внутренней части комнаты с двумя колоннами и освещением из окна (рис. 26.2).
Рис. 26.2.
Широкоугольная камера находится в комнате и направлена на тень, образованную солнечным светом
Мы закончили создание нашей комнаты, и я думаю, что вы согласитесь со мной, она скучновата На самом деле в этом нет ничего плохого; просто мы еще раз убедились, что компьютерный мир, слишком искусственен и скучен.
В перспективном окне нажмите клавишу 8 и переключитесь на Paint Effects (Эффекты Рисования) (см. рис. 26.3).
Из секции Trees (Деревья) возьмите кисть BirchBlowingLight.mel. С ее помощью вы нарисуете раскачивающуюся на ветру березу (рис. 26.4).
Рис. 26.3.
Нажав на этот значок, вы откроете окно Visor с огромным набором кистей
Рис. 26.4.
В секции Trees (Деревья) вы найдете березу, раскачивающуюся на ветру
Выбрав кисть, переместите курсор на плоскость поверхности земли. Не нажимая кнопки мыши, определитесь с размером дерева. Возможно, кисть окажется слишком мала по сравнению с большими размерами комнаты. В этом случае увеличьте Scene Scale (Масштаб Сцены) в окне Paint Effects Globals (Глобальные настройки Эффектов Рисования). Для этого нужно нажать клавишу F5 и выбрать Paint Effects / Paint Effects Globals (Эффекты Рисования / Глобальные настройки Эффектов Рисования).
Нарисуйте одно или два дерева на плоскости поверхности земли перед окном. Если вас не устроит расположение или размер деревьев, используйте команду Undo (Отменить) для отмены операции (см. рис. 26.5).
Нажмите клавишу 8 для выхода из модуля Paint Effects (Эффекты Рисования). Теперь в окне рендеринга вы сможете увидеть только схематичное изображение берез(ы). Если это необходимо, переместите ее в перспективном окне ближе к окну комнаты (см. рис. 26.6).
Отрендерите вид сквозь камеру.
Рис. 26.5.
Трехмерная береза нарисована кистью модуля Paint Effects (Эффекты Рисования)
Рис. 26.6.
Слева: перспективное окно с березой, расположенной перед окном комнаты. Справа: окно рендеринга тени дерева в комнате
Если вы в правильном месте посадили дерево, то солнечный свет, падая на ствол, ветки и листья березы, образует красивую тень в комнате. Если тень не попадает внутрь комнаты, выделите дерево и переместите его. Здесь полезно использовать вид сквозь источник освещения [Нужно выделить источник солнечного света и, как это делалось выше, Panels>Look through selected. - Примеч. ред. ]. Помните, что трехмерная анимация - это не только создание интересных объектов, но также и экономная работа.
Если нам требуется только тень, тогда зачем оставлять дерево?
Откройте Attribute Editor (Редактор Атрибутов) для дерева.
Нажмите на вкладку strokeShapebirchBlowingLightl.
Снимите флажок с Primary Visibility (Первичная Видимость) штриха дерева
(рис. 26.7).
Рис. 26.7.
Отключив Primary Visibility (Первичная Видимость), мы удаляем сам объект - но не его присутствие в окнах моделирования и не его тень - из процесса рендеринга
Primary Visibility (Первичная Видимость) означает видимость объекта для рендеринга. Когда этот параметр отключен, объект все еще можно видеть в окнах моделирования, сохраняется также его воздействие на сцену. Но сам объект рендериться не будет (см. рис. 26.8). Это главное отличие Primary Visibility (Первичная Видимость) от Visibility объекта (Видимость объекта). Если вы отключите Visibility для объекта (Видимость объекта) в окне Channel Box (Окно Каналов) или в Окне Attribute Editor (Редактор Атрибутов) в меню Display (Показать), то не только сам объект исчезнет из окон моделирования и визуализации, но также и тень объекта больше рендериться не будет.
Береза модуля Paint Effects (Эффекты Рисования) содержит атрибут, который придает дереву движение в соответствии с правилами динамики. Вам не нужно рендерить последовательность, чтобы увидеть это движение. Просто пройдитесь по временной шкале в окне камеры. Силовое поле модуля Paint Effects (Эффекты Рисования), используемое в данном случае, называется Grass Wind (Ветер в Траве). Вы можете найти его (а так же редактировать его и устанавливать ключевые кадры), открыв Attribute Editor (Редактор Атрибутов) для узла birchBlowingLightl. В этом окне войдите в секцию Tubes (Трубы) в меню Turbulence (Турбулентность) [Там путь длиннее. Итак, открываем Atribute editor для birchBlowingLightl. Далее - секцию Tubes, ее подсекцию Behavior, потом подсекцию Forces и далее подсекцию Turbulence. - Примеч. ред. ].
Рис. 26.8.
Тень березы в комнате. Когда вы отрендерите анимацию, листья и ветки будут трепетать на ветру
Конечно, ветер можно добавлять всем другим видам растений.
А теперь кое-что новенькое. Когда-нибудь задумывались о значении пиктограммы над начальной точкой временной шкалы?
Блуждающее свечение
Как создать анимацию движения свечения по кольцу? [Вдохновленный Паоло Берто.
]
Тема:
Рендеринг.
Используемые техники и инструменты:
Hypershade, IPR (Интерактивный фотореалистичный рендер), Projection (Проекция).
Эффект свечения очень популярен среди заказчиков трехмерной анимации. Обычно они хотят, чтобы их обожаемый объект - зубная паста, машина, звезды - светился для привлечения к ним внимания. Аниматор трехмерной графики в этом случае просто открывает Attribute Editor (Редактор Атрибутов) для материала зубной пасты и увеличивает значение атрибута Glow (Свечение).
Движение свечения по геометрии получить гораздо сложнее, поскольку в этом случае вы должны подвергнуть действию glow лишь определенные части объекта, остальные - нет. Мауа рендерит свечение как «постэффект», после того как закончит процесс создания двумерного изображения. Вы не можете видеть свечение в окнах моделирования, поэтому его местоположение - это всегда причина трудностей и ошибок. В этом уроке вы сможете буквально взять свечение в окне моделирования и переместить его в нужное место. Все, что нам для этого потребуется, - это маленький трюк и краткая экскурсия в мир комбинирования узлов текстуры.
Создайте кольцо.
Для этого можно использовать NURBS-тор,.скорректировав его радиус. Либо вы можете создать кольцо с помощью операции Revolve, вращая NURBS-окружность, которая будет служить поперечным сечением.
Наложите на кольцо шейдер Blinn.
Шейдер Blinn - это типичный материал, отправная точка для получения эффекта металлической поверхности с ее яркими бликами. Самые важные атрибуты блика называются Eccentricity (Эксцентриситет) и Specular Roll Off (Уровень Зеркального Отражения). Их можно найти в секции Specular Shading (Отражающие свойства шейдера). Вместо настройки нового материала вы можете использовать уже готовый металлический шейдер из Интернета или из базы данных шейдеров Мауа. Нажмите на вкладку Shader Library (Библиотека Шейдеров) в окне Hypershader.
Ключ к созданию свечения, путешествующего по кольцу, заключается в использовании локальной проекции параметра свечения.
Другими словами, мы спроецируем текстуру на поверхность, которая не изменит цвета поверхности, но будет менять силу свечения там, где она попадет на поверхность. Не имеет особого значения, какую текстуру использовать для свечения. Мы будем использовать шахматную текстуру (checker), поскольку она позволяет очень точно оценить интенсивность эффекта.
Давайте сначала изменим компоновку окон, в которых вы работаете. Над (некоторые говорят «на севере от») меню Hotbox (Окно оперативного доступа к элементам интерфейса) расположено всплывающее зональное меню с несколькими заготовленными вариантами компоновки окон (рис. 27.1).
Рис. 27.1.
Кольцо и смена компоновки окон во всплывающем зональном меню; вверху меню Hotbox (Окно оперативного доступа к элементам интерфейса)
Набор окон Hypershade / Render / Persp (Hypershade / Рендеринг / Перспектива) лучше всего подходит для нашей цели. Итак, мы имеем перспективное окно внизу справа (для выбора хорошей точки съемки); в окне внизу слева вы можете непрерывно выполнять процесс рендеринга IPR (Интерактивный фотореалистичный рендер). В широком верхнем окне под рукой всегда будет окно Hypershader для объединения желаемых элементов (см. рис. 27.2).
В окне Attribute Editor (Редактор Атрибутов) шейдера Blinn откройте секцию Special Effects (Специальные Эффекты) и щелкните мышкой по значку рядом с полем Glow Intensity (Интенсивность Свечения). Откроется окно Create Render Node (Создать Узел Рендеринга).
Рис. 27.2.
Новый вариант компоновки окон. Вверху расположено окно Hypershader - панель инструментов для создания нового материала; внизу справа - окно моделирования; внизу слева - непрерывно обновляемое IPR (Интерактивный фотореалистичный рендер) изображение
В окне Create Render Node (Создать Узел Рендеринга) отметьте As projection (Проекция) и текстуру Checker (см. рис. 27.3).
Окно IPR (Интерактивный фотореалистичный рендеринг) теперь показывает целиком светящееся кольцо (см. рис. 27.4).
В окне Hypershader дважды щелкните мышкой по текстуре Checker.
В открывшемся окне Attribute Editor (Редактор Атрибутов) затемните значение белого цвета текстуры: Colorl (см. рис. 27.5).
Это позволяет видеть на кольце узор текстуры Checker. Там, где шахматная доска черная, свечение не появляется. Перед сменой белых тонов на серые эффект свечения был слишком выраженным и распространялся даже на не светящиеся области кольца. Помните, что мы меняем не цвет кольца, а интенсивность свечения.
Рис. 27.3.
Мы позволим текстуре Checker решать, где расположить свечение, сделав три простых шага от окна Attribute Editor (Редактор Атрибутов) материала до окна Create Render Node (Создать Узел Рендеринга)
Рис. 27.4.
Окно IPR (Интерактивный фотореалистичный рендер) показывает свечение, полностью покрывающее кольцо. Нерегулярность свечения обусловлена наложением текстуры Checker
Рис. 27.5.
Затемняем белый цвет текстуры Checker. Свечение рендерится только там, где отсутствует черный цвет
До настоящего времени проекция работала по всему объекту. Она покрывала все кольцо целиком. Для того чтобы заставить проекцию работать локально, нам следует глубоко погрузиться в логику функциональных узлов. В окне Hypershader откройте вкладку Work Area (Рабочая Область). Щелкните правой кнопкой мыши либо используйте пиктограмму вверху окна Hypershader для отображения иерархии материала Blinn (его входные и выходные связи). Наведя курсор на линии связи между функциональными узлами, вы увидите, к примеру, что projection1, функциональный узел проекции, отправляет значения полутонов (информацию об альфа-канале) параметру Glow Intensity (Интенсивность Свечения) шейдера Blinn (рис. 27.6).
Рис. 27.6.
Иерархическая структура материала кояьца. Проекция сквозь распределение полутонов (альфа) функционального узла checkerl определяет интенсивность свечения [Узел (node) - это элемент функциональной архитектуры Мауа - графа зависимостей (dependency graph), - в котором происходит обработка и преобразование данных (чисел, массивов, матриц и так далее). Автор использует термин «logic node» для обозначения элементов иерархической структуры материала в окне Hypershade (shader network).
Это частный случай графы зависимостей, поэтому (чтобы не путать с узлами, осуществляющими логические операции над данными) мы будем использовать наиболее близкий по смыслу термин «функциональный узел». - Примеч.ред. ].
В окне Attribute Editor (Редактор Атрибутов) логического узла projection] измените следующие три установки:
Смените тип проекции с Normal (Обычная) на Cylinder (Цилиндр) [Видимо, опечатка в оригинале. Среди типов проекции нет Normal, при создании по умолчанию выбирается тип проекции Planar (Плоскопараллельная), поэтому смените тип проекции с Planar (Плоскопараллельная) на Cilindrical (Цилиндрическая). - Примеч. ред. ].
В секции Color Balance (Баланс Цвета) установите Default Color (Цвет по Умолчанию) на Black (Черный).
В секции Effects (Эффекты) отключите параметр Wrap (Обернуть) (рис. 27.7).
Рис. 27.7.
Три изменения в окне Attribute Editor (Редактор Атрибутов) проекции локализуют эффект свечения
Параметр Wrap (Обернуть) заставляет текстуру охватить весь объект (или периодически повторяться по всему объекту)- Когда он дезактивирован, текстура Checker (или любая другая) работает только там, где нам это нужно, - и нигде больше [При выключенном атрибуте wrap текстура проецируется только внутрь текстурной решетки (в нашем случае это зеленый цилиндр), при включенном атрибуте wrap - и внутрь, и наружу. - Примеч. ред. ]. В тех областях объекта, где материал не находит никакой информации о текстуре, он использует Default Color (Цвет по Умолчанию). Мы хотим, чтобы наш материал был черным везде, где нет свечения, и светло-серым или даже белым там, где оно должно быть.
Если вы заглянете в перспективное окно, то увидите зеленый, наполовину скрытый каркас цилиндра в центре сцены (рис. 27.8). Этот объект называется placeSDtexturel, и он не рендерится. Его задача заключается в том, чтобы определять, где должно появиться свечение, а где - нет. Поскольку в настоящее время он расположен в середине кольца, окно IPR (Интерактивный фотореалистичный рендеринг) не показывает нам никакого свечения.
Рис. 27.8. При отключенном параметре Wrap (Обернуть) кольцо светится только там, где его касается зеленый объект placeSdTexture
Перемещайте, вращайте и масштабируйте объект расположения текстуры placeSDtexturel так, чтобы он накрыл небольшую часть кольца (рис. 27.9).
Рис. 27.9. Окно IPR (Интерактивный фотореалистичный рендеринг) показывает локальное действие оттекстурированного Checker свечения. Справа: манипулятор управления узлом размещения
Окно рендеринга показывает желаемый эффект свечения только в запланированных областях кольца. Для более аккуратного применения локального свечения попробуйте другие манипуляторы значка текстуры.
Переместите опорную точку (клавиша Insert) объекта place3dTexturel в начало координат сцены (см. рис. 27.10). Используйте клавишу X для привязки к сетке.
Рис. 27.10. Перемещаем опорную точку узла расположения текстуры в центр кольца
Анимируйте параметр вращения placeSDtexturel с помощью ключевых кадров либо выражений так, чтобы свечение обошло кольцо несколько раз (рис. 27.11).
Рис. 27.11.
Простое математическое выражение определяет равномерное непрерывное вращение свечения вокруг кольца
Если вас не устраивает текстура Checker, а свечение кажется чересчур слабым, задайте обоим цветам текстуры Checker одинаковое - и может более яркое - значение серого тона. Если вы хотите сменить цвет (или другие свойства) самого свечения, откройте Hypershader ц дважды щелкните по узлу ShaderGlowl. Этот узел - а не шахматная текстура - определяет внешний вид свечения. Если вы хотите вернуться к компоновке окон Four View, используйте новые пиктограммы Мауа 4 в нижней левой панели экрана.
Рис. 27.12.
Возвращаемся к знакомой компоновке окон Four View
Рис. 27.13.
Анимация свечения вдоль более сложной поверхности. Здесь объект расположения текстуры присоединен к пути вдоль поверхности, поэтому свечение в точности следует ее форме
А теперь кое-что новенькое. Приходилось ли вам использовать среднюю кнопку мыши для перемещения по временной шкале в анимации?
Подсказки при использовании в
Для работы с двухмерной графикой я бы посоветовал использовать такую компоновку окон, где справа располагается периодически обновляемое IPR (Интерактивный фотореалистичный рендеринг) - изображение перспективной камеры, а слева окно модуля Paint Effects (Эффекты Рисования).
При рисовании на холсте (в 2D) команда Undo (Отменить) (клавиша Z) не работает. Paint Effects (Эффекты Рисования) являются довольно устойчивым программным модулем, и сохранение (под разными именами) было бы неплохой привычкой. Команда Save (Сохранить) для двухмерных изображений также находится в меню Canvas (Холст).
Кроме того, в меню Canvas (Холст) вы найдете команду Auto Save (Автосохранение). Когда она активизирована, Мауа сохраняет каждый штрих, а вы немедленно можете видеть эффект в перспективном и IPR (Интерактивный фотореалистичный рендеринг) окне.
Во время работы с холстом используйте опции навигации клавиши Alt, например, чтобы получить увеличенное изображение и рассмотреть детали.
Очень полезным инструментом (стандартным для двухмерных приложений) является пипетка. Она отсутствует в окне Paint Effects (Эффекты Рисования). Найти ее можно через Color Chooser (Выбор Цвета), который всегда открывается, если щелкнуть мышкой в поле цвета рядом с буквой С в заголовке окна Paint Effects (Эффекты Рисования).
Рядом с буквой С находится буква Т, которая определяет прозрачность текущей кисти. Выберите светло-серый для легкого нанесения цвета и черный, если вы хотите работать непрозрачной кистью, покрывая все изображение краской.
Быстро сменить размер кисти можно, нажав клавишу В. Держите ее, и нажав левую кнопку мыши, двигайте мышь вправо, чтобы увеличить, либо влево, чтобы уменьшить ширину штриха.
Активно используйте кисти, особенно двухмерные, большой набор которых содержится в секциях Oil (Масляные Краски) и Watercolor (Акварель). Хотя трехмерные кисти тоже очень красивы, помните, что с собой они приносят устойчивое поведение освещения. Когда вы применяете их на трехмерном объекте, вы получите неверное освещение.
Это обусловлено тем, что внутреннее освещение кисти смешивается с трехмерным освещением вашей сцены.
Wrap Canvas (Обернуть) - это очень полезный эффект, который доступен через значок с двумя стрелками в заголовке окна Paint Effects (Эффекты Рисования). Он имитирует постоянно повторяющиеся обои, поэтому, когда вы используете кисть с одной стороны холста, рисунок повторяется с другой. Это особенно важно для текстур, применяемых к поверхностям без края, таким, как сфера и тор.
Заметьте, что при рисовании в 2D вы можете использовать цветные изображения и в качестве карты цвета зеркального отражения либо для эффекта Bump Map (Карта Рельефа) (см. рис. 28.10).
Рис. 28.10.
Текстуру цвета можно также использовать в качестве эффекта Bump Map (Карта рельефа). Там, где присутствуют светлые тона, геометрия немного выпячивается
А теперь кое-что новенькое. Приходилось ли вам в режиме перемещения, нажав клавишу CTRL, щелкать мышкой по голубой стрелке перемещения?
Спасательный круг и любовь
Как нарисовать шесть сердечек на расстоянии друг от друга на надувном спасательном круге?
Тема:
Рендеринг.
Используемые техники и инструменты:
3D Paint Tool (Инструмент Трехмерного Рисования), Paint Effects (Эффекты Рисования).
Раньше программное обеспечение, позволявшее рисовать на трехмерных объектах, было очень дорогим. В версии Мауа 3 оно стало доступнее, а в Мауа 4 это вообще не проблема: трехмерное рисование теперь полностью интегрированно в программное обеспечение. С помощью инструмента 3D Paint Tool (Инструмент Трехмерного Рисования) вы даже можете использовать кисти модуля Paint Effects (Эффекты Рисования), для того чтобы рисовать непосредственно на NURBS или полигональной поверхности.
Однако рисование непосредственно по трехмерной геометрии всегда имеет ряд ограничений, в особенности это касается мелких деталей. Гораздо проще - и, конечно, точнее - рисовать с помощью инструментов двухмерного рисования. Поэтому здесь мы используем процедуру, которая объединит возможности трехмерного рисования с мощью двухмерного рисования.
Вот что мы сделаем: нанесем грубую трехмерную текстуру прямо на объект, а затем детализируем ее в режиме 2D модуля Paint Effects (Эффекты Рисования). Результат мы увидим сразу же в окне IPR (Интерактивный фотореалистичный рендеринг). Объектом рисования будет тор (давайте назовем его спасательным кругом), который мы раскрасим шестью сердечками.
Создайте NURBS-тор. Увеличьте его радиус до 5 и уменьшите height ratio (отношение радиусов сечения и образующей окружностей) до 0,3.
Наложите на тор новый материал.
Выделите тор.
Переключитесь на рендеринг (F5) и вызовите инструмент рисования в 3D. Выберите Textures / 3D Paint Tool (Текстур / Инструмент Трехмерного Рисования). Использование этого инструмента может быть осмысленным только с открытым окном настроек.
Наложите файловую текстуру на спасательный круг. Для этого следует щелкнуть мышкой на Assign Texture (Назначить Текстуру) в секции File Textures
(файловая текстура) окна 3D Paint Tool (Инструмент Трехмерного Рисования).
В открывшемся окне задайте текстуре размер 512x512 пикселей (рис. 28.1).
В окне 3D Paint Tool (Инструмент Трехмерного Рисования) уменьшите Radius (U) (Радиус (U), выберите цвет и нанесите шесть точек в шести различных местах на спасательном круге (рис. 28.2).
Pис. 28.1.
Top готов к раскрашиванию. Окно 3D Paint Tool (Инструмент Трехмерного Рисования) запрашивает размер текстуры. 512x512 пикселей - это необходимый минимум (в нашем случае)
Рис. 28.2.
Рисуем в 3D. Нанесем на спасательный круг шесть точек, которые позже станут сердечками
Ровной тонкой кистью другого цвета нарисуйте стрелки, указывающие вверх от точек (рис. 28.3). Впоследствии в двухмерном изображении это облегчит вам задачу определения местоположения вершины сердечек.
Рис. 28.3.
Стрелки, нарисованные тонкой кистью, указывают наверх
Сохраните сцену.
На этом этапе очень важно сохраниться. Впоследствии Мауа сохранит нарисованную вами текстуру, находящуюся в настоящее время в оперативной памяти компьютера, в папку ваших проектов на жесткий диск. Мауа использует имя сцены при генерации имени картинки.
В окне инструмента 3D Paint Tool (Инструмент Трехмерного Рисования) щелкните мышкой на Save Textures (Сохранить Текстуру). Возьмите на заметку текст в строке Command Feedback (Результат выполнения команды) справа внизу окна Мауа.
Здесь вы увидите имя, под которым сохранена текстура файла. В текущем проекте вы найдете папку с именем 3dPaintTextures. В ней содержится папка с именем вашей сцены, а внутри нее - картинка с именем nurbsTorusShapel_color.iff. Если вы откроете этот файл с помощью утилиты fcheck, то увидите изображение, похожее на то, которое вы нарисовали на спасательном круге в режиме 3D. Однако точки и стрелки очень странно расположены по отношению друг к другу (рис. 28.4). Если бы вы нарисовали две окружности сверху и снизу круга, вы бы сейчас увидели две прямые вертикальные линии в двухмерном изображении. Эти особенности, которые могут озадачить начинающих, давно знакомы экспертам по текстурированию и могут легко объединить двухмерный и трехмерный миры.
Рис. 28.4.
Что общего у этой картинки с нанесенной нами трехмерной текстурой? Много!
При работе с полигональными объектами преобразование текстуры происходит в двумерном пространстве, то есть просто плоские преобразования картинки. Работая с NURBS-поверхностями, мы должны придерживаться общей структуры их UV-координат и не можем изменять детали на локальном геометрическом уровне. Что мы можем сделать на этом этапе - и сделаем, - это загрузить двухмерное изображение в модуль Paint Effects (Эффекты Рисования) и поработать над ним там. Это позволяет работать с деталями.
Нажмите клавишу 8 для переключения в модуль Paint Effects (Эффекты Рисования).
Переключитесь с Paint / Paint Scene (Рисовать / Рисовать Сцену) (трехмерное рисование) на Paint / Paint Canvas (Рисовать / Рисовать Холст) (двухмерное рисование).
Выберите Canvas / Open Image (Холст / Открыть изображение), для того чтобы открыть файл текстуры (см. рис. 28.5).
Рис. 28.5.
Рисуем в 2D, используя Paint Effects (Эффекты Рисования). Самые важные кнопки в заголовке окна: а) новая кисть; б) «обертывающая текстура» опция, позволяющая «склеить» верхний и нижний край (или правый и левый края) текстуры для получения бесшовной картинки; в) меняет цвет; г) меняет прозрачность
Перерисуйте изображение с помощью Paint Effects (Эффекты Рисования). Вместо точек нарисуйте сердечки. Используйте стрелки для ориентирования (см. рис. с 28.6 по 28.9).
Рис. 28.6.
Первая попытка. Сердечки нарисованы красной масляной краской, голубой цвет принесен одной из кистей Clouds (Облака) модуля Paint Effects (Эффекты Рисования)
Рис. 28.7.
Добавьте пару трехмерных подсолнухов на плоский холст
Рис. 28.8.
В отрендеренном изображении сердечки выглядят слишком широкими, а подсолнухи - растянутыми
Рис. 28.9.
Вторая попытка. Слева - двухмерное изображение с сердечками, специально растянутыми в длину, и четкой структурой линий. Эти структуры сохраняют четкость и в отрендеренном изображении (справа), где сердечки приобретают обычные пропорции
Волшебные линзы
Как создать строчку букв, движущихся перед линзой с изменяющимся коэффициентом преломления? [Для того чтобы происходило искажение букв, линза, как и увеличительное стекло в реальном мире, должна находиться между камерой и буквами. То есть мы должны смотреть на наш текст сквозь линзу, для того чтобы получить заявленный эффект. - Примеч. ред.]
Тема:
Рендеринг.
Используемые техники и инструменты:
Text (Текст), Raytracing (Трассировка Лучей), Refractive Index (Коэффициент Преломления).
Летящие надписи [Flying logos - направление в дизайне анимации надписей и логотипов, основанное на пространственном движении, как правило, объемных элементов финальной композиции. - Примеч. ред. ] - это, конечно, уже прошлое, однако изящно анимированный двумерный тест всегда радует глаз. Впечатляющих эффектов можно достичь путем анимации объектов (а не только букв), движущихся перед линзами. Еще более интересные структуры можно получить, если линзы меняют коэффициент преломления и ведут себя так, словно они резиновые.
Для рендеринга преломленного света мы должны отбросить обычную процедуру рендеринга Мауа и переключиться на Raytracing (Трассировка Лучей). Raytracing (Трассировка Лучей) испускает бесчисленное число цифровых лучей в трехмерную сцену, вычисляет, как эти лучи отражаются либо преломляются поверхностью, которой они достигают, и в результате длительных вычислений получается изображение, гиперреалистически четкое и детализированное.
Выберите Create / Text (Создать / Текст) и, используя окно настроек, создайте надпись тем шрифтом и размером, каким вам заблагорассудится (см. рис. 29.1). Поскольку мы будем рендерить буквы, не просто создайте кривые, но активизируйте опцию Trim (Вырезать) для NURBS-поверхностей или Poly (для полигональных поверхностей).
Буквы появятся в сцене как сгруппированные друг с другом объекты. Вы можете удалить кривые, по которым был создан текст, и добавить буквам цвет.
Добавьте в сцену сферу и отмаштабируйте ее так, чтобы она стала почти плоской и приняла форму линзы.
Присвойте линзе шейдер Lambert (см. рис. 29.2).
Рис. 29.1.
Создание текста: мы набираем ничего не значащую фразу «r@ytrace moi!», используя шрифт Courier New
Рис. 29.2.
Щелкните правой кнопкой мыши по линзе и, используя контекстное меню, присвойте ей материал Lambert. Текст получил процедурную текстуру
Создайте новую камеру. Для этого выберите Create / Cameras / Camera (Создать / Камеры / Камера) либо щелкните мышкой по пиктограмме камеры.
Выделите линзу, а затем и камеру и нажмите клавишу Р.
Клавиша Р делает камеру родительским объектом по отношению к линзе. («Очень удобно», - шутит мой друг кинематографист, который меняет объективы различных камер каждый день.)
Немного подвиньте линзу вперед, подальше от камеры. Посмотрите сквозь камеру (рис. 29.3).
Рис. 29.3.
Линза расположена перед камерой. Когда вы смотрите через камеру в окне моделирования, то видите серую стену
Камера направлена на серую линзу, а потому не видит букв.
Откройте Attribute Editor (Редактор Атрибутов) для шейдера Lambert линзы и передвиньте ползунок Transparency (Прозрачности) до конца вправо.
Это сделает линзу (видимую в окнах моделирования и рендеринга) полностью прозрачной.
Процедура Raytracing (Трассировка Лучей) предполагает два этапа. Во-первых, следует сообщить материалу, что он будет принимать участие в трассировке лучей. Сделав это, определите, какие именно объекты (либо, если быть более точным, какие материалы) будут задействованы в длительном рендеринге, а какие не будут. Во-вторых, вам придется активизировать опцию Raytracing (Трассировка Лучей) в окне Render Globals (Глобальные Настройки Рендеринга).
Откройте Attribute Editor (Редактор Атрибутов) шейдера Lambert и в секции Raytrace Options (Настройка Трассировки Лучей) активизируйте параметр Refractions (Преломления) (см. рис. 29.4).
Откройте окно Render Globals (Глобальные Настройки Рендеринга). В секции Raytracing Quality (Качество Трассировки Лучей) включите Raytracing (Трассировка Лучей).
При рендеринге результата сквозь камеру (к сожалению, IPR (Интерактивный фотореалистичный рендеринг) не работает с трассировкой лучей) буквы фразы не будут деформированы (рис. 29.5). Это происходит потому, что Refractive Index (Коэффициент Преломления) линзы установлен на 1, что означает, что все лучи, исходящие от букв и проходящие через линзу в камеру, остаются неизмененными.
Рис. 29.4.
Слева: окно Hypershader. Справа: атрибуты материала линзы. Параметр Transparency (Прозрачность) установлен на Full (Полная), а способность преломлять свет включена
Рис. 29.5.
Raytracing (Трассировка Лучей) без преломления лучей. Значение Refractive Index (Коэффициент Преломления) линзы по умолчанию установлено на 1
В окне Attribute Editor (Редактор Атрибутов) шейдера Lambert измените значение параметра Refractive Index (Коэффициент Преломления) с 1 на большее значение, например 1,3.
Снова отрендерите сцену.
Рис. 29.6.
Текст, отрендеренный со значением параметра Refractive Index (Коэффициент Преломления) 1,3
Теперь вы можете видеть эффект преломленного света (см. рис. 29.6).
Рис. 29.7.
Загадочные двухмерные фигуры, полученные путем увеличения значения параметра Refractive Index (Коэффициент Преломления) линзы. Только буквы справа от линзы остались неизмененными
Измените местоположение камеры и поварьируйте значение параметра Refractive Index (Коэффициент Преломления) линзы (см. рис. 29.7). Попробуйте также изменить расстояние от линзы до камеры.
Перед тем как вы передвинете линзу, которая расположена в системе координат камеры, дважды нажмите на пиктограмму инструмента перемещения либо откройте его окно настроек. В окне настроек выберите режим Object mode (Объектный режим). Обычно вы передвигаете объекты по сцене в режиме World mode, который использует систему координат, параллельную осям XYZ сцены.
С этого момента вы обладаете широкими возможностями анимации движущихся надписей. Вы можете двигать буквы перед камерой либо анимировать движение камеры перед буквами.Что особенно важно, вы можете даже анимировать параметр Refractive Index (Коэффициент Преломления) (рис. 29.8). Для этого можно использовать окно Channel Box (Окно Каналов). Щелкните правой кнопкой мышки по словам Refractive Index (Коэффициент Преломления) и установите ключ. Значения выше 1 делают линзу увеличительным стеклом. При еще больших значениях изображение переворачивается вверх ногами.
Рис. 29.8.
Анимация преломляющей линзы. Значения параметра Refractive Index (Коэффициент Преломления) линзы сверху вниз: 0.3, 0.8,1.0,1.2,1.5, 2.0,2.3
А теперь кое-что новенькое. Приходилось ли использовать пункт меню Optimize Scene (Оптимизировать Сцену) для наведения порядка в сцене ?
Китайский иероглиф Жи
Как создать анимацию каллиграфической кисти, рисующей Жи - китайский иероглиф, обозначающий «машина»? [С благодарностью Ли-юн Бауер-Сиех и Хуанг Сонг.
]
Тема:
Рендеринг.
Используемые техники и инструменты:
Paint Effects (Эффекты Рисования), Clip (Клип), Trax Editor (Редактор Дорожек).
Основное различие между существовавшими ранее способами цифрового рисования и Maya Paint Effects (Эффекты Рисования) заключается в том, что в обычных пакетах рисования штрих неподвижен, в то время как законченный штрих модуля Paint Effects (Эффекты Рисования) может быть впоследствии изменен, настроен и - да! - анимирован. Просто взгляните на набор атрибутов (на которые можно устанавливать ключевые кадры) обычного чернильного штриха в Мауа - это поразительно!
В этом уроке мы создадим анимацию одного-единственного китайского иероглифа, Жи (машина). Китайское слово, обозначающее космический челнок, например, тоже содержит букву Жи. Космический челнок - это taikong chuan suoji - машина-челнок, проникающая в космос (рис. 30.1). Жи - последний символ в этом термине - в настоящее время пишется достаточно просто, в соответствии с современной системой написания букв (см. рис. 30.2).
Рис. 30.1. «Космический челнок» по-китайски: «проникающая сквозь космическое пространство машина-челнок». Последний справа знак представляет собой аббревиатуру, современный способ написания Жи (машина)
Рис. 30.2.
Рисование иероглифа Жи традиционной каллиграфической кистью
Однако исходный иероглиф, которому уже тысяча лет, гораздо более сложен (см. рис. 30.3). Он состоит из четырех частей: слева (штрихи с 1 по 4) древесина; вверху (штрихи с 5 по 10) два челнока ткацкого станка или дверного замка обозначают подвижные механические части; снизу в середине (штрихи с 11 по 13) человек; и наконец, большая структура, проходящая через всю правую сторону иероглифа (штрихи с 14 по 16), оружие. Если это прочитать как предложение, то мы получим примерно следующее: «Движущиеся механические деревянные части, которые помогают человеку сражаться».
В искусстве каллиграфии порядок и направление нанесения каждого штриха играют очень важную роль. Поскольку это динамический процесс, описание его на статичной бумаге, используя цифры и стрелки, как на рисунке 30.3, не совсем подходящий способ. Однако с помощью анимации эта информация может быть выражена в сжатой и интуитивно понятной форме. Мы воспользуемся каллиграфической кистью и проанимируем штрихи после того, как нарисуем их (если у вас есть графический планшет, используйте его!). Анимацию отдельных штрихов легко будет скоординировать между собой, используя нелинейную анимацию и Trax Editor (Редактор Дорожек).
Рис. 30.3.
Древняя классическая форма иероглифа Жи. Красными стрелками показан алгоритм его каллиграфического исполнения
Создайте NURB S -поверхность.
Увеличьте ее на 3 единицы.
Переключитесь на Рендеринг, нажав F5.
Подготовьте (выделенную) поверхность к рисованию. Выберите Paint Effects / Make Paintable (Эффекты Рисования / Сделать раскрашиваемым).
Этими шагами мы создали поверхность и приготовили ее к работе с каллиграфической кистью, которую и выберем сейчас.
Нажмите клавишу 8. Вы вошли в модуль Paint Effects (Эффекты Рисования).
Нажмите на пиктограмму Get Brush (Взять Кисть). Открывается окно Visor.
В окне Visor откройте папку pens (ручки).
Щелкните по кисти с названием calligraphic.mel (см. рис. 30.4).
Рис. 30.4.
Щелкнув по пиктограмме Get Brush (Взять Кисть) в окне Paint Effects (Эффекты Рисования), мы открыли окно Visor. Каллиграфическая кисть находится в папке pens (ручки)
Закройте окно Visor.
Нарисуйте на бумаге 16 штрихов, формирующих иероглиф Жи, в соответствии с иллюстрацией на рисунке 30.3. По возможности точно следуйте цифрам и стрелкам. Пусть это займет немного вашего времени (рис. 30.5).
Рис. 30.5.
Каллиграфия с использованием модуля Paint Effects (Эффекты Рисования)
Выйдите из модуля Paint Effects (Эффекты Рисования), снова нажав клавишу 8.
В перспективном окне вы видите каллиграфические штрихи в виде кривых на поверхности (см.
рис. 30.6). В окне Outliner ( Схема сцены) мы видим индивидуальные кривые как список объектов. В окне Channel Box (Окно Каналов) в секции strokeShape Calligraphic мы видим атрибут Max Clip (Максимальный Клип). Это - решающий атрибут для нашей анимации. Если мы уменьшим его значение, то укоротим штрих. В самом низу секции мы видим атрибут Primary Visibility (Первичная Видимость), который позволяет исключить штрих из процесса рендеринга.
Рис. 30.6. Слева изображены 16 штрихов в скромном представлении перспективного окна. В середине окно Outline! (Схема сцены), содержащее полный список штрихов. Справа окно Channel Box (Окно Каналов). В нем отмечены два решающих атрибута для анимации штрихов: Max Clip (Максимальный Клип) и Primary Visibility (Первичная видимость)
Давайте теперь расположим ключевые кадры для всех штрихов так, что они станут невидимыми в начале анимации, просто установив значение атрибута Primary Visibility (Первичная Видимость) в off (выключен). Кадром позже они снова все станут видимым (атрибут Primary Visibility (Первичная Видимость) включен) и встанут в начало своего пути (Max Clip (Максимальный Клип) 0). В конце анимации они все достигнут конца пути и появятся полностью прорисованными (Max Clip (Максимальный Клип) 1).
Задайте длину анимации 200 кадров.
Идите в начало анимации.
Выделите все штрихи в окне Outliner (Схема сцены).
В окне Channel Box (Окно Каналов) перечислены атрибуты всех выделенных штрихов, однако показаны только те, которые относятся к последнему выделенному штриху (рис. 30.7). Поэтому не беспокойтесь об этом.
Рис. 30.7.
Многоточие после имени штриха в окне Channel Box (Окно Каналов) указывает на то, что это не единственный объект, выделенный в настоящее время
В окне Channel Box (Окно Каналов) наберите слово off в поле Primary Visibility (Первичная Видимость). Щелкните правой кнопкой мыши по словам Primary Visibility (Первичная Видимость) и установите ключ для выделенного параметра.
Перейдите на кадр вперед.
Включите Primary Visibility (Первичная Видимость) (набрав в ее поле on) и установите ключевой кадр.
Уменьшите значение Max Clip (Максимальный Клип) с 1 до 0 и установите ключевой кадр.
Идите в конец анимации.
Введите значение 1 для Max Clip (Максимальный Клип) и установите последний ключевой кадр.
Теперь для каждого из 16 штрихов установлено по три ключевых кадра. При рендеринге анимации вы увидите в начальном кадре чистый лист бумаги (рис. 30.8). Отрендерив следующий кадр, вы увидите первые точки штрихов (см. рис. 30.9). Если вы воспроизведете всю анимацию, то увидите, что штрихи появляются равномерно и одновременно и достигают своей окончательной длины в самом конце (см. рис. 30.10). Если какой-то штрих нарисован в неверном направлении, вы можете исправить это сейчас, изменив значение Max Clip (Максимальный Клип) с 1 до 0, вместо с 0 до 1 и задав значение 1 атрибуту Min Clip (Минимум клипа).
Рис. 30.8.
Отрендеренная анимация в кадре О
Рис. 30.9.
Отрендеренная анимация в кадре 100. Все штрихи прорисовываются одновременно
Рис. 30.10.
В кадре 200 все штрихи достигли конечной длины одновременно
Теперь время тайминга! [Timing - термин, используемый в анимации. Он не имеет прямого аналога в русском языке и означает распределение анимационных событий во времени. В зависимости от контекста его можно переводить как хронометраж или темпо-ритм. - Примеч. ред] (Кто сказал «время дорожек»?) Нет ничего лучше для изменения тайминга, чем нелинейная анимация. Эта наиболее прямой способ. Сначала мы преобразуем всю анимацию в клипы, затем отмасштабируем их и поместим их в Trax Editor (Редактор Дорожек) для подбора наилучшего тайминга. Если ваша версия Мауа не поддерживает нелинейную анимацию, используйте Dope Sheet (Монтажный Стол) для финальных шагдв.
Штрихи, перечисленные в окне Outliner (Схема сцены), в действительности не содержат ключевых кадров, которые мы только что установили. Если попробовать преобразовать их в клипы, программа ответит сообщением об ошибке, произошедшей из-за отсутствия данных об анимации. В окне Outliner (Схема сцены) мы видим только информацию о кривых.
Информация о форме штрихов, называемая strokeShapes, находится в функциональных узлах под кривыми. Поэтому преобразовывать сейчас мы будем не штрихи, а форму штрихов.
В окне Outliner (Схема сцены) либо в перспективном окне выделите первый штрих. Нажмите клавишу Down Arrow (Стрелка Вниз), для того чтобы спуститься на один шаг в иерархии, к формам.
Переключитесь в меню Animation (Анимация) (клавиша F2).
Выберите Animate / Create Clip (Анимация / Создать Клип). Это конвертирует ключевые кадры выделенного объекта в клип.
Выделите второй штрих, снова нажмите клавишу Down Arrow (Стрелка Вниз), затем G (для того, чтобы повторить последнюю команду). В строке Command Feedback (Результат выполненной команды) появится сообщение о том, что Мауа только что создала clip2.
Повторите процедуру для каждого из оставшихся штрихов. Через минуту или около того вы получите 16 клипов.
При воспроизведении анимации вы не увидите ничего нового. Все штрихи, длинные или короткие, появляются одновременно в течение 200 кадров. Единственное изменение заключается в том, что временная шкала больше не показывает ключевые кадры. Теперь все они собраны в компактные полоски, одна под другой в окне Trax Editor (Редактор Дорожек), где мы легко можем ими манипулировать.
Выберите Window / Animation Editors (Окно / Редакторы Анимации), для того чтобы открыть окно Trax Editor (Редактор Дорожек) (рис. 30.11).
Рис. 30.11.
Окно Trax Editor (Редактор Дорожек), где все данные анимации собраны в полоски. Каждая из них начинается в кадре 0 и заканчивается в кадре 200
Выделите все клипы. Дважды щелкните мышкой по одному из них.
Это переносит все параметры выделенных клипов в окно Channel Box (Окно Каналов). Теперь мы укоротим длину полосок.
В окне Channel Box (Окно Каналов) уменьшите Scale (Масштаб) всех штрихов, введя значение 0,2.
Это укоротит клипы до 1/5 их начальной длины. В нашем случае это означает меньше двух секунд вместо восьми (пересчитанные по системе PAL или кинематографической системе).
Измените положения клипов в окне Trax Editor ( Редактор Дорожек) так, чтобы один следовал за другим (рис. 30.12). Используйте стандартные возможности навигации клавиши ALT.
Рис. 30.12. Укорачиваем и перемещаем клипы прямо как в программе цифрового видеомонтажа
При воспроизведении анимации (вам, возможно, придется расширить диапазон воспроизведения) вы увидите результат своих нелинейных манипуляций. Появляется первый штрих. Когда он закончен, начинает появляться второй и т.д.
Если вы создаете эту анимацию для учебного пособия, типа интерактивного CD-ROM, вам, возможно, придется дополнительно ее подредактировать. Например, нелишним было бы немного отделить во времени начертание каждой из четырех частей иероглифа Жи. Или, например, выделить коротким штрихам меньше времени, чем длинным, для достижения конечной длины. Вы также можете анимировать поверхность, на которой все это происходит, и наложить на нее текстуру бумаги. Эта текстура не зависит от каллиграфических штрихов. Вы можете даже изменить (или анимировать) вид некоторых штрихов, открыв для них Attribute Editor (Редактор Атрибутов). Например, можете попробовать задать атрибуту Gap Size (Размер Пробела) значение 0,7 (см. рис. 30.13).
Рис. 30.13.
Штрих 14 с измененным цветом и значением пробела
А теперь кое-что новенькое. Приходилось ли вам нажимать правую кнопку мыши на временной шкале?