Как посмотреть анимацию в блендере
Анимация персонажей в Blender 3D — это просто
Мир open source не стоит на месте и постоянно развивается. Про Blender 3D написано уже много статей, но помимо Blender, существует еще много полезных и бесплатных программ. Одна из них, это MakeHuman. На Хабре упоминания о ней имеются, но какой либо информации по ней нет. Предлагаю вам заглянуть под кат и посмотреть, что анимация персонажей в связке MakeHuman+Blender3D, это действительно просто. Осторожно, много картинок.
Подготовка
Запустим Blender и перейдем в настройки (Ctrl+Alt+U).
В дополнениях, у вас должен появиться пункт MakeHuman, при выборе которого вы увидите три дополнения, которые необходимо активировать проставив галочки.
Также необходимо активировать дополнение Import-Export Make Human:
Последнее, что необходимо сделать в настройках, это поставить галочку возле Auto Run Python Scripts (необходимо для работы скрипта импорта).
Сохраняем настройки нажав Save User Settings.
Моделирование персонажа
Сразу скажу, что русский язык включается в настройках.
MakeHuman, это генератор персонажей мужского и женского пола. По пиктограммам и надписям, думаю понятно, какой ползунок за какую часть человеческого тела отвечает.
Во вкладке «Моделирование» персонажа можно состарить, изменить цвет кожи, сделать ему длинные руки, ноги и т.д.
Во вкладке «Геометрии» персонажа можно одеть, добавить ему волосы, зубы, брови, веки, язык и другие необходимые органы (если требуется).
Для примера, я сделал вот такого симпатичного молодого человека.
Теперь, необходимо добавить ему кости для анимации.
Переходим во вкладку Поза-Анимировать и выбираем любые понравившееся кости. Я выбрал кости «Basic».
Далее, экспортируем нашего персонажа в формат понятный Blender`у. Файл->Экспорт, выбираем всё как на скриншоте:
По середине окна, есть кнопка с тремя точками, которая позволяет выбрать папку для сохранения и имя файла. Сохраняем нашего персонажа и переходим в Blender.
Анимация
В Blender, удаляем всё со сцены и идем в меню File-Import->MakeHuman:
Ищем сохраненный ранее файл и выбираем его.
В принципе, персонаж со всеми костями и манипуляторами готов. Можно подвигать частями тела и уже делать анимацию в ручную. Но это не наш метод и мы пойдем дальше.
В открывшемся окне выбора файла, выбираем любой понравившийся нам файл с анимацией bvh, который мы скачали ранее.
И теперь можно насладиться нашей анимацией, нажав кнопку Play.
Немного полезностей
1. MakeHuman при экспорте сохраняет файл персонажа в файл с расширением mhx и рядом создает папку textures которой лежат текстуры глаз, кожи и т.д. Вы всегда можете дорисовать что-то своё. Например татуировки или шрамы. UV развертку он тоже создает самостоятельно.
2. После того как вы накопите у себя много файлов с анимациями bhv, становится трудно ориентироваться в них всех. Естественно, вам хочется иметь какой-то предпросмоторщик. И он есть. Называется bvhacker, является бесплатной и open source программой и живет здесь. Так же, с помощью него можно исправлять и корректировать анимацию.
На этом на сегодня всё, надеюсь информация будет кому-то полезной.
В следующей статье расскажу о том, как создать анимацию, используя камеру и motion capture в blender.
Введение в анимацию в Blender
Blender предназначен не только для создания трехмерной графики. Он включает обширный инструментарий современной компьютерной анимации. В Blender можно анимировать не только простое перемещение объектов в пространстве, а также изменение их формы, можно использовать систему костей, создавать циклическое движение, перемещение по траектории и др.
В этом уроке рассматривается создание простой анимации, работа с редактором Timeline и получение готового видеофайла.
Прежде чем описывать работу в Blender, вспомним, как создается компьютерная анимация в принципе. Главным здесь является понятие ключевого кадра. Если бы мы создавали мультфильм по-старинке, то обошлись бы без этого, так как для каждого кадра художник рисовал бы отдельную, немного отличающуюся от предыдущей, картинку.
Теперь же имеется возможность «рисовать» картинки только для избранных, то есть ключевых, кадров. Все, что между ними, программа просчитывает сама. Например, в первом кадре куб находится в точке с координатами (0, 0, 0). Переместившись по временной шкале в 20-й кадр, мы помещаем куб в точку (100, 0, 100) пространства. На этом все. Программа либо будет перемещать куб по прямой, либо по указанной нами траектории. Нам не надо для каждого кадра со 2-го по 19-й указывать промежуточные положения куба.
Обратите внимание, когда мы начинаем говорить о движении и изменении объектов, то в нашем трехмерном мире появляется четвертое измерение – время и соответствующая ей ось – шкала времени.
В Blender есть специальный редактор Timeline, позволяющий перемещаться по кадрам, создавать ключевые кадры и др. Кадр – это момент или короткий отрезок времени, для времени играет ту же роль, что точка для пространства. Однако у кадра все же есть длительность. Она зависит от того, сколько «прокручивается» кадров в секунду. В случае 60-ти кадров в секунду (60 FPS) кадр будет короче, чем в случае 24 FPS. Чем больше FPS, то есть чем короче длительность кадров, тем плавнее переходы, качественнее анимация. Однако увеличение FPS увеличивает размер выходного файла и нагружает вычислительные мощности компьютера.
FPS не настраивается в редакторе Timeline. Однако о FPS следует помнить, так как если вы планируете делать 30 секундную анимацию с 24 FPS, вам понадобится 720 кадров. Но с 50 FPS будет уже 1500.
В заводском стартовом файле редактор Timeline находится в нижней области.
Главный регион редактора Timeline занимает кадрированная шкала времени. Вверху у нее есть разметка с шагом в 10 кадров.
Если навести мышь на полосу прокрутки внизу, зажать левую кнопку и подвигать, вы увидите, что шкала может уходить как дальше в плюс, так и в минус. Другой способ сдвига шкалы – зажать среднюю кнопку мыши на самой шкале. Прокрутка колеса мыши, клавиши плюс и минус клавиатуры масштабируют ее.
Область с 0-го по 250-й кадр окрашена по-другому. Этот промежуток обозначает те кадры, которые будут составлять анимацию.
В заголовке редактора Timeline в полях Start и End указаны кадры начала и конца анимации. Их можно изменить. В поле слева указан текущий кадр (не путать с ключевым), то есть то место во времени, в котором сейчас находится сцена.
Текущий кадр можно менять как через это поле, так и кликом по шкале времени. Там его обозначает яркая вертикальная линия. Текущий кадр также последовательно меняется стрелками влево и вправо клавиатуры.
Чтобы начать проигрывать анимацию, надо нажать Пробел. Она начнется с текущего кадра и до последнего, того, что указан в End. Затем продолжится со стартового (Start). Остановить циклическое проигрывание анимации можно повторным нажатием пробела, либо нажатием Escape. В первом случае текущим кадром станет место останова анимации. Во втором – текущий кадр вернется к прежнему значению, туда, откуда была запущена анимация.
Кроме того для управления проигрыванием анимации и переходами предназначена специальная группа кнопок заголовка:
Большие кнопки в центре проигрывают анимацию вперед и назад. После их нажатия они изменяются на кнопку-паузу, которой можно выключить проигрывание. Левее и правее находятся кнопки перехода к следующему слева или справа ключевому кадру. Крайние кнопки устанавливают текущим кадром начало или конец анимации.
Отдельно стоящая кнопка слева предназначена для автоматического создания ключевых кадров.
Создавать ключевые кадры можно и обычно удобнее непосредственно в главном регионе 3D Viewport, нажимая I и выбирая в появляющемся меню тип ключа. Однако мы воспользуемся специальным блоком в заголовке Timeline, так как он дает более полное управление:
При клике по связке ключей слева в поле Active Keying Set раскрывается список возможных типов ключей. Нас интересуют Location, Rotation, Scale и их комбинации – Location & Rotation, Location & Scale, «Location, Rotation & Scale», Rotation & Scale. Список здесь отображается не полностью, он прокручивается вверх и вниз:
Ключ Location фиксирует только местоположение объекта. Если вы в таком ключевом кадре измените размер и поворот, то это изменение не будет анимировано. Оно просто изменит объект. Если боитесь запутаться, выбирайте «Location, Rotation & Scale». Этот тип ключа фиксирует все – положение, поворот, размер. Однако на самом деле он создает целых 9 ключей в одном кадре, так как запоминает координаты X, Y, Z для всех трех трансформаций.
Когда тип ключевого кадра выбран, его название появляется в поле. Однако сам ключ при этом не создается. Для его создания надо нажать на кнопку справа от поля со знаками ключа и плюса. Ключевой кадр будет создан в месте текущего кадра, что на шкале времени отмечается особым маркером.
Крайняя правая кнопка с ключом и крестиком удаляет из текущего кадра выбранный тип ключевого кадра, если он там есть. Например, текущий кадр 20-й. Мы выбираем тип Location и удаляем его. Если в 20-м кадре был именно такой ключ, то он удалится, но если там был назначен Rotation, то ничего не произойдет. Если вы не знаете точно, какой тип ключа находится в текущем кадре, а хотите очистить его от всех ключей, выбирайте «Location, Rotation & Scale».
Что значит создание ключевого кадра для объекта? Это значит, что была зафиксирована текущая позиция и форма объекта. Теперь, если мы как-либо изменим объект, не зафиксировав эти изменения ни в каком ключевом кадре, то при попытке проиграть анимацию (Пробел) потеряем все внесенные изменения.
Пусть мы хотим, чтобы куб за период с 1-го по 30-й кадр немного поворачивался. В первом кадре мы создали ключ, зафиксировав исходную позицию куба.
После этого делаем текущим 30-й кадр и здесь поворачиваем куб. Далее надо создать еще один ключевой кадр, уже в 30-м кадре. Проще нажать I в редакторе 3D Viewport. Также можно воспользоваться раскрывающимся окошком Keying в заголовке Timeline.
мы можем создать относительно сложную анимацию.
Если в последующем мы удалим какой-нибудь промежуточный ключевой кадр, то объект будет плавно изменяться из состояния предшествующего ключевого кадра в состояние следующего за удаленным. Например, если куб сначала поворачивался, а потом перемещался, то удаление промежуточного ключа приведет к тому, что куб будет более медленно, но одновременно поворачиваться и перемещаться.
Обратите внимание, у каждого объекта свои ключевые кадры. Если выделить другой объект, который не изменялся во времени, на шкале времени ключей не будет.
Как получить файл с готовым фильмом? Скорее всего, сначала понадобиться выполнить некоторые предварительные настройки на вкладке Output редактора Properties.
Здесь на панели Output из списка файловых форматов (File Format) надо выбрать AVI JPEG.
AVI JPEG сжимает картинки. Поэтому файл получается существенно меньше, чем при AVI Raw. Обратите внимание, где сохраняется ваш файл. При необходимости измените каталог.
Также имеет смысл поменять значение последнего кадра, если анимация была короче.
Запуск рендера анимации выполняется из редактора 3D Viewport при выборе в меню заголовка пункта Render → Render Animation (Ctrl + F12).
После этого начнется рендер кадров. Прорисовывается каждый кадр, все вместе они упаковываются в видеофайл. Рендер занимает время. Вы можете оценить, какой это ресурсоемкий процесс, если даже на создание анимации в несколько секунд требуется около минуты. При рендере в верхней левой части редактора Image Editor отображается номер кадра, который прорисовывается в данный момент.
Практическая работа
Пусть будет куб, на который камера смотрит сверху. С этой точки зрения он будет казаться квадратной плоскостью. Куб приближается к камере, потом начинает поворачиваться двумя разными цветными гранями, из-за чего становится очевидно, что это куб, а не плоскость. После этого куб медленно исчезает.
Курс с инструкционными картами к части практических работ:
android-приложение, pdf-версия
Создаем анимацию реконструкции объекта в Blender-е
Данный туториал навеян вчерашним материалом и призван более детально описать этапы создания такого рода анимации в Blender-е для новичков. Хочу сразу оговорить, что я хоть и много работал в Blender-е (помню его еще с версии 1.8), но не считаю себя экспертом в этой программе. По профессии я программист, но в свободное время мне интересно поковырять Unity и UE. И соответственно Blender я использую для создания простеньких (или нет) моделей для своих поделок.
Итак в новой сцене удаляем стандартный куб (X) и в меню создания нового объекта (Shift+A) выбираем Mesh -> Monkey. Далее немного переместим ее вверх (G и Z), чтобы дать ей немного пространства для падения.
Но вообще-то данная модель не очень подходит для того эффекта, который мы будем использовать для деления модели на куски. Дело в том, что для него нужен однородный закрытый меш (потому что данный эффект внутренне использует булевые операции). А наша обезьянка не такая. К счастью это можно легко исправить.
Для этого сначала в меню выбора отображения объектов (Z) выберем пункт Wireframe (отображение сетки), чтобы легче было увидеть точки в меше. Далее переходим в режим редактирования меша (Tab). Все точки меша выделены. Чтобы убрать выделение нажимаем Alt+A. Теперь можно увидеть, что глаза у обезьянки сделаны в виде отдельного незакрытого меша. Давайте удалим их. Выделите по точке в каждом глазе, а затем нажмите Ctrl+L. Эта команда выделит все связанные вершины. Удалите меши глаз (X). Теперь нам нужно закрыть образовавшиеся дыры в глазах. Для это перейдите в режим выбора ребер (вторая кнопка слева вверху) и при зажатой клавише Alt щелкните по ребру глаза. Выделиться весь круг незакрытого глаза. Чтобы его закрыть, нажмите F (создастся новая грань). Повторите для второго глаза. Теперь через меню выбора отображения объектов (Z) вернитесь в режим Solid.
Для дробления меша нам нужен аддон Cell Fracture. По умолчанию в Blender-е он выключен. Для его включения заходим в настройки (Edit -> Preferences) и переходи на вкладку Add-ons. Далее в поле поиска вводим нужное название и включаем аддон.
Анимация¶
В общем случае, к анимации относятся изменения параметров объектов во времени. Движком поддерживаются следующие типы анимации:
Объектная анимация. Заключается в трансформации объекта в пространстве как единого целого.
Скелетная анимация, то есть деформация геометрии объекта с помощью системы костей (скиннинг). Сюда же относится анимация костей в арматурном объекте с целью прикрепления объектов к костям.
Вертексная анимация. Заключается в покадровой записи деформаций объекта с их последующим воспроизведением.
Параметризация источников звука. Изменяемые параметры: громкость ( Volume ) и высота звука ( Pitch ).
Анимация выходного значения ноды Value в нодовом материале.
Управление анимацией¶
Управление анимацией в движке осуществляется одним из двух способов:
Объектная анимация¶
Изменяемые параметры: координаты центра ( Location ), поворот ( Rotation ) и масштабирование ( Scale ).
Осуществляется с помощью добавления ключей анимации для движения объекта в программе Blender и их последующего воспроизведения в движке.
Поддерживаются следующие типы ключей:
Scale – для получения корректных результатов, фактор масштабирования должен быть одинаковым вдоль любых из осей.
LocRot – комбинация Location и Rotation.
LocScale – комбинация Location и Scale.
LocRotScale – комбинация Location, Rotation и Scale.
RotScale – комбинация Rotation и Scale.
В случае анимации объекта-меша, необходимо включение опции Force Dynamic Object панели Rendering Properties на вкладке свойств объекта.
Скиннинг и скелетная анимация¶
Для осуществления скелетной анимации, кроме деформируемого объекта-меша требуется объект-арматура. Осуществляется в четыре этапа:
Создание скелета объекта в арматурном объекте.
Назначение вертексных групп в объекте-меше и их привязка к костям. Может быть осуществлено, например, методом “раскраски” весов (weight painting).
Анимация костей в арматурном объекте. Используются те же ключи, что и в случае объектной анимации.
Параметры запекания¶
Запекание производится при выделенном арматурном объекте.
В окне со списком запекаемых акторов приводятся те акторы, которые следует запечь. Если список пуст, запекаются все возможные акторы.
Имя текущего актора из списка запекаемых акторов.
Произвести оптимизацию ключей анимации после запекания. В случае получения некорректных результатов, рекомендуется отключить опцию.
Use Blender’s Native Baker
Использовать для запекания анимации средства самого Blender (возможность Bake Action), а не Blend4Web. Настройки средства запекания Blender отличаются от настроек Blend4Web.
Произвести запекание. После успешного окончания процесса на сцене появляются акторы с именами вида B4W_BAKED_ИМЯ_АКТОРА. Данные акторы будут автоматически назначены на арматурном объекте и воспроизведены в движке. Стоит отметить, что работа подобных акторов в Blender не гарантируется.
Движок поддерживает не более 4-х вертексных групп на каждом из вертексов, эти группы отбираются по величине влияния или “веса” вертекса. В процессе загрузки исходного файла со сценой “веса” вертексов проходят через процедуру нормализации, т.е. их сумма приводится в единице.
Для удаления вертексных групп, которые не используются арматурой, можно воспользоваться кнопкой Clean Unused Vertex Groups в одноименной панели.
Смешивание анимации¶
Движок также поддерживает смешивание анимации. Для использования этой возможности должна быть включена опция Animation Blending (находится на панели Animation вкладки Object ).
Одновременно могут быть смешаны не более двух анимаций.
Для того, чтобы смешать анимации, необходимо сперва разрешить смешивание двум анимационным слотам:
Вертексная анимация¶
Позволяет записать любые изменения геометрии объекта-меша. Необходимо учитывать, что каждый кадр вертексной анимации эквивалентен мешу. Не рекомендуется создание длинной анимации для высокополигонального меша, поскольку это может привести к существенному возрастанию размера исходного и экспортируемого файлов, а также замедлить работу движка.
Параметры запекания¶
Имя, которое будет присвоено запеченной анимации.
Кадр, с которого начнётся запекание анимации.
Кадр, которым закончится запекание анимации.
Запекание анимации производится при нажатии на эту кнопку.
Для корректной работы вершинной анимации следует активировать опцию Export Vertex Animation (раздел Export Options панели Object ) у соответствующего объекта.
Анимация по умолчанию¶
В Blend4Web присутствует возможность автоматически проигрывать анимацию объекта. Для этого нужно активировать параметр Apply Default Animation на вкладке Animation панели Object того объекта, анимацию которого требуется включить. Поддерживается скелетная и объектная анимация.
Нелинейная анимация¶
Редактор NLA¶
Редактор нелинейной анимации, имеющийся в программе Blender, позволяет в удобной форме задавать поведение сцены. С его помощью можно реализовать несложные сценарии. Таким образом исключается необходимость программирования простых сцен и приложений.
Движком поддерживается управление следующими сущностями:
Любая анимация, параметры которой могут быть представлены с помощью действий (Action)
Эмиссия частиц (в виде привязки к глобальной шкале времени)
Использование¶
В редакторе NLA Editor задать необходимую конфигурацию поведения сцены.
На панели Timeline выбрать интервал времени анимации.
Дополнительные настройки¶
Настройка сцены NLA > Cyclic NLA позволяет активировать режим циклической NLA-анимации.
Ограничения¶
Одновременное проигрывание различных видов анимации для одного объекта не поддерживается.
Управление через API¶
Параметризация источников звука¶
На объектах-спикерах дополнительно поддерживаются следующие типы анимационных ключей:
Volume – громкость звука источника.
Pitch – высота звука источника.
Параметризация источников звука по своей сути повторяет объектную анимацию.
Анимация нод Value и RGB¶
Анимация числовых и цветовых значений в других нодах не поддерживается.
Урок для начинающих: анимация и рендеринг гриба в Blender
В этом уроке, посвященном анимации и рендерингу, вы узнаете, как сделать так, чтобы смоделированный вами гриб мог кивать и подпрыгивать.
Версия
В предыдущем уроке по Blender вы создали маленький счастливый грибочек, который получился довольно забавным. Тем не менее, статично стоящий гриб в вашей игре будет выглядеть скучно и однообразно. Гораздо лучше, если этот же грибочек будет кивать и прыгать во время перемещения по игровой локации.
К счастью, Blender может помочь с этой задачей. В этом уроке вы узнаете, как сделать серию изображений, которые нужно использовать в спрайт-листе для анимации вашего гриба.
В этом учебном пособии предполагается, что вы прошли наш предыдущий учебник по Blender или хотя бы знаете основы пользовательского интерфейса этой программы.
Введение
Для прохождения этого урока вы можете использовать гриб, который вы создали в предыдущем уроке, или скачать стартовый проект здесь. В любом случае, вам нужно выполнить несколько шагов, прежде чем вы сможете добавить первую анимацию.
Даже несмотря на то, что вы можете четко видеть все объекты в Blender, если вы сейчас визуализируете 3D-сцену в 2D-изображение, вы увидите очень скудное изображение.
Это связано с тем, что в предыдущем уроке вы создали текстуру в Blender, но пока еще не связывали ее с объектом. Вам необходимо указать, как именно Blender будет применять текстуру к объекту при рендеринге.
Добавление текстуры
В окне «Properties» щелкните левой кнопкой мыши по кнопке Texture Context – иконка немного похожа на шахматную доску, как показано ниже:
Примечание: В уроках по Blender вы неоднократно увидите сокращения LMB – что значит левую кнопку мыши, RMB – правая кнопка мыши и MMB это средняя кнопка мыши.
Добавьте новую текстуру, нажав кнопку New:
Перед вами появится поле с названиями и раскрывающийся список для указания типа текста. Вам нужно изменить значение в поле Type с Clouds на Image или Movie. На панели «Image» щелкните раскрывающийся список слева от кнопки «New» и выберите изображение грибочка, которое вы сделали в предыдущем уроке, или изображение, которое называется 3.24.53.png, если вы используете скаченный файл стартового проекта для этого занятия.
На панели «Mapping» выберите значение UV для параметра Coordinates следующим образом:
Не покидая панели «Mapping» выберите значение UVMap для параметра Map.
На данный момент это все настройки, которые нужно внести в исходный файл. Рекомендуется сохранять изменения по мере продвижения по учебнику.
Создание скелета персонажа для начинающих
В трехмерных программах для создания игр для персонажа необходимо создавать скелет. Точно так же, как ваши мышцы двигаются вместе со скелетом, сетка гриба будет двигаться вместе с его собственным скелетом. В Blender скелет — это просто объект другого типа.
Изучение понятий Rigging и Skinning
Во-первых, вам нужно понять, что означает несколько терминов. Процесс построения скелета называется Rigging. Сначала вы создадите скелет, состоящий из одной кости, а потом постепенно будете добавлять дополнительные.
Rigging может быть очень сложным процессом, например, когда вы создаете 3D персонажа. Существуют ограничения и модификаторы, которые можно добавить к вашему скелету, чтобы в дальнейшем упростить работу аниматора при работе со сложными установками. Скелет вашего гриба будет довольно простым, но этого будет вполне достаточно, чтобы изучить функциональность этого инструмента.
Skinning — это процесс связывания вершин вашей сетки с костями в вашем скелете.
Создав модель, вы анимируете ее, выполнив следующие действия:
Создание скелета
Сначала нажмите Option-Z или используйте маленькую сферу внизу рабочей области, как показано на изображении ниже:
Ваш гриб теперь будет целиком белым, а красивый окрас в стиле Марио пока пропадет на время работы в этом режиме.
Наведите указатель мыши на 3D View и нажмите сочетание клавиш Shift-A. Выберите Armature ⇒ Single Bone из меню Add, как показано на рисунке ниже:
Примечание: Причина, по которой вам нужно навести курсор мыши на 3D View, заключается в том, что многие сочетания клавиш в Blender являются контекстно-зависимыми от того, в каком окне или редакторе в данный момент находится указатель мышки.
Object Data Context
В окне «Properties» нажмите кнопку «Object Data context», которая выглядит как фигурка маленького человечка, и убедитесь, что на панели «Display» отмечены «Names» и «X-Ray».
Параметр «Names» отображает названия костей в окне 3D View, а «X-Ray» позволяет гарантировать, что скелет остается видимым для вас, даже если перед ним находятся какие-либо другие объекты.
Кнопка context в вашем случае представляет контекст объекта арматуры. Если вместо этого ваш гриб был активным объектом, то эта кнопка будет отображаться в виде сетки. Поскольку скелет в настоящее время является активным объектом, то значок отражает именно контекст скелета.
В окне «Properties» кнопки относятся к разным контекстам — например, контекст рендеринга или контекст игровой сцены. Количество кнопок в окне «Properties» изменяется в зависимости от того, какой объект вы выбрали в сцене, как показано на рисунке ниже:
Кроме того, некоторые кнопки даже меняют свои изображения. Кнопка контекста Object Data изменится с фигурки на кинокамеру, в зависимости от того, что в данный момент выбрано.
Всплывающая подсказка кнопки показывает «Object data», если у вас выбран объект скелета, то данные, соответствующие этому объекту, являются скелетом в текущем контексте — следовательно, «object data context».
Переход к режиму редактирования
Включите 3D View и нажмите Tab, чтобы переключиться в режим редактирования вашего скелета. Обратите внимание: каждая кость в скелете состоит из трех частей: основания, середины и кончика, как показано на изображении ниже:
Щелкните правой кнопкой мыши на кончике кости, нажмите G, чтобы захватить его, а затем нажмите Z, чтобы ограничить ее перемещение по оси Z. Переместите кончик кости на верхушку ножки гриба, как показано ниже:
Щелкните левой кнопкой мыши в любом месте рабочей области, чтобы подтвердить ваши действия. Теперь эта кость будет связана с перемещением вершин ножки грибочка.
Формирование скелета
Точно так же, как вы делали выдавливание граней на сетке в предыдущем уроке, выберите команду «Extrude» в меню слева от 3D view (над инструментом «Armature Tools») или нажмите E, чтобы начать выдавливать кончик этой кости. Затем нажмите Z, чтобы ограничить перемещение по оси Z, и перетащите новую кость в верхнюю часть шляпки гриба, как показано на картинке:
Все кости должны иметь уникальное название, поэтому Blender автоматически присваивает новой кости новое имя, добавляя к ней номер. Эта кость будет связана с перемещением вершин шапки гриба и теперь у вас есть полноценный скелет для вашего гриба.
Работа с Bones Context
На кнопке Bones Context нарисована маленькая косточка. Эта кнопка доступна только тогда, когда активный объект является объектом скелета. Щелкните левой кнопкой мыши по кнопке Bones Context, чтобы просмотреть панели, связанные с костями, как показано ниже:
Щелкните правой кнопкой мыши по кости с именем Bone в 3D View. В поле в верхней части Bones context переименуйте эту кость в stalk. Теперь выберите кость с именем Bone.001 в 3D View и переименуйте ее в cap.
Создание связи между скелетом и сеткой персонажа
Теперь вы создадите связь между объектом сетки и скелетом. Нажмите Tab для выхода из режима редактирования. Нажмите Z, чтобы просмотреть сцену в режиме wireframe, или выберите «wireframe» в меню «Viewport Shading».
Нажмите правой кнопкой мыши на гриб, затем щелкните правой кнопкой мыши на его скелете. Таким образом вы выберете и гриб, и скелет, который будет являться главным объектом в связке.
Примечание: в Blender у вас может быть любое количество выбранных объектов, но только один из них может быть активным. Последний выбранный объект является активным и обозначается ярко-оранжевым цветом.
Skinning костей
Теперь вам предстоит связать вершины сетки с костями. К счастью, это будет довольно легко сделать с данным персонажем. Нажмите Cntrl-P, чтобы открыть меню «Set Parent To» и выберите «With Automatic Weights» в разделе «Armature Deform», как показано ниже:
Это действие связывает сетку со скелетом и устанавливает атрибут веса — или степень влияния кости на вершину — на «automatic». Это означает, что Blender примет во внимание влияние, основанное на близости костей.
Работа с Pose Mode
Щелкните правой кнопкой мыши по скелету, а затем нажмите Cntrl-Tab, чтобы войти в режим с Pose Mode. В качестве альтернативы, вы можете выбрать Pose Mode из меню Mode. Обратите внимание, что выбранная кость становится голубой, как показано на скриншоте ниже:
Щелкните правой кнопкой мыши верхнюю кость, нажмите R и переместите мышь, чтобы повернуть кость. Обратите внимание, что шляпка гриба будет двигаться вместе с костью. Перемещая кости, вы можете оценить, насколько хорошо работает параметр automatic weighting.
Работа с Vertex Groups
До сих пор вы позволяли Blender автоматически определять, какие вершины связаны с какой костью. Однако важно понимать, как вы можете сделать это вручную, если вы хотите более детальный контроль над персонажем. Обратите внимание, что этот раздел не является обязательным (поскольку вы просто делаете то, что уже сделали альтернативным способом), поэтому, если вам это не нужно, и вы хотите продолжить создавать анимацию, не стесняйтесь переходить к следующему разделу.
Сначала щелкните правой кнопкой мыши, чтобы отменить действие поворота. Затем щелкните правой кнопкой мыши по вашему грибу и нажмите Tab, чтобы войти в режим редактирования. Щелкните левой кнопкой мыши кнопку Object Data и вы заметите, что в новом контексте изображение будет выглядеть как сетчатый треугольник. Посмотрите на панель Vertex Groups и при необходимости расширьте данный раздел. Ваша панель должна выглядеть как на скриншоте ниже:
Вы увидите две группы вершин, имена которых совпадают с именами костей в скелете. Это потому, что кости сортируются в группы вершин по их именам.
Примечание: вы можете создавать именованные группы вершин в Blender. Вершина также может принадлежать более чем одной группе: лояльность этой вершины к группе основана на ее значении веса (от 0,0 до 1,0). Вы также можете удалить вершины из существующих групп и затем добавить их обратно.
Оставьте все грани гриба выделенными, щелкните левой кнопкой мыши на «stalk» в списке, затем щелкните левой кнопкой мыши на кнопке «Remove». Повторите это действие для «cap». Наведите курсор на 3D view и нажмите кнопку A, чтобы отменить выбор.
Нажмите B и выберите вершины, которые принадлежат ножке гриба. На панели «Vertex Groups» выберите группу «stalk» и нажмите кнопку «Assign» следующим образом:
Теперь нажмите Deselect. Затем выберите вершины шляпки (снова используя B, чтобы образовать рамку вокруг них), выберите группу «cap» и нажмите кнопку «Assign».
Вы можете использовать эти группы, чтобы легко выбирать определенные типы вершин — и, что более важно, Blender точно будет определять, какие именно вершины перемещаются на какие кости.
Создание анимации
Теперь, когда вы заложили основу для перемещения гриба, вы можете добавить анимацию к своему объекту. Вам нужно сделать так, чтобы ваш гриб пружинил, пока он прыгает.
В Blender вы выполняете анимацию, создавая серию ключевых кадров. В каждом ключевом кадре вы помещаете объект в другую позу, и Blender плавно интерполирует движение между ключевыми кадрами.
Обратите внимание, что когда вы создаете ключевой кадр, вам нужно указать тип ключевого кадра — то есть вы изменяете местоположение, поворот или масштаб объекта. Давайте посмотрим, как это работает на практике.
Работа с Pose Mode
Нажмите Tab, чтобы войти в режим Object и щелкните правой кнопкой мыши на скелете. Вы уже должны быть в режиме Pose mode, но если это не так, то нажмите Cntrl-Tab, чтобы войти в этот режим.
Выберите все кости, нажимая A, пока все они не будут выбраны. Щелкните правой кнопкой мыши на кости ножки и нажмите I, чтобы открыть меню «Insert Keyframe». Выберите Scaling.
Использование окна Timeline
Окно Timeline появляется внизу экрана и выглядит следующим образом:
После того, как вы вставите ключевой кадр, вы увидите вертикальную желтую линию на зеленой линии. Зеленая линия показывает, на каком кадре вы находитесь в данный момент.
Ключевые кадры
Наведите курсор на окно Timeline и трижды нажмите клавишу со стрелкой вправо, чтобы перейти к кадру 4. Оставьте выделенную кость ножки гриба, нажмите S, чтобы масштабировать, а затем нажмите Z, чтобы ограничить масштабирование по оси Z. Переместите мышь, чтобы сжать этот отрезок, и щелкните левой кнопкой мыши, чтобы принять масштабирование. На скриншоте ниже показано, скак сильно вам нужно сплющить гриб.
Обратите внимание, что шляпка гриба тоже сдавливается. Это происходит потому, что верхняя кость – дочерний элемент кости ножки. Нажмите I и выберите «Scaling» в меню «Keyframe».
Перейдите к кадру 8 с помощью клавиши со стрелкой вправо и введите Option-S, чтобы очистить масштабирование. Затем введите I и выберите LocScale, чтобы установить ключевой кадр как для местоположения, так и для масштабирования.
Примечание: вы увидите много опций в меню Insert Keyframe, но обычно используется лишь несколько из них. Что касается гриба, нам не нужно изначально устанавливать местоположение и масштаб, потому что пока вы их не планируете менять.
Щелкните левой кнопкой мыши и переместитесь в окно Timeline, чтобы пролистать ключевые кадры, которые позволят увидеть преобразование. Обратите внимание, что текст в нижнем левом углу 3D View обозначен оранжевым для кадров, имеющих ключевые кадры, и белым для кадров без ключевых кадров. На приведенном ниже снимке экрана показано, что вы можете видеть на различных ключевых кадрах.
Перейдите к кадру 14, поднимите гриб в воздух, набрав G, затем Z, и щелкните левой кнопкой мыши, чтобы подтвердить действие, когда вы будете удовлетворены высотой прыжка. Введите I, чтобы вставить ключевой кадр, и выберите Location.
Продвиньте еще два кадра и вставьте еще один ключевой кадр для Location на 16-й кадр, чтобы ваш гриб завис, как Майкл Джордан, во время своего знаменитого прыжка.
Наконец, перейдите к кадру 20, введите Option-G, чтобы очистить местоположение, введите I и установите другой ключевой кадр Location.
Предварительный просмотр анимации
Переместите указатель мыши в окно Timeline и щелкните левой кнопкой мыши на последнем ключевом кадре. Нажмите E, чтобы установить конец диапазона кадра — более светлая часть временной шкалы при этом должна измениться.
Пришло время посмотреть прыжок в действии. Нажмите Option-A, чтобы увидеть движение грибочка в режиме реального времени. Нажмите Escape, когда вы закончите просмотр.
Работа с экраном анимации
До сих пор вы выполняли всю свою работу, используя только временную шкалу для просмотра ключевых кадров. Тем не менее, в Blender есть множество удобных макетов экрана, чтобы сделать процесс редактирования немного проще.
Инструмент Animation является отличным примером этого. Щелкните левой кнопкой мыши рядом с именем макета экрана и выберите «Animation», как показано на изображении ниже:
В этом примере вы увидите набор окон, которые относятся к типичным задачам анимации. Обратите внимание, что 3D View немного изменился: гриб снова перешел в режим сплошного затенения, и вы видите его в перспективе, это показано ниже:
Окно Dope Sheet
В окне Dope Sheet изначально установлен режим Dope Sheet: если у вас было несколько анимированных объектов, все они были бы показаны именно здесь.
Примечание: термин «Dope Sheet» происходит от традиционной анимации, где он также известен как exposure sheet. Подобно традиционной анимации, Dope Sheet в Blender дает аниматору обзор всех действий, происходящих на временной шкале.
В окне Dope Sheet измените режим на Action Editor, как показано на следующем рисунке.
Теперь вы увидите только действия, которые вы создали для гриба и его ключевых кадров. У него есть имя по умолчанию ArmatureAction, поэтому переименуйте действие в HopAction в поле имени, как показано ниже:
Если вы хотите увеличить ключевые кадры, чтобы они не выглядели слишком сжатыми, вы можете использовать те же команды, которые вы применяли в 3D View для увеличения: колесико мыши или кнопка Control-Middle-Mouse. Точка, из которой происходит масштабирование, отмечено зеленой линией.
Отключение параметра Hop Action
Далее вам нужно отключить действие прыжка, чтобы вы могли создать вторую анимацию. Если вы этого не сделаете, то анимации будут накладываться одна на другую и получится хаос. Щелкните левой кнопкой мыши X справа от F и +. Таким образом вы отключите действие для скелета. Теперь вам нужно создать еще одно действие для создания кивка.
Создание Nod
Во-первых, вам нужно убедиться, что вы находитесь в 1-м кадре анимации. Наведите курсор на временную шкалу или окно 3D View и нажмите Shift-Control-стрелка вниз, чтобы перейти к первому кадру.
Выберите View ⇒ Right в заголовке 3D View, затем выберите View ⇒ Persp/Ortho, чтобы увидеть ваш гриб в ортогональном виде, вот так:
Щелкните правой кнопкой мыши, чтобы выбрать верхнюю кость, затем нажмите I и выберите Rotation.
Перейдите к кадру 5 и нажмите R, чтобы повернуть гриб влево, затем нажмите I, чтобы соответственно повернуть текущий кадр.
Перейдите к кадру 10, нажмите Option-R, чтобы отменить вращение, затем нажмите I, чтобы изменения вступили в силу.
Прокрутите окно «Timeline» или «Action», и вы увидите, как грибочек кивает.
Нажмите на последний кадр на временной шкале и нажмите E, чтобы отметить конец анимации. Нажмите Option-A, чтобы увидеть, как выглядит новая анимация вашего гриба.
В редакторе действий окна Dope Sheet назовите это действие NodAction, затем нажмите F, как показано на изображении ниже:
Создание спрайтов
Теперь вам нужно переместить камеру так, чтобы она смотрела с той же точки зрения, что и Right Ortho. К счастью в Blender есть простой способ сделать это. Щелкните правой кнопкой мыши камеру, чтобы выбрать ее. Нажмите пробел, укажите камеру и выберите Align Camera Ctrl Alt Numpad 0, вот как это выглядит:
Нажмите на первый значок камеры в окне Properties, тот, который похож на 35-мм камеру — это контекстная кнопка рендеринга. На панели «Dimensions» задается разрешение, соответствующее размеру спрайта, который вы хотите создать. Представьте, что для этого урока вы хотите иметь размер 128 × 128 пикселей. Установите X: 128, Y: 128 и 100%. Установите для конечного кадра значение 20, как показано на скриншоте:
Нажмите Option-Z, чтобы включить затенение текстуры.
В окне «Properties» нажмите на значок камеры, который выглядит как старая видеокамера. Убедитесь, что у вас выбрана камера: щелкните левой кнопкой мыши на камере на панели Outliner, если это необходимо.
Щелкните левой кнопкой мыши Orthographic на панели Lens и введите 8 в поле Orthographic Scale, чтобы анимация грибочка вписывалась в рамки камеры.
Расположите камеру так, чтобы гриб находился по центру в области просмотра с помощью клавиши G.
Теперь вам нужно назначить HopAction вашему объекту. Щелкните правой кнопкой мыши на кости ножки, затем перейдите к редактору действий DopeSheet и выберите HopAction из выпадающего меню, как показано на изображении ниже:
На панели «Shading» параметра Render context установите «Alpha» для значения «Transparent».
На панели «Output», расположенной ниже в контексте «Render», выберите папку вывода для анимированных файлов и щелкните левой кнопкой мыши кнопку RGBA, как показано ниже:
Примечание: по умолчанию Blender называет файлы рендеринга 0001.png, 0002.png и т. Д. Однако у вас есть возможность добавить любое имя к пронумерованным файлам, чтобы вы могли сразу увидеть, что они означают.
Если вы добавите «hop» к пути, файлы будут названы как hop0001.png, hop002.png и так далее. Кроме того, поскольку вы знаете, что у вас будет менее ста изображений, вы можете добавить к этому пути «hop ##», и вы получите следующие данные: hop01.png, hop02.png и т. д.
Нажмите «Animation» в верхней части Render context на панели «Render». Blender преобразит ваши анимационные кадры в отдельные файлы и сохранит их в папку, указанную выше. Чтобы просмотреть полностью визуализированную анимацию, нажмите кнопку «Play». Если вы не видите окно воспроизведения сразу, оно может появиться за основным окном Blender. Просто нажмите Command-Tab, чтобы переключиться на окно воспроизведения.
Что делать дальше?
Поздравляем – ваш грибочек оживился благодаря двум новым действиям. Теперь вы можете использовать эти знания в своем собственном проекте с помощью параметров экспорта, доступных в Blender.
Мы подготовили для вас несколько задач, чтобы вы могли расширить свои знания о Blender. Не беспокойтесь: под каждой задачей есть решения, в случае, если у вас возникнут сложности.
Задача 1
В этом уроке вы выполнили HopAction, а теперь вам предстоит выполнить NodAction.
Задача 2
Вы визуализировали действия при виде сбоку — сможете ли вы выполнить одно или все действия с видом спереди?
Если вы хотите взглянуть наш вариант готового проекта, вы можете скачать его здесь.