Журнал LinuxFormat - перейти на главную

LXF91:Blender

Материал из Linuxformat
Перейти к: навигация, поиск
Blender
Blender продвинутый

Создаем скелет

ЧАСТЬ 4 До завершения нашей первой сцены осталось совсем чуть-чуть — нужно просто добавить качественную анимацию и освещение. Андрей Прахов научит ходить даже пингвина!

Вот мы с вами и добрались до заключительной части уроков Blender для начинающих. На этот раз нам предстоит покорить вершину 3D графики — анимацию персонажа. Недаром считается, что если ты сумеешь заставить естественно двигаться «живой» объект, то уже близок к ступеньке мастерства. Помимо работы со скелетом, мы поговорим о правильном освещении и добавим некоторые атрибуты для завершенности нашего детища. Опять-таки, советую запастись не только терпением, но и старыми выпусками LXF с предыдущими уроками.

Для работы нам понадобится либо специально подготовленный файл с диска LXF (less4_begin.blend), либо вы можете открыть собственный проект, над которым работали в последний раз, и немного модернизировать его.

В первую очередь необходимо расчистить поле деятельности. Перенесите все лишние объекты, кроме пингвина, в любой удобный для вас слой. Саму модельку расположите в первом слое. На последнем уроке для удобства размещения детали объекта были сгруппированы. На данном этапе нам это не нужно, так что выделите модель и разгруппируйте ее (Object -> Group -> Remove from All Groups). Отметьте туловище, нажмите F9 и в закладке Modifiers нажмите кнопку Apply. Это означает, что действие, задаваемое модификатором, окончательно применяется к объекту и изменению уже не подлежит. Осталось только объединить модель в общий mesh-объект (Ctrl+J).

Анимация персонажа начинается с создания для него скелета. По аналогии с живыми организмами, арматура объекта состоит из совокупности соединенных между собой костей, призванных обеспечить «естественную» анимацию. Затем с помощью специальных инструментов, созданный скелет «вживляется» в модель объекта, настраиваются места сгибов, добавляются управляющие рычаги.

Для создания арматуры воспользуемся пунктом меню Add -> Armature, доступном по клавише Space (пробел). Перед этим перейдите в окно Front View и в свободной зоне справа от пингвина установите курсор на уровне шеи объекта. При этом создается начальная косточка, которая по умолчанию является предком всего скелета. Этот объект состоит из основания (самой кости) и шарниров. Именно шарниры обеспечивают связь и взаимодействие с другими костями. Для создания следующего звена нажмите E. Таким способом можно выстроить необходимую вам конструкцию.

Как и любой другой объект в Blender, Armature подчиняется общим правилам манипуляции. Вы можете перемещать, масштабировать любую из частей арматуры, вращать, экструдировать и т. д. Попробуйте уцепиться за какой-либо из шарниров и потянуть. Заметили, что вся конструкция, так или иначе, приходит в движение?

Будучи объектом, арматура имеет и свои функции, которые вызываются по клавише F9. Обратите внимание на следующие опции — они пригодятся нам в дальнейшем (см. Рис. 1):

1
Editing Options (опции редактирования)
  • X-Axis Mirror Как известно, скелет любого «живого» объекта симметричен. Было бы накладно создавать арматуру, одинаковую для правой и левой половины. Эта функция позволяет зеркально отражать создаваемую конструкцию.
  • X-Ray Режим «рентгена». Кости внутри объекта становятся видимыми, что очень удобно при анимировании.
  • Auto IK Программа пытается просчитать инверсную кинематику арматуры в автоматическом режиме. Это не всегда приводит к положительным результатам, но для обкатки конструкции весьма полезно.
Display Options (опции отображения)

Это группа параметров, влияющих на отображение объекта на экране.

  • Octahedron, Stick, B-Bone, Envelope — форма костей.
  • Draw Axes — визуализация осей подобъектов.
  • Draw Names. Каждое звено в арматуре имеет свое уникальное имя, генерируемое программой или пользователем. Эта функция отображает на экране имена, присвоенные элементам конструкции.
(thumbnail)
4
(thumbnail)
2
(thumbnail)
3

Сейчас настало время создать нашу первую арматуру. Она должна будет не только позволять модели двигаться, но и имитировать характерное покачивание живых пингвинов при ходьбе. На данном уроке мы ограничимся только этим, но заложенная база позволит вам впоследствии воплотить самые безумные телодвижения.

Создайте конструкцию в соответствии с рисунками 2 и 3. Не забудьте активировать кнопку X-axis Mirror. Для создания парных элементов используйте сочетание клавиш Shift+E. Следите, чтобы кости располагались строго по осям, без отклонений. Проще всего это сделать, если при движении зажать среднюю кнопку мыши.

На протяжении всех уроков я упорно говорил о важности разумного именования объектов в сцене. Это отнюдь не моя прихоть. Дело в том, что в некоторых случаях, для нормальной работы программы, необходимо пользоваться определенными правилами создания имен. И вот этот момент настал! Для правильной автоматической настройки кинематики арматуры это просто жизненно необходимо, иначе программа будет вести себя совсем не так, как мы задумывали.

При выделении любой косточки становится активной закладка Armature Bones. Поменять текущее имя вы сможете в строке BO:. Но перед этим активируйте режим отображения Draw Names. Сделайте все это в соответствии с рисунком 4 (кроме того, обратите внимание на врезку «Правила именования звеньев арматуры»).

Правила именования звеньев арматуры

Программа чувствительна к регистру символов, поэтому при вводе названий придерживайтесь следующих требований:

  1. В имени могут присутствовать все буквы и цифры, но не символ «точка».
  2. Буквы «R» и «L», отделенные от имени точкой обозначают, соответственно, звенья правой и левой стороны. Они обязательно должны быть заглавными.
  3. Используйте характерные имена для облегчения восприятия. Это уже просто желательно и считается хорошим тоном.

Примеры правильных имен: «name.L» или «name_name.L».

Анимация персонажа

(thumbnail)
5

Для работы с арматурой во время настройки анимации существует специальный режим Pose Mode. Активировать его можно простым выбором из списка режимов объекта, либо нажатием Ctrl+Tab.

Давайте немного поиграем со скелетом. Попробуйте подвигать разные части арматуры. Заметили, что при движении звена перемещается лишь то, что находится ниже в иерархии? Это происходит из-за того, что не настроена обратная кинематика. Теперь включите кнопку Auto IK и сравните с прежним результатом. Налицо какой-то прогресс: скажем, если взяться за spine и подвигать, то наш скелет примется весело танцевать. Но это и все, что предлагает нам автомат. Пришло время ручной настройки.

Обратите внимание на звенья ik_leg.L и ik_leg.R. Эти кости, кажущиеся совсем чужими и ненужными наростами на скелете, являются своеобразными рычагами. Управление арматурой не непосредственно несущими звеньями, а специально созданными для этого рычагами считается хорошим тоном. Это удобно и с точки зрения видимости происходящего.

Теперь необходимо немного перестроить структуру иерархии в нашей арматуре. Войдите в режим редактирования и выделите звено ik_leg.L. В закладке «Armature Bones» существует запись BO: ik_leg.L child of leg. L которая гласит, что данная кость является производной от звена leg.L. Из выпадающего списка справа можно выбрать любую другую косточку — и она станет родительской. Но мы выберем «пустоту», тем самым отсоединив звено от арматуры (рис. 5).

Проделайте ту же самую операцию и для ik_leg.R. Для настройки обратной кинематики перейдите в режим Pose Mode и выделите leg. L. Теперь в закладке Constrains будет доступна кнопка Add Constraint, используемая для указания контроллера. Выберите из списка IK Solver. Обратите внимание, что выделенный объект изменил свой цвет с синего на оранжевый. При правильной настройке контроллера он поменяет свой цвет на более яркий. Введите в поле OB: значение «Armature», а в BO: — ik_leg.L. Теперь становится понятным мое требование давать звучные имена объектам. К сожалению, в этой версии редактор не поддерживает выбор из выпадающего меню, все приходится править вручную (Рис. 6).

6
(thumbnail)
7

Проделайте тоже самое и с костью leg.R, только в качестве рычага выберите ik_leg.R.

Попробуйте передвинуть ногу арматуры, ухватившись за рычаг Ik-контроллера (Pose Mode, Rear View). Если ничего не вышло и скелет начало быстро вращаться вокруг оси или был сильно искажен, проверьте, отжата ли кнопка Auto IK, в противном случае откатитесь назад и настройте все заново. Вполне вероятно, что движение арматуры покажется вам неестественным. Для более точной подстройки, попробуйте поменять параметр ChainLen для каждой ноги (leg.L, leg.R). Не забудьте, что при движении туловище (spine) также необходимо перемещать вслед за конечностью (Рис. 7).

(thumbnail)
8

Теперь нам предстоит натянуть на каркас модель и настроить места сгибов. Для этого верните арматуру в начальное положение, отменив все ваши изыскания по движению, и совместите ее с пингвином (чтобы не нарушить расположение модели, двигайте арматуру). При помещении скелета в объект он перестает быть виден. Вот тут то и пригодится режим X-Ray! Разместите арматуру так, как показано на рисунке 8. Для подгонки смело пользуйтесь масштабированием и редактированием отдельных звеньев, но не нарушайте при этом симметрию.

Чтобы объединить модель и арматуру, нужно установить последнюю в качестве родительской в иерархии, а затем привязать нужные группы вершин к костям. Для этого выделите пингвина, затем скелет (именно в этой последовательности!) и нажмите Ctrl+P -> Armature. Появится меню из трех пунктов:

  1. «Don’t create groups» — не создавать группы. Программа просто установит иерархическую связь. Если вспомнить тягу редактора к ручному вводу, то этот путь самый неудобный. Необходимо создавать группы вершин по количеству костей, причем их имена должны совпадать.
  2. «Name groups» — создание групп по существующим костям. Все группы будут названы также, как и их предки. Наиболее удобный способ, сочетающий в себе простоту и гибкость.
  3. «Create from close bones» — создать по ближайшим костям. Полностью автоматический режим. Чреват неверными определениями привязок вершин.

Мы воспользуемся вторым пунктом, чтобы внимательно рассмотреть весь этот процесс. После выбора, выделите пингвина, нажмите Tab для перехода в режим редактирования и включите прорисовку wireframe (Z).

Задача состоит в следующем: для каждой группы необходимо указать область вершин, назначаемую данному звену (Рис. 9).

9

Работа с группами вершин была подробно описана ранее — при создании модели (LXF89). Сделайте следующие привязки:

  • foot.L и foot.R — стопы объекта.
  • leg.L и leg.R — подъем от стопы к туловищу.
  • spine — все, кроме стоп.

Вот и все. Для проверки, выделите арматуру и перейдите в режим позы. Для проверки «походки», попробуйте подергать за рычаги в окне Rear View. При этом должны двигаться только ноги со ступнями. Теперь перейдите в Front View и покачайте spine справа налево. Здесь, наоборот, происходит качание всего туловища без стоп. Если при движении неправильно работают вершины, нужно всего лишь удалить или добавить оные в нужные группы.

Осталось вернуть все спрятанные объекты на место и настроить анимацию. Как вы уже догадались, для этого мы воспользуемся возможностями ключевой анимации (LXF90). Перейдите в режим позы и, совмещая движение земного шара с ногами, создайте несколько ключей. Не забудьте, что наш пингвин должен не двигаться, а перебирать ногами. Настроив этот вид ходьбы, перейдите в окно Front View и добавьте характерное качание при ходьбе, причем на те же самые ключи, что и созданные ранее.

Если вам удалось настроить анимацию и пингвин зашагал вперевалку, то, наверное, вы заметили, что флаг все так же упорно остается на месте и за движениями модели не следует. Это дело поправимое. Выделите древко знамени, затем косточку spine (арматура должна быть в режиме Pose) и нажмите Ctrl+P для создания иерархии. Выберите из предложенного меню пункт Bone. Все! Теперь наша анимация настроена окончательно.

Искусство освещать события

Освещение в трехмерных сценах — это целая наука, которая заслуживает отдельной немаленькой статьи. Но, тем не менее, мы и сейчас, особо не вникая в теорию освещения, сможем значительно улучшить восприятие нашей сцены. Посмотрите вокруг себя, сколько источников света вы сможете насчитать? Солнце, экран монитора, всевозможные отражения — даже крохотный экран мобильника и то вносит свою лепту. А теперь подумайте о переносе всего этого в компьютер. Пожалуй, нереально, да и мощностей наших с вами машин не хватит. Но не все так тоскливо, и 3D-дизайнеры уже давно наловчились «обманывать» народ. Речь идет о так называемом окружающем свете, который равномерно пытается осветить все объекты в сцене. Попробуйте отрендерить кадр из сцены (F12). Тускло и безжизненно. Теперь нажмите F5, затем крайнюю справа кнопку World buttons (иконка в виде земного шара). Вы попадете в панель настройки «окружающего мира».

Ambient Occlussion — вот то, что нам нужно. Нажав на эту кнопку, вы включите окружающий свет. Выполните рендеринг и сравните картинку с предыдущей. Налицо значительное улучшение общего вида… и столь же значительно увеличилось время обработки. Так как у нас в сцене явно присутствует космическая составляющая, то неплохо было бы добавить звездное небо. Это можно сделать «в лоб», внедрив на задний план подходящую картинку, либо воспользовавшись некоторыми заготовками программы.

Находящаяся рядом закладка Mist/Stars… предоставляет подобную возможность. Нажмите кнопку Stars, затем кнопку Blend в окне Preview и обработайте картинку.

Комментарий Александра Супрунова
Img 91 101 1.jpg

Одной из самых замечательных особенностей Blender, существенно повышающих его мощь, является возможность расширения за счет сторонних модулей и библиотек. Благодаря им, создание морской ракушки, дерева или шестереночного механизма часов превращается в щелчок мышью и несколько секунд ожидания.

Мы пока не будем заселять земной шар, вращающийся под ногами Тукса. Но вот сделать помохнатее самого пингвина можно и даже нужно! Да, я говорю про мех.

Для достижения этой цели, воспользуемся расширением BrianHFurLibVol1_13July2006. Это обычный blend-файл, содержащий библиотеку, основанную на эффекте многих частиц, воспроизводящих волосяной покров жирафа, далматинца, леопарда, зебры и даже... Кинг Конга.

Для добавления «меховой» библиотеки достаточно нажать Shift+F1 и выбрать файл BrianHFurLibVol1_13July2006.blend с диска LXF. Щелкните по нему, чтобы войти внутрь и перейдите в папку Object. Укажите тип меха: tiger. На одном из слоев должен появится мохнатый шар. Находясь в режиме Object Mode, выделите пингвина вместе с мохнатым шаром (удерживайте клавишу Shift). Теперь нажмите Ctrl+C и в появившемся меню выберите Particle Settings – Тукс покроется густым мехом. Его длину и прочие параметры можно подрегулировать во вкладке Particles, Для этого нужно нажать F7 и активировать на панели кнопку Physics buttons. В частности, параметр Life отвечает за длину меха, а Amount – за его густоту. Не бойтесь экспериментировать!

Комментарий Александра Супрунова

Для создания звездного неба на этом уроке мы пошли простейшим путем и настроили параметры Mist/Stars.... Альтернативный подход аналогичен используемому в компьютерных играх – окружающее пространство представ- ляется кубом с натянутыми текстурами звезд, туманностями и т.д.

Img 91 102 2.jpg
  1. Но поскольку мы не пишем динамичную стрелялку, а занимаемся моделированием, время отрисовки сцены не столь критично, и использовать куб нет особой нужды. Возьмем для разнообразия трубу, Tube (Add->Mesh->Tube). Увеличим размер трубы (S), чтобы внутри нее поместилась вся сцена с пингвином. Чтобы получить большую свободу действий, можно удалить часть трубы, расположенную перед камерой, выделив точки (B).
  2. Напомню также, что если какие-то объекты мешают моделированию, не обязательно переносить их в другой слой – достаточно просто спрятать, нажав клавишу H. Чтобы увидеть спрятанные объекты снова, нажмите Alt+H. Добавив в сцену трубу, сделайте ее гладкой, открыв нужную вкладку (F9) и нажав кнопку Set Smooth. Теперь давайте наложим на нее текстуру. Для этого разделим экран на два окна. В левом перейдите в режим UV Face Select. В правом выберите UV/Image Editor. В окне UV/Image Editor вызовите Image->Open и откройте картинку с текстурой звездного неба. Колесиком мыши уменьшите проекцию, чтобы она была видна в окне целиком. Теперь переместите курсор мыши в левое окно и нажмите U, чтобы сделать развертку объекта для наложения текстуры.
  3. Появится большое меню, предлагающее выбрать метод развертки – очевидно, что для нашего случая больше всего подходит Cylinder from View. Чтобы увидеть наложенную на объект текстуру, нажмите Alt+Z.
  4. А теперь обратите внимание на окно UV/Image Editor – в нем вы увидите развертку. Можете масштабировать ее, вытягивать и т.д., наблюдая за изменениями, происходящими на текстуре, натянутой на объект, в реальном времени. Чтобы увидеть наложенные таким образом текстуры, необходимо сделать небольшие изменения в режиме Object Mode. Нажмите F5, а затем, в меню Material нажмите кнопку TexFace, а во вкладке Map Input – UV.
  5. Теперь можно произвести отрисовку сцены обычным образом.
Ваше мнение

Вам понравилась серия уроков по Blender и вы хотели бы освоить и более сложные приемы? Сообщите нам об этом, отправив письмо по адресу

Вот и все. Мы завершили работу над нашей первой сценой и завершили этим цикл статей, посвященных начальным ступенькам в мир 3D. Время не стоит на месте, уже сейчас вышла следующая версия Blender’a, оснащенная новыми, еще более мощными и удобными инструментами. Угнаться за прогрессом невозможно, но, тем не менее, основа успеха нами, я думаю, была заложена. Удачи!

Персональные инструменты
купить
подписаться
Яндекс.Метрика