Урок для начинающих: анимация и рендеринг гриба в 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.
Решение: Чтобы отобразить анимацию узлов, выберите скелет и укажите действие NodAction в редакторе действий Dope Sheet. Затем нажмите кнопку «Animation» на панели «Render». Не забудьте установить длину анимации, установив End Frame на панели рендеринга, либо нажав ЛКМ на временной шкале и нажав клавишу E.
Задача 2
Вы визуализировали действия при виде сбоку — сможете ли вы выполнить одно или все действия с видом спереди?
Решение: Выберите View ⇒ Front в заголовке 3D View. Выбрав камеру, нажмите пробел и выберите Align Camera Ctrl Alt Numpad 0. Измените положение камеры с помощью клавиши G, если это необходимо, чтобы гриб вписался в область просмотра. При необходимости установите конечный кадр на панели «Dimensions», чтобы конечный кадр совпал с концом анимации. Щелкните левой кнопкой мыши кнопку «Animation», чтобы отобразить изображения.
Если вы хотите взглянуть наш вариант готового проекта, вы можете скачать его здесь.