- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF90:Blender
Материал из Linuxformat.
Blender |
---|
|
Blender продвинутый |
---|
Содержание |
Анимация и текстурирование
ЧАСТЬ 3 Сегодня Андрей Прахов вдохнет жизнь в созданный нами мирок, раскрасив его обитателей и научив их двигаться в соответствии с законами физики.
На прошлых уроках мы с вами познакомились с основами моделирования в Blender и даже сваяли симпатичную фигурку пингвина. Но, как вы понимаете, возможности программы не ограничиваются банальным моделингом. В этот раз мы познакомимся с различными с видами анимации, продолжим разговор о текстурировании, попробуем на ощупь физику. Вдохнем же жизнь в нашу картинку!
Прежде чем мы приступим к анимации, необходимо разобраться с возможностями программы в этой области.
Задача № 1.
- Предположим, имеются пункты «А» и «B», необходимо переместить объект из одной точки в другую.
Подобный метод анимации в трехмерной графике получил название «ключевой». Смысл его в том, что указываются начальное и конечное положение объекта, а программа достраивает промежуточные значения. Это самый простой и распространенный вид анимации. С его помощью можно не только перемещать и вращать объекты, но и масштабировать их, работать с материалами и изменять внутреннюю структуру. Для работы с данным инструментом существует окно Timeline (рис. 1)
- Начальное значение кадра;
- Конечное значение кадра;
- Пошаговая перемотка. Для быстрого перехода в нужное место введите сюда свое значение;
- Переход в начало линейки;
- Переход на ключ назад;
- Проигрывание анимации. Приятная особенность Blender’а в том, что он позволяет редактировать сцену без остановки проигрывания;
- Переход на ключ вперед;
- Переход в конец анимации;
- «Автозапись». Автоматическое создание ключей в зависимости от манипуляций над объектами;
- Отключение/включение звука при проигрывании анимации;
- Курсор текущего кадра;
- Градация линейки.
Принцип работы с ключами очень простой и я продемонстрирую его на следующем примере. Создайте куб и откройте окно Timeline в удобном для вас месте. Находясь в режиме Object Mode и при выделенной фигуре, нажмите I для вызова меню вставки анимационных ключей. Выберите верхнее значение Loc. Сдвиньте анимационный курсор (№ 11, рис. 1) на любое количество кадров вперед и активируйте клавишу записи (№ 9, рис. 1). Передвиньте куб в произвольное место. На линейке появятся желтые полоски, обозначающие установленные ключевые кадры. Если теперь проиграть анимацию, вы увидите движение объекта из одной точки в другую.
Задача № 2.
- Передвинуть объект из точки «А» в точку «B» вдоль некоторой кривой.
Первый метод обеспечивает линейную анимацию, что и было продемонстрировано в примере выше. Более точную настройку анимации в пространстве и во времени предлагает специальный инструмент Blender’a — IPO Curve Editor.
Позволю себе немного отвлечься от темы и напомнить, что программа имеет ряд предустановленных типов расположения окон — их можно выбрать из выпадающего списка в верхней части экрана. Быстрые клавиши перехода от темы к теме — Ctrl+курсор влево или вправо.
Перейдите в режим отображения окон SR:1 — Animation. Эта тема, как нетрудно догадаться, наиболее удобна для создания анимации. В правом углу расположено окно IPO Curve Editor (рис. 2):
- Область, отображающая кривые для манипуляции конкретными переменными;
- Точка, являющаяся ключевым кадром в анимации;
- Название свойства трансформации объекта;
- Кнопка активации конкретного показателя.
Работа с этим редактором требует определенного пространственного мышления, так как кривые представляют управление объектом в схематическом виде. Тем не менее, в работе это окно практически ничем не отличается от других. Можно перемещать, увеличивать изображение в окне. Выделение и перемещение кривых происходит точно такое же, как и в случае с обычными объектами. При входе в режим Edit Mode возможна работа с отдельными точками. Не будем повторяться - просто загляните во вторую часть урока (LXF89), где рассказывается про работу со сплайнами.
Иногда оказывается, что достичь желаемого результата, используя ключевую анимацию, затруднительно. Тогда на помощь приходит анимация вдоль пути. С ее помощью многие вещи можно сделать значительно проще.
Например, в сцене данного урока Tux гордо шагает по вращающемуся шару, но если бы нам потребовалось также изобразить Луну, делающую оборот вокруг Земли, или надпись “Linux Forever”, тут-то бы и пригодилась анимация вдоль пути.
1 Давайте попрактикуемся. Начните с чистой сцены, на которой есть только куб. Переключитесь на вид спереди (NumPad1) и добавьте путь: Пробел-> Add->Curve->Path. Расположите объект Path (он изображен ребристой линией) чуть выше куба. |
2 Привяжите анимацию куба к пути. Для этого: перейдите в Object Mode (клавиша Tab), выделите куб правой кнопкой мыши, затем щелкните правой кнопкой мыши по Path, удерживая нажатой клавишу Shift (таким образом вы выделите оба объекта) и нажмите Ctrl+P. В появившемся меню выберите пункт Follow Path — появится пунктирная линий, связывающая куб с Path. Осталось только нажать Alt+A и убедиться, что анимация работает (куб движется вдоль пути). Для завершения анимации нажмите Escape. |
3 А теперь самое интересное. Перейдите в Edit Mode (Tab), выделите любой из узлов пути щелчком мыши и тащите его вверх.
Завершите перемещение тем же щелчком мыши. Проиграйте изменившуюся анимацию (Alt+A). |
Только подумайте, сколько всего интересного можно создать, приложив к этой схеме немного фантазии!
Задача № 3.
- Bake settings Открывает дополнительное окно, в котором можно настроить и выполнить предварительный расчет физики объекта. При общем рендеринге картинки не будет производится вторично.
- Friction (Трение) Меньше трения – больше движения, скажем, при использовании ветра.
- Grav Гравитация, сила, которая направлена в отрицательном направлении по оси Z.
- Error Limit (Лимит ошибок) Определяет размер шагов во время симуляции. Меньшее значение дает большую точность, но повышает время вычисления.
- Mass (Масса) Определяет массу вершин. Большая масса замедляет движение, но не для гравитации, где движение есть константа и не зависит от массы.
- Speed (Скорость) Контролирует внутреннюю скорость мягкого тела.
- Apply Deform First (Сначала применить деформацию) Позволяет применить эффект мягкого тела после деформации объекта Арматурой или Решеткой.
- Use Goal (Использовать Цель) Использует для симуляции движение из анимации (Ipo, Deform, Parents, и т.д.). “Goal” (Цель) – это желаемая конечная позиция для вершин, основанных на этой анимации. Достижение “Цели” управляется силой упругости и демпфирования (Damp).
- Goal (Цель) Значение “цели” по умолчанию, если не назначена группа вершин (Vertex Group). Если группа вершин назначена и используется, то эта кнопка будет отображать название группы вершин.
- G Stiff Пружинная упругость для “цели”. Низкое значение дает больше эластичности, а высокое – больше упругости.
- G Damp Коэффициент трения для “цели”. Высокое значение увеличивает демпферный эффект на мягкое тело.
- G Min/G Max Когда вы задаете значение воздействия на вершины с помощью окрашивания (используя WeightPaint), то для более точной настройки можно использовать GMin и Gmax. Самое низкое воздействие (синий цвет) будет соответствовать GMin, а самое высокое (красный цвет) - GMax.
- Use Edges (Использовать ребра) Ребра mesh-объекта могут работать как пружины.
- Stiff Quads - Если для граней включена опция quad, то диагональные ребра будут использоваться как пружины. Это предотвращает полное ослабевание граней.
- E Stiff - Пружинная упругость для ребер (определяет, насколько они прочные). Низкое значение означает очень малую упругость (очень гибкий материал), а высокое значение соответствует большой жесткости (жесткий материал).
- E Damp - Сила трения для граней. Высокое значение снижает трение (т.е. “смазывает” ребра “смазкой”).
- Анимация внутренней структуры объекта или самого объекта с учетом внешних воздействий.
Для решения этой задачи имеется несколько путей: либо использование ключевой анимации (с некоторыми нюансами), либо — встроенного физического движка программы. С него-то мы и начнем.
Любой объект в Blender, помимо стандартных трехмерных показателей, может иметь и физические, такие как масса, упругость, трение… Все это обеспечивается так называемой системой мягких тел.
Откройте файл lesson3_begin.blend, который находится на диске журнала, или же свой проект, оставшийся с прошлого урока. Теперь нашей задачей является создание флага и имитация движения полотнища под воздействием ветра.
Установите 3D-курсор в свободном месте окна Top View (NumPad7) справа от модели пингвина. Древко нашего флага мы будем делать из примитива. Создайте его, нажав пробел и выбрав Add->Mesh->Cylinder. Значение, предлагаемое программой, оставьте без изменений (vertices=32). Перейдите в режим Object Mode (Tab) и в окне Transform Properties (клавиша N) введите следующие параметры:
ScaleX=0,100 ScaleY=0,100 ScaleZ=3,500
Переименуйте объект в Staff. Теперь перейдем к созданию полотнища. Для этого идеально подходит примитив Plane (плоскость). Переключите вид на Front View (NumPad1), немного сместите курсор и создайте поверхность (Add->Mesh->Plane). Чтобы придать ему вид флага, растяните его (S) по координате Z до 1,4000, а затем по X до 2,0000. Переименуйте полученный объект во Flag.
Теперь необходимо разделить объект на дополнительные полигоны. Это можно сделать, перейдя в режим редактирования. Выделите объект (A), нажмите W и выберите пункт меню Subdivide. Проделайте эту операцию еще три раза.
Из подготовительной части осталось только включить сглаживание (F9, Set Smooth). В дальнейшем это нам пригодится.
Итак, система мягких тел в Blender’e позволяет реализовать движение вершин объекта в соответствии с законами физики. Ключевое слово в этой фразе — «вершины». Поэтому сейчас нам необходимо подготовить объект к работе с физикой.
Перейдите в окно Front View (NumPad1) и выделите полотнище флага. В режиме редактирования нажмите F9. Инструментарий для работы с вершинами находится в закладке Link and Materials -> Vertex Groups. Проследите, чтобы все вершины флага были выделены и нажмите кнопку New для создания новой группы. Введите в поле Weight значение 0, переименуйте группу в 1, нажмите Assign. Таким образом, вы подготовите группу вершин, которые в дальнейшем будут обрабатываться физическим движком.
Теперь необходимо отделить от группы некоторое количество вершин для закрепления их на древке; естественно, к ним физика применяться не будет. Для этого снимите общее выделение (A) и отметьте край полотнища толщиной в одну клетку для крепления (рис. 3а).
Установите параметр Weight равным 1 и повторно выполните присоединение (Assign). Чтобы удостовериться в правильности наших настроек, можно перейти в режим Weight Paint (находится в том же меню, что и Object Mode, Edit Mode). Картинка должна выглядеть, как на рисунке 3б. Для перехода к настройкам физики нажмите «F7» и активируйте кнопку Physics Buttons. Нас интересует закладка Soft Body. При включении единственной находящейся там кнопки раскроется следующее окно (рис. 4).
Перенесите все значения, представленные на рисунке, в ваш проект. Чтобы указать программе, с каким набором вершин нужно работать, нажмите маленькую кнопочку рядом с Use Goal и выберите группу 1. Для проверки сделанного необходимо перевести курсор в окно проекции и нажать Alt+A. Этим сочетанием клавиш вы запустите анимацию в данном окне. Заметили, что полотнище безвольно колышется? Необходимо добавить ветер, но прежде чем мы сделаем это, ознакомьтесь с настройками Soft Body во врезке «Физика мягкого тела».
Для создания ветра необходимо перейти в окно Top View. Установите курсор слева от флагштока и создайте пустой объект (Add->Empty). Подобного рода объект является лишь служебным каркасом и не отображается при рендеринге. Разверните его так, чтобы ось «Z» смотрела вдоль полотнища, и поменяйте название на Wind. Таким образом мы указываем направление ветра.
Чтобы применить нужный эффект, нажмите F7, активируйте Physics Buttons, в закладке Fields and Deflection -> Fields выберите Wind из выпадающего списка. Данная функция предлагает нам следующие настройки:
- Strength (Сила);
- Fall-off (Затухание) Ослабление силы ветра с расстоянием;
- MaxDist Максимальное область действия эффекта по координате Z.
Поменяйте значение параметра «strength» на 0,8. Проиграйте анимацию… Вот теперь наш флаг колышется более правдоподобно. Конечно же, не мешало бы сделать направление и силу ветра переменными, но это вы сможете сделать самостоятельно после прочтения данного урока. А пока давайте совместим полотнище с флагштоком (рис. 5) и перейдем к следующей части — созданию и анимации земного шара.
Задача № 4.
- Заставить шарик вращаться и наложить на него текстуру.
Для сотворения Земли мы воспользуемся ключевой анимацией и редактором IPO Curve. Начнем же, естественно, с создания модели. Установите 3D-курсор в свободной области окна Front View ниже модели пингвина с учетом объемности создаваемого макета. Добавьте в сцену примитив UVSphere с параметрами 64,64. Отмасштабируйте его по всем осям до 20,000 единиц. Если при этом он перекроет другие объекты — ничего страшного, просто передвиньте его в более подходящее место. Совмещением моделей мы займемся попозже. Переименуйте сферу в Earth и примените сглаживание (Set Smooth).
Работу над этой частью анимации лучше всего продолжать, применив схему расположения окон Sr:1 — Animation. Переключите окно с моделями в режим Front View. Выделите шар, нажмите I для вызова меню вставки ключа. Так как предполагается осевое вращение по одной из координат, выберите начальной точкой параметр Rot. Передвиньте анимационный курсор на значение 250 или введите его в соответствующем окне (см. начало урока). Включите запись анимации и поверните объект (R) по координате X на значение −10,00. Отключите запись и проиграйте. Если все сделано верно, вы увидите неполный поворот шара по оси X. Посмотрите теперь на окно редактора IPO Curve. Представленная там кривая RotX не является прямой, а значит, анимация будет с ускорением и замедлением (если кривую не видно, необходимо «отъехать» колесиком мыши). Нам это не нужно. «Спрямление» можно выполнить вручную, выделяя каждую точку и работая с ними как с кривыми Безье, или же воспользоваться специальной функцией.
Выделите кривую RotX в режиме Object Mode (правой клавишей мыши или цветной кнопкой у названия), затем вызовите функцию Extrapolation из меню Curve -> ExtendMode. Удалите лишние кривые. Просто выделите их и нажмите клавишу X.
Вот и все, теперь наш шар крутится с постоянной скоростью в нуж- ном направлении.
С анимацией мы закончили, осталось «раскрасить этот мир» и расставить объекты по местам. Начнем, пожалуй, с древка. Так как у нас не стоит задача добиться фотореалистичности, то оставим в покое процедурные карты и текстуры высокого разрешения, и просто создадим материал соответствующей расцветки. Напомню, что для этого нужно перейти в Object Mode, нажать сначала F5, а затем кнопку Materials Buttons и в закладке Links and Pipeline выбрать Add New (см. LXF89). Поменяйте значение RGB на: 0,500; 0,300; 0.
Помимо стандартной расцветки материала, Blender позволяет использовать многоуровневые наложения в виде слоев. В новой версии программы вы можете использовать до 10 текстур в одном материале. Не стоит думать, что под термином «текстура» скрывается воз- можность использования лишь сторонних картинок! Blender имеет ряд предустановленных, входящих в стандартную комплектацию процедур- ных карт, которые вы с успехом можете использовать в своих работах. Процедурными эти типы текстур называются потому, что для создания их используются специальные программные модули. С их помощью вы можете сгенерировать вполне реальные облака, дерево, ландшафт, шершавые поверхности и многое другое. Слои могут отображаться одновременно при помощи механизма смешивания. Благодаря этому можно добиться весьма интересных эффектов, но это уже отдельная история. Мы же пока воспользуемся наложением внешней текстуры на объекты.
В директории с файлами к этому уроку на LXFDVD вы найдете две текстуры для отображения земной поверхности и флага. Создайте новый материал для флага и в закладке Texture нажмите Add New. Так в текущий материал добавляются новые слои (рис. 6).
Настройка созданной текстуры производится в панели, вызываемой клавишей F6. Выберите из выпадающего списка Texture Type тип Image. Осталось только загрузить нужный файл в проект, нажав Load Image (файл flag_tex.jpg). Проделайте то же самое для шара, только текстура в данном случае будет называться earth.jpg.
Все необходимые настройки загруженных картинок находятся в данной закладке. Вы можете указать смещение текстуры относительно объекта, воспользовавшись значениями MinX, MaxX, MinY, MaxY, или развернуть ее на 90 градусов функцией Rot9. Если тип картинки поддерживает канал прозрачности (альфа-канал), его можно включить кнопкой Use Alpha. Для повтора узора на поверхности имеется кнопка Repeat, количество повторов можно регулировать значениями Xrepeat, Yrepeat. Кроме того, поддерживается настройка анимации текстуры на объекте.
Вот так, очень просто, можно раскрасить безликие примитивы.
Задача № 5.
- Разместить объекты на сцене.
Для завершения работы над нашей сценой необходимо разместить объекты в нужных местах. Задача эта непростая, если перемещать каждый объект вручную. Очень часто при построении сложной сцены и перемещении моделей в ней теряются некоторые компоненты. Поэтому важна строгая иерархия. Blender поддерживает создание групп со сложной подчинительной структурой, состоящей из материнского объекта и нескольких дочерних. Схватившись за родительский объект, можно перетянуть всю нижестоящую иерархию.
Выделите весь флаг таким образом, чтобы шток был отмечен последним (не забудьте и про «ветер»!). По умолчанию, родительским объявляется именно последний объект. Нажмите Ctrl+G — Add New Group для создания новой группы и переименуйте ее во Flag. Затем создайте иерархию комбинацией Ctrl+P — Make Parent. Вот и все, для проверки попробуйте перетянуть группу, ухватившись за шток флага. Если все сделано правильно — перенесется вся группа.
Следующим на очереди у нас идет пингвин. Проделайте ту же операцию, в качестве родительского объекта выберите тело (Body). Новую группу можно назвать Tux.
Итак, у нас имеются группы и объекты: Tux, Flag, Lamp, Earth, Camera. Удобнее всего выполнить нашу задачу в SR:1 — Animation. Окно слева вверху демонстрирует иерархическую структуру сцены. Теперь, выделяйте нужный объект или группу в этом окне, переносите курсор в окно View и вводите значения из таблицы (рис. 7) в окно Transform Properties (клавиша N).
Выполните наводку камеры и лампы на объект Body. Для этого выделите камеру, затем туловище, и нажмите Ctrl+T. То же самое проделайте и для лампы.
Вот мы и подошли к завершению этого урока. Осталось только разобраться с рендером анимации и обработать первый свой ролик из-под Blender.
При нажатии F10 вы попадете в окно настройки рендера (рис. 8). Обратите внимание на закладку Format. Здесь вы можете выбрать один из заготовленных стандартов, либо ввести удобные для себя значения. Чуть ниже таблицы разрешений из выпадающего меню можно выбрать необходимый вид сохранения результата, настроить кодек, установить количество кадров. Для демонстрации результата советую использовать предустановленный тип Preview, как наиболее скоростной из имеющихся.
В панели Output необходимо указать путь для сохранения результата, а закладка Anim позволяет выполнить саму обработку (кнопка Anim), проиграть последнюю анимацию (Play) встроенным проигрывателем программы, настроить начало и конец анимации для обработки (значения Start, End). Выполните все выше сказанное и… запаситесь терпением, обработка может занять значительное время.
Впереди у нас остался последний, заключительный урок из серии «Blender для начинающих», где мы познакомимся со скелетной анимацией, поговорим о правильном освещении, окончательно доработаем сцену.