Сайт о телевидении

Сайт о телевидении

» » Быстрый старт из MakeHuman в Unity3D. Создание low poly и high poly моделей персонажа. Запекание карты нормалей в Blender

Быстрый старт из MakeHuman в Unity3D. Создание low poly и high poly моделей персонажа. Запекание карты нормалей в Blender

Держать под рукой модель с правильной человеческой анатомией — очень важно вне зависимости от того, работаете ли вы в сфере моделирования для медицинских целей или любой другой, где нужно создавать персонажей . Если вам необходимо отрендерить/скрыть/отрезать часть костей/органов/частей тела, то наличие уже готовой болванки очень ускоряет время работы.

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

Начну с того, что расскажу, как нужно готовиться к работе над проектом подобной сложности, а далее мы рассмотрим наиболее удобные инструменты моделинга /скульптинга, которые в разы упростят вам работу.

Всегда начинайте с подборки хороших референсов

Грамотно отобранные референсы — залог успешной и безболезненной работы над проектом. Кроме того, нужно понимать, за что’ отвечает та или иная кость/мышца. Это поможет избежать ошибок и дальнейших правок. Изучите, какие именно функции выполняет каждый элемент, который вы моделите.

“Не приступайте к работе, пока ваш мозг не поймет и не запомнит функции элементов, которые вы планируете изобразить” — говорит Макс Бродел, первый профессор медицинского искусства, также по совместительству основатель дисциплины «Искусство», которая вошла в программу обучения медицинского факультета университета Джона Хопкинса.

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

Интернет — просто кладезь информации для поиска референсов (картинок, иллюстраций, видеороликов). Однако, выбирать референсы нужно очень внимательно, так как наряду с хорошими примерами, можно наткнуться на плохие, где анатомия указана либо неточно, либо вообще неправильно. Это ведет к появлению ошибок при моделинге, а значит и к бессонным часам правок.

Находите несколько референсов на один и тот же элемент анатомии, и пользуйтесь только надежными проверенными ресурсами.

Начните с моделинга скелета

Правильно смоделенный скелет — это каркас для дальнейшего наращивания на него мышц. Размерами пространства, которое окружает грудная клетка нельзя пренебрегать, так как в будущем, там должны поместиться внутренние органы.

Кости имеют весьма специфическую форму, особенно в местах, где к ним плотно прилегают мышцы. Будьте особенно внимательны к пропорциями скелета. Если вы ошиблись на этапе создания скелета, то это потянет за собой трудности при дальнейшем моделинге.

Прорабатывайте места пересечения мышц.

Моделируя мышцу, важно понимать откуда она начинается, где заканчивается, чем пересекается, и как расположена по отношению к кости. Проще всего это сделать, если поискать референсы того, как мышца и кость выглядят в разрезе.

Это облегчит работу и поможет лучше понять форму.

Для создания UV-развертки используйте UV Master в ZBrush

Создание развертки — очень времязатратное мероприятие. Чтобы сэкономить время, я использую встроенный в Zbrush плагин UV Master, который создает развертку автоматически. Это экономит много времени, и неплохо работает даже на довольно высокополигональных моделях. Плагин UV Master находится во вкладке ZPlugin.

Откройте плагин UV Master, и выберите опцию Unwrap. Убедитесь, что вы применяете эту функцию на самом нижнем уровне подразделений. Далее идем в Texture map и выбираем Create from Polypaint. Когда вы экспортируете модель из Zbrush, текстурная карта генерируется вместе с файлом в формате.obj.

Применяйте Dosplacement map к низкополигональным мешам

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

Перейдите в меню Displacement Map, выберите опцию Create DispMap, предварительно убедившись, что вы активировали Flip V. Настроить сгенерированную Displacement map можно в Blender.

“Раздуйте” ваши модели в ZBrush

Я заметил, что импортированные в Zbrush модели, теряют в объеме, когда добавляются подразделения. Чтобы этого избежать, я слегка раздуваю лоупольную модель перед скульптингом. Перейдите в меню Deformation, и с помощью слайдера Inflate раздуйте вашу модель.

Используйте magnet tool

Когда моделите мышцы в Blender, в особенности это касается мышц лица, советую использовать Magnet tool, чтобы приснепить меш к геометрии черепа. Начните с обычного плейна, а потом, в режиме Edit, располагайте меш, по форме черепа.

Используя Magnet tool при экструде, новые вертексы будут “прилипать” к поверхности черепа. Такой подход автоматически позволит создать правильную форму мышц. Также можно использовать модификатор Solidify, чтобы добавить толщину, если нужно. Мой пайплайн таков:

  1. Кликните в строке меню на иконку Magnet;
  2. Выберите режим Face из меню Snap Element, рядом с иконкой Magnet;
  3. Убедитесь, что иконка Projection также активна.

Пользуйтесь функцией Auto Backfacemask

В процессе работы, некоторые места меша могут истончиться и скульптить станет неудобно. Дело в том, что во время скульптинга тоненьких мест, влияние кисточки распространяется также на внешнюю/противоположную часть меша.

Чтобы избежать этого, нужно активировать функцию Auto Masking Backfacemask. Это функция маскирует внешнюю/противоположную часть геометрии, поэтому с обратной стороны не будет ненужных артефактов и дырок.

Сложите все объекту в одну группу

Часто при моделинге приходится делать множество рендеров с разных ракурсов, чтобы проверить, как будет смотреться форма. Когда Вы настроили свет, то удобнее всего вращать непосредственно саму модель, а не источники света. В данной ситуации удобным будет подход: сложить все меши в одну группу, и вращать именно ее.

Проверьте еще раз вашу модель

На самом деле подобную модель тяжело довести до конца. Всегда будет то, что еще можно доработать, так как человеческую анатомию можно изучать вечно. Кроме того, в подобном проекте тяжело не наделать ошибок, поэтому очень важно проверять свою модель и регулярно сверяться с референсами.

Я работал над этим проектом много лет, постоянно внося правки и изменения. Несколько раз я переделывал модель с нуля, постоянно добавлял новые кости, мышцы, нервы и другие анатомические структуры.

Со временем вы заметите, что чем чаще вы будете проверять свою модель, тем более точным и “наметанным” станет ваш глаз.

В данной статье дан краткий обзор программы для создания 3D персонажей, показан процесс создания низкополигонального и высокополигонального персонажей, а также описан процесс запекания карты нормалей и карты затенения (ambient occlusion map) в Blender’е для использования получившегося low poly персонажа в игровом ддвижке Unity3D.

Знакомство с MakeHuman и моделирование персонажа.

Зачем нужен makehuman, если можно взять готовую болванку, созданную в том же Блендере или 3DS MAX и используя инструменты моделирования и цифрового скульптинга получить желаемый результат? А для того, чтобы сократить время, затрачиваемое на на моделирование базовых low poly и high poly моделей, соответствующих друг другу. Кроме того, на освоение основ моделирования, создания UV-развертки и скульптинга в 3d-редакторах требуется время, а makehuman упрощает создание, как низкополигональных (low poly), так и высокополигональных персонажей (high poly), особенно на этапах становления на путь игродела. Если взять, к примеру, того же зомби или первобытного человека, то MakeHuman отлично справляется с этой задачей, особенно если подкорректировать стандартную диффузнуя карту/текстуру и, по желанию, создать карту нормалей. MakeHuman также отлично подойдет для создания Адама или Евы, Амазонки, различных персонажей с минимумом одежды: наемников с обнаженным торсом и в плавках, персонажей для игр с элементами выживания (Survival-игр), девушек в бикини, обтягивающих костюмах, киборгов, как из матового или блестящего пластика, так и хромированных модификаций и т.д. Если включить фантазию, то можно придумать еще много персонажей, которых можно создать с минимальным количеством потраченного времени. Немного освоив моделирование и скульптинг, в том же самом Блендере, Sculptris’е () или ZBrush’e, вы сможете создавать уже более серьезные модели, например, наемников, не только в плавках, но и в штанах, куртке и ботинках, а также добавлять им отличительные элементы, такие, как шрамы, родинки, макияж и т.д. И не стоит забывать, что MakeHuman и Blender могут быть связаны посредством соответствующих плагинов, позволяющих создавать в Blender’е одежду и обувь и импортировать ее обратно в MakeHuman.

Итак, приступим к созданию 3D модели нашего первого персонажа.

После запуска «MakeHuman» (в данной статье рассматривается версия 1.0.2) приложение создает персонажа с усредненными параметрами по полу, возрасту, телосложению, весу, росту и т.д.

На рисунке показан стартовый экран программы для создания персонажей MakeHuman с персонажем с настройками по умолчанию.

Используя вкладки «Main», «Gender», «Face», «Torso», «Arms and Legs», «Custom», «Measure» вкладки «Modelling», расположенной в строке вкладок сразу под главным меню, вы можете изменить параметры своего будущего персонажа.

На рисунке показаны основные “менюшки” MakeHuman.

Вкладка «Main» отвечает за макро-параметры, такие как придание персонажу женских или мужских черт (посредством ползунка «Gender»), возраст («Age»), мышечная масса («Muscle»), вес («Weight»), рост («Height») и так далее.

Вкладка «Gender» (справа от вкладки Main, не путать с ползунком во вкладке Main) позволяет вам манипулировать формой груди персонажа.

Вкладка «Torso» отвечает за пропорции торса персонажа.

Пропорции рук и ног вы можете настроить в соответствующей вкладке «Arms and Legs».

Останавливаться на каких-либо отдельных особенностях моделирования персонажа я не буду, интерфейс MakeHuman интуитивно понятен. За что отвечает тот или иной ползунок догадаться не сложно, а если возникли сомнения, то всегда можно попробовать изменить положение ползунка, который не известно за что отвечает, и посмотреть, как это отразится на персонаже. В любой момент вы можете отменить последнее действие, нажав комбинацию клавиш Ctrl+Z. Стоит обратить внимание, что иконка контура головы со знаком «равно» (=) вместо мозга позволяет вам создавать симметричного персонажа, т.е. то, что будет применено на левой руке или ноге, будет, соответственно применено на правой руке или ноге. Однако некоторые параметры персонажа, например, Trans Horiz в настройках туловища (Torso) и Trans влево-вправо в настройках лица (Face) исключены для зеркалирования, поскольку созданы специально для того, чтобы добавить асиметричности вашему персонажу. И второе: не забывайте посматривать в правую часть экрана, ведь в ней содержатся дополнительные настройки вашего персонажа, а также много чего полезного, включая параметры импорта модели и тонкой настройки той или иной части вашего персонажа.

Если вы уже прошлись по вкладкам (особенно нажав вкладку «Arms and Legs», которая автоматически позиционирует камеру к кистям рук), то вернуться к виду по умолчанию‚ вам поможет иконка человека с разведенными в сторону руками, которая отвечает за сброс параметров камеры к значениям по умолчанию (Reset camera).

Ели вы хотите сбросить параметры своего персонажа на параметры по умолчанию, то выберите в главном меню иконку Reset (две изогнутые стрелки, замкнутые в круг и похожие на иконку синхронизации приложений) и подтвердите сброс параметров. Вы также можете перезапустить MakeHuman, чтобы загрузить MakeHuman с созданием персонажа с параметрами по умолчанию.

Выберите иконку «Wireframe» в главном меню, чтобы посмотреть сетку персонажа.

На рисунке показана созданная 3D модель персонажа с включенной сеткой.

Чтобы вращать 3D модель вашего персонажа, переместите мышь, удерживая Левую КнопкУ Мыши. За приближение и удаление камеры отвечает колесико мыши или зажатая Правая Кнопка Мыши в совокупности с ее перемещением. Переместить камеру влево-вправо вверх-вниз вам поможет перемещение мыши с зажатой Средней Кнопкой Мыши или колесиком мыши. Такое перемещение камеры работает только при достаточном приближении камеры к модели. Если вы максимально удалите камеру от модели, то перемещать камеру в стороны (можно назвать это стрейфом) вы не сможете.

Итак, вернемся к сетке. MakeHuman поддерживает несколько видов сетки и, соответственно, топологий моделей. При старте MakeHuman персонажу назначается топология по умолчанию. Для того чтобы выбрать другую топологию, откройте вкладку Геометрия (Geometries), расположенную под главным меню в первой строке вкладок справа от вкладки “Modelling” и выберите вкладку Топологии (Topologies) во второй строке вкладок, относящихся к геометрии.

На рисунке показана выбранная вкладка “ Topologies” в меню “ Geometries”, позволяющая сменить сетку/топологию вашей 3 D модели.

Теперь в правой части экрана вы можете видеть, что текущая топология персонажа соответствует топологии «None «, которая больше подходит для женских персонажей, чем мужских (из-за выраженных особенностей сетки в грудном отделе).

На рисунке показана модель мужского персонажа с выбранной топологией по умолчанию «None».

На рисунке показана модель женского персонажа с выбранной топологией по умолчанию «None».

Топология female1605.proxy является топологией женского низкополигонального персонажа.

На рисунке показана модель женского персонажа с выбранной топологией female1605.

А вот male1591.proxy – отлично подходит для использования на мужском персонаже.

На рисунке показана модель мужского персонажа с топологией “man1591topology”.

proxy741.proxy также является топологией мужского персонажа, но крайне низкополигонального: у него даже пальцы рук (кроме большого) не разделены (кстати, данная топология отлично подойдет в качестве low poly модели для мобильных платформ, ведь модель с данной топологией состоит всего из 1460 треугольников, если не считать треугольников глаз).

На рисунке показана модель мужского персонажа с топологией “man741topology”.

Модель с топологией по умолчанию «None» состоит из 26756 треугольников без учета глаз. Высокополигональный вариант глаз состоит из 2080 треугольников на оба глаза, т.е. на каждый приходится по 1040 трисов (от tris — треугольный полигон), причем каждый глаз состоит из двух мешей.

На рисунке показаны составные части высокополигональных 3D моделей глаз.

Низкополигональные глаза, о выборе которых будет сказано чуть позже, состоят из 344 полигонов каждый и имеют геометрию усеченных UV-сфер.

У топологии «None» есть полость рта, но нет языка. Количество треугольников меша языка вы всегда можете узнать после экспорта 3D модели в Blender. А вот у топологии male1591.proxy язык есть, но полость рта ему заменяет внутренняя поверхность головы, а значит, что при использовании одностороннего шейдера в Unity, когда персонаж откроет рот, то через ротовое отверстие (конечно, если возникнет желание заглянуть ему в рот), можно будет увидеть все, что происходит позади головы персонажа. Все что происходит позади персонажа особенно будет заметно в 3D шутерах, когда вы встанете напротив персонажа, и он ответит на ваше приветствие. Для того чтобы этого избежать дополнительной нагрузки на GPU (а двусторонний шейдер все таки нагружает графический процессор больше, чем односторонний) и/или CPU, потребуется создать полость рта в Blender’е, сделать персонажа немым или устанавливать камеру в такое положение, чтобы камера не смотрела в лицо персонажа, когда тот открывает рот. У модели с этой топологией (male1591.proxy) количество треугольников насчитывает 3140 штук с языком и 3052 — без языка. Вполне себе рабочее количество треугольников согласно странице справки Unity Modeling Characters for Optimal Performance , где сказано, что количество полигонов, которое вам стоит использовать, конечно же, зависит от требуемого качества и платформы, под которую пишется приложение, но для модели, созданной для игры под мобильные устройства, рекомендуется использовать от 300 до 1500 полигонов. Для десктопных приложений количество полигонов 3D модели следует уложить в диапазон от 1500 до 4000 полигонов.

Поскольку мы создаем мужского персонажа, давайте остановим свой выбор на топологии male1591.proxy. Выберите данную топологию, щелкнув на ней левой кнопкой мыши.

На рисунке показана выбранная вкладка топологии male1591.

В этой же вкладке (“Geometries”) вы можете выбрать наличие языка (для топологии 1591 язык добавлять не нужно, он включен в топологию), ресниц, волос, форму и кучность бровей, наличие зубов, низкополигональную или высокополигональную модель глаз, а также можете одеть своего персонажа. В этой вкладке (“Geometries”) я хочу обратить ваше внимание не необходимость выбрать персонажу low poly модель глаз, которая доступна в подменю “Eyes”. Цвет глаз мы выберем чуть ниже.

Ваш первый персонаж почти готов. Именно его мы и будем использовать в качестве низкополигональной модели в Blender’е и Unity 3D.

Для использования данного персонажа в игровых движках, таких как Unity 3D или Unreal Engine не только в качестве статую, хотелось бы, чтобы у него был скелет/арматура. И в MakeHuman’е уже есть несколько готовых вариантов скелетов. Скелет будет использоваться нами для создания анимации персонажа, и который также будет использоваться в Unity для применения к нему уже существующих анимаций, например, созданных для другого персонажа (Unity 3D позволяет использовать уже готовые анимации, созданные для других моделей). Посмотреть набор предоставляемых MakeHuman’ом скелетов, и выбрать один из них для своего персонажа вы можете во вкладке Поза/Анимирование (Pose/Animate), расположенной под главным меню, во втором ряду вкладок, как раз между Materials и Rendering. Изначально модели не назначен скелет (выделенный пункт меню “None”).

На рисунке показан контур вашего персонажа без скелета/арматуры.

Скелеты basic и humanik отличаются наличием у первого костей для манипуляции нижней челюстью и языком, что позволит создавать анимацию разговора, зевков и т.д., т.е. всего того, что связано с открыванием рта. Также в скелете basic присутствуют кости для век. Название еще одного скелета muscles говорит само за себя. Этот скелет отлично подойдет в том случае, если вы хотите, чтобы мышцы персонажа вели себя приближенно к мышцам реального человека, однако 107 костей побольше нагрузят игровой движок, чем предыдущие варианты скелетов, не говоря уже про скелет second_life_bones, который отлично подойдет для мобильных игр или для модели зомби, поскольку состоит всего из 19 костей, а гибкость – не самая сильная сторона зомби. Особенностью скелета game является минимум костей для пальцев на руках. Скелет Xonotic отлично подойдет для одноименного проекта с открытым исходным кодом, да и не только для него, однако данный скелет отличается отсутствием костей для глаз, век, языка и подбородка, но персонажам в шлеме эти кости совсем не обязательны. ///вставить скрин из Ксонотик

Остановимся на скелете humanik. Выберите соответствующий скелет в правой части экрана.

На рисунке показан контур персонажа с выбранным скелетом humanik.

Теперь давайте займемся текстурой персонажа (кожей/skin). Makehuman предоставляет некоторый набор текстур для различных рас обеих полов. Текстуры доступны во вкладке Materials. В левой части экрана для изменения текстуры персонажа доступны Кожа (Skin) и Глаза (Eyes). Для Skin я выберу young_asian_male.

На рисунке показана Low poly модель персонажа с выбранной кожей young_asian_male.

Закончив с цветом кожи, вы можете перейти у цвету глаз. Выбрав в левой части экрана «Eyes», в правой части экрана вы сможете выбрать цвет глаз вашего персонажа.

На рисунке показано меню выбора цвета/текстуры глаз.

На рисунке показан зеленоглазый персонаж (слева) Справа показана 3D модель персонажа уже с волосами, но в рамках данной статьи не будут рассматриваться «прически». Конечно, вы можете выбрать ту, что вам нравится в соответствующем разделе в меню «Geometries», однако это создаст некоторые сложности при запекании карты нормалей с высокополигональной модели на низкополигональную и возможные артефакты при анимации вашего персонажа, которые не рассматриваются в данной статье. Вы же всегда можете поэкспериметировать позже, как только освоитесь в MakeHuman и Blender’е, верно?

Итак, настройка нашего персонажа закончена и осталось его экспортировать в Blender. Перед экспортом сохраните созданную модель, выбрав “Files” в главном меню и соответствующую вкладку “Save”.

Выберите имя и путь для сохраняемого файла и нажмите кнопку “Save” справа от окна ввода имени файла.

Обязательно сохранитесь, поскольку от скачков напряжения, ошибок в работе ПО и т.д. и т.п. никто не застрахован, а данная модель нам еще понадобится.

Настройки экспорта 3D модели из MakeHuman для Blender’а.

Стоит отметить, что модели, созданные в MakeHuman, можно открывать в Blender’е минуя процедуру экспорта-импорта, лишь установив для Blender соответствующий add-on, но мы воспользуемся старым добрым экспортом модели с последующим импортом в Blebder. Чтобы импортировать созданного персонажа, выберите «File» в главном меню и в среди появившихся вкладок выберите Export”, чтобы открыть список форматов, в которые MakeHuman умеет экспортировать готовые модели. Я выбрал для себя формат dae. Здесь также стоит отметить, что помимо текстур, MakeHuman умеет экспортировать карты развертки (uv-maps) и скелет вместе с назначенными весами вершинам 3D модели (ригом персонажа).

Конечно, хотелось бы сразу экспортировать 3D модель в FBX формат для редактирования в Blender’е, однако по некоторым причинам Blender не поддерживает FBX модели, сериализованные в текст (именно этот тип формата имеют экспортированные MakeHuman’ом модели в формате FBX).

На рисунке показан текст ошибки при импорте в Blender 3 D объекта из файла, сохраненного в MakeHuman в формате ASCII FBX.

Чтобы экспортировать 3D модель в формате Collada, выберите соответствующую radio-button “Collada (dae)”. В правой части вам станут доступны настройки экспорта для данного формата, например, “Feet on ground” совмещает самую нижнюю точку модели с нулем по оси z в Blender’е, т.е. “ставит ноги персонажа на землю”.

Также в окне опций можно выбрать ориентацию модели в пространстве, а точнее направление осей при экспорте модели.

На рисунке показаны верные настройки для импорта в Blender.

В Unreal Engine4 направленной вверх осью является ось z, а осью, указывающей лицо/перед/модели, является ось x. В Blender’e направленной вверх осью, также как и в UE4, является ось z, а вот осью, определяющей «перед» модели, является ось –y (минус игрек).

В свою очередь, в Unity вертикальной осью является ось y, а “передом“ модели – ось z, т.е., если вы хотите импортировать свою модель сразу в Unity, то вам стоит выбрать “Y up, face Z”. Проверить верность направления осей в Blender’е или Unity 3D вы можете, если переключитесь с глобальных осей модели на локальные оси. Если они не изменились, значит, локальные оси модели совпадают с глобальными осями, и модель не была повернута в процессе экспорта-импорта.

На рисунке показаны оси импортированной модели с установками “ Z up, face — Y” в режиме работы/отображения глобальных (слева) и локальных (справа) осей объектов.

На рисунке показаны оси импортированной модели с установками осей для экспорта “ Z up, face — Y” (настройками MakeHuman по умолчанию) в режиме работы/отображения глобальных (слева) и локальных (справа) осей объектов.

Такие настройки экспорта из MakeHuman отлично подходят для использования модели непосредственно в Unity без промежуточного этапа в Blender’е, описанного в данной статье.

Переключение между “Global” и “Local” осями модели в Blender’е осуществляется при помощи кнопки панели, расположенной под каждым окном 3D вида, слева от инструмента выбора видимых слоев.

На рисунке показана кнопка переключения между режимом отображения локальных и глобальных осей. Нашли? Та самая, с надписью «Local».

Здесь также стоит отметить, что при экспорте модели из Blender’а, например, в fbx-формат, существует возможность изменить оси экспортированной модели.

На рисунке показано направление глобальных осей в Unity 3 D в соответствующем режиме отображения осей активного объекта.

Если же вы экспортируете модель с настройками “Z up, face -Y” из MakeHuman, а затем импортируете ее в Unity и переключите режим отображения осей в Unity с глобальных на локальные, то вы сразу увидите, что локальные оси модели не совпадают с глобальными (оси глобальной системы координат Unity отображаются в правом верхнем углу экрана).

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

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

Направление осей на данном рисунке может относиться, как a) к неверному заданию осей при экспорте модели из Makehuman, Blender’а или любого другого 3D-редактора, так и b) к багу, наблюдаемому при экспорте модели из Blender’а с правильными настройками.

Увидеть, что модель импортировалась с перевернутыми осями в Unity 3D можно и во вкладке Assets окна Project, если посмотреть на составные части импортированной модели.

На рисунке видно, что импортированный меш 3 D модели повернут в окне Assets.

Дополнительную информацию про позиционирование объектов в Unity 3D можно почитать на сайте Unity3D .

Вернемся к параметрам экспорта объектов из MakeHuman в Blender. “Scale units” позволяет выбрать масштаб экспортируемой модели. Выбрав посредством radio-button “meter” равенство одного юнита MakeHuman’а одному метру, мы тем самым получим требуемый масштаб в Blender’е, где один unit Blender’а будет равен одному юниту MakeHuman’а и равен одному метру.

На рисунке показаны настройки Scale units для экспортируемого персонажа. Вы можете выбрать Британскую Имперскую систему мер или метрическую в окне Units вкладки Settings, расположенной под главным меню в первой строке вкладок.

Введите имя файла (в который будет произведен экспорт модели) в текстовом поле, расположенном справа от иконки с многоточием и, если вы хотите экспортировать модель в папку по умолчанию, то выберите кнопку Export справа от текстового поля (text-box’а). По умолчанию MakeHuman экспортирует модели в папку../Documents/makehuman/v1/exports/ (../Документы/makehuman/v1/exports/). Данный путь может отличаться в зависимости от выбранного пути для установки Makehuman, установленной у вас операционной системы, конфигурационного файла Makehuman и т.д.

Если вы хотите выбрать путь для экспорта файлов модели, то нажмите на иконку выбора пути для экспорта файла (упомянутая выше иконка с многоточием). В открывшемся в стандартном диалоговом окне Windows выберите директорию, в которую хотите экспортировать модель, и нажмите кнопку “Сохранить /Save”.

Лирическое отступление. У меня в версии MakeHuman 1.0.2 при изменении имени файла в стандартном окне Windows сохранение все равно происходит в файл с именем, которое я ввожу в текстовом поле makeHuman (которое находится справа от иконки многоточия). Если же не ввести имя файла перед открытием окна выбора директории, то, какое бы имя я не вписывал в открывшемся диалоговом окне, сохранение все равно происходит в файл exports.

Для рассматриваемого примера экспорта модели в выбранной папке будет создан файл с расширением dae, а также папка textures, в которую сохранятся выбранные вами текстуры для персонажа.

Как мы увидим позже, модель экспортировалась вместе с выбранным нами скелетом и UV-разверткой. Также отдельными файлами экспортировались текстуры модели и глаз.

Итак, мы сохранили low poly модель персонажа. Теперь осталось сохранить высокополигональную модель. Выберите в главном меню MakeHuman кнопку Wireframe (иконка сетки слева от иконки «шахматной доски») чтобы перейти в режим отображения сетки персонажа. Слева от этой кнопки находится кнопка Smoth (иконка с двумя линиями: одной сглаженной и другой — нет), позволяющая добавить модели сглаженности путем подразделения каждого полигона 3D модели. Данная кнопка похожа по принципу работы на применение инструмента Subdivision, Subdivide Smooth или модификатора Multiresolution в Blender’е. Нажмите данную кнопку и посмотрите, что получилось. Даже после применения сглаживания наша модель не особо похожа на ту, что мы создавали, верно? Перейдите во вкладку “Topologies” меню “Geometries” и выберите топологию “None”, которая была установлена по умолчанию в тот момент, как только вы начали создавать своего персонажа. Вот так гораздо лучше!

На рисунке слева направо: топология 1591, сглаженная топология 1591, топология “ None”, сглаженная топология ‘ None” и сглаженная топология ‘ None”с включенным отображением текстуры (кнопка “ Wireframe” отжата).

Теперь сохраните данную высокополигональную модель, желательно под другим именем, и экспортируйте ее (также желательно под другим именем).

Импорт моделей в Blender

Теперь давайте откроем low poly и high poly экспортированные модели в Blender’e, а точнее импортируем их на сцену. После того как вы удалите все созданные по умолчанию или вами ранее объекты, или хотя бы дефолтный куб (нажмите клавишу ‘A’, чтобы выбрать все объекты на сцене, либо щелкните Правой Кнопкой Мыши на объекте, который хотите удалить, чтобы выбрать его, и нажмите клавишу ‘X’, чтобы открыть меню обязательного в таких случаях подтверждения удаления), выберите в меню File->Import->Collada(Default) (.dae) и выберите экспортированный ранее файл low poly модели, чтобы импортировать из него своего персонажа в Blender.

На рисунке показано меню импорта 3 D модели в Blender из dae-файла.

В некоторых случаях модель может импортироваться в режиме постоянного затенения (Flat Shading, Flat) вместо затенения методом Гуро (плавное затенение, Gouraud Shading, Smooth shading). Чтобы сгладить модель, необходимо выбрать ее, перейти в режим редактирования меша (клавиша ‘Tab’), выделить все элементы меша (клавиша ‘A’) и выбрать вкладку Shading/UVs в левой части активного окна 3D вида в меню инструментов (клавиша ‘T’), после чего выбрать метод затенения Smooth для поверхностей/полигонов (Faces:).

На рисунке показана модель с постоянным затенением (слева), модель в режиме редактирования меша со всеми выбранными элементами меша и меню выбора затенения для выбранных элементов меша (в центре) и “сглаженная” модель методом затенения Гуро (справа).

Сохраните файл Blender с импортированной моделью. Хотя в Blender’е и есть автосохранение, не забывайте сохранять свои наработки .

Теперь точно так же импортируйте в Blender high poly (высокополигональную) 3D модель вашего персонажа.

На рисунке показаны импортированные низкополигональная и высокополигональная модели персонажа. Как видно, они импортировались в точку с одинаковыми координатами (в данном случае в центр сцены), поскольку Origin модели у Low poly и у high poly моделей совпадают. Также на рисунке видно, что в некоторых местах высокополигональная модель просматривается поверх низкополигональной, это поможет нам чуть далее для выбора обеих моделей, когда мы будем запекать карту нормалей с «хайполи» модели на «лоуполи» модель.

Сохраните файл с обеими импортированными на сцену моделями, лучше в файл с другим именем. В Blender существует функция последовательной нумерации сохраняемых файлов. Если после нажатия комбинации клавиш Ctrl+Shift+S (Save as…) нажать клавишу “+” (плюс) на дополнительной (цифровой) клавиатуре, ничего до этого не нажимая в окне сохранения файла, то к существующему имени файла добавится следующая цифра, т.е. если вы изначально сохранили файл с именем “mymodel.blend”, то после нажатия “плюсика” на клавиатуре имя файла для сохранения изменится на “mymodel1.blend”, во время второго сохранения тем же способом и нажатия «плюсика» — на mymodel2.blend и так далее.

Теперь перейдем непосредственно к запеканию карты нормалей с высокополигональной модели (high poly model, хайполи модели) на низкополигональную модель (low poly model, лоуполи модель). Для того чтобы запечь карту гормалей с одной модели на другую, необходимо, чтобы они перекрывали друг друга, для low poly модели должна быть создана uv-развертка (автоматически создается в MakeHuman и экспортируется в файл вместе с моделью) и создано изображение, в которое будет запекаться карта нормалей.

Для того чтобы открыть просмотр uv-развертки вашего персонажа и создания изображения для запекания карты нормалей, необходимо открыть окно Редактора UV-развертки/Изображения (UV/Image Editor), для чего выберите под одним из окон 3D вида самую левую иконку текущего типа редактора для текущей области и выберите в выпадающем вертикальном меню вкладку UV/Image Editor.

На рисунке показан процесс открытия редактора UV-развертки/Изображений в одном из окон 3D вида.

Теперь выберите в режиме объекта (именно объекта, а не редактирования меша) Правой Кнопкой Мыши высокополиональную модель (у нее сетка плотней), а затем, зажав клавишу ‘Shift’, добавьте лоуполи модель к выбранной хайполи модели при помощи все той же Правой Кнопки Мыши. Перейдя в режим редактирования меша (клавиша ‘Tab’) и выбрав все составляющие элемента меша (в данном случае вершины) путем нажатия клавиши ‘A’, вы увидите развертку своей модели в окне редактирования uv-развертки.

На рисунке показана uv-развертка в окне Редактора UV/Изображения для выбранных полигонов 3D модели в окне 3D вида до создания изображения, на которое будет запекаться карта нормалей.

Приколите (от английского pin – приколоть) uv-развертку своей модели. Также используются выражения “запинить”/закрепить развертку. Чтобы запинить развертку, в окне Редактора UV-развертки выберите все вершины uv-развертки нажмите клавишу ‘A’ (или используйте инструмент прямоугольного выделения – клавиша ‘B’, или выделения окружностью – клавиша ‘C’) и нажмите клавишу ‘P’. Вершины uv-развертки окрасятся красным.

Для того, чтобы запечь карту нормалей необходимо в меню Свойств “Properties” выбрать вкладку “Render” в нижней части которой открыть панель “Bake”. В панели Bake поставьте флажок напротив опции “Selected to Active” (с выбранного на активный), а для Режима запекания (”Bake Mode”) выберите пункт “Normals” в раскрывающемся списке.

На рисунке показано меню выбора Нормалей (Normals) в качестве режима для запекания с одной модели на другую (флажок напротив Selected to Active).

Если сейчас вы попробуете запечь карту нормалей с одной модели на другую, нажав кнопку “Bake” (длинная такая кнопка с фотоаппаратом, сразу над выбором Режима запекания) то получите сообщение об ошибке в верхней части окна Blender’а и в позиции курсора “No objects or images found to bake to”.

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

Как было сказано выше, необходимо создать изображение, в которое будет запечена карта нормалей, карта смещений/displacement map, ambient occlusion и т.д.), для чего под окном Редактора UV/Изображений нажать на кнопку “New”, задать имя создаваемого изображения и его разрешение (размер в пикселях по высоте и ширине) и нажать “OK”. Для нашего примера давайте оставим значения по умолчанию 1024 на 1024 пикселей, а в поле имени для изображения введем “characternormalmap”.

На рисунке показано меню создания изображения для запекания в него карты нормалей, диффузной карты, карты высот/смещения, затенения и так далее.

Чтобы подстроить uv-развертку под размер окна редактора uv-развертки, покрутите колесико мыши или, пока курсор мыши находится в данном окне, нажмите клавишу ‘A’, чтобы выбрать все вершины вашей развертки и затем клавишу ‘Del’ (она же “.”) на дополнительной/цифровой клавиатуре, чтобы отцентрировать выбранные элементы по центру экрана.

Теперь вы можете запечь карту нормалей, нажав кнопку “Bake”.

На рисунке показана запеченная в Blender’е карта нормалей с высокополигональной модели на низкополигональную.

Сохраните карту нормалей, выбрав пункт “Image” в меню UV/Image Editor и в раскрывающемся списке выбрав “Save Image”. В меню сохранения файла выберите название для файла с картой нормалей и нажмите кнопку “Save As Image”. Помните, что Blender не сохраняет нарисованные или запеченные карты (диффузную, карту нормалей, карту смещения и т.д.) автоматически, так что если вы просто сохраните файл через Ctrl+S или Ctrl+Shift+S и позже откроете данный файл, то вы не увидите запеченную карту или нарисованную текстуру.

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

На рисунке показана запеченная карта нормалей во всей своей «красе».

Как вы можете видеть, карта нормалей запеклась хорошо, за исключением пальцев ног (это вызвано значительным отличием в геометрии пальцев ног у high poly и low poly 3D модели), области рта (обусловлено в отсутствии ротовой полости у низкополигональной модели и разной формой языков у моделей), а также за исключением элемента в правом нижнем углу экрана. В этой части uv-развертки (такой разноцветный остров uv-развертки) расположен остров uv-развертки языка персонажа, карта нормалей для которого запеклась с артефактами. Почему? Все дело в том, что для низкополигональной модели персонажа мы использовали одну топологию, которая по умолчанию содержала язык, а высокополигональная топология модели не содержала язык. Но даже если бы мы добавили язык высокополигональной модели в MakeHuman через соответствующую функцию, нас бы это не спасло, поскольку добавленный язык имел бы геометрию, отличную от геометрии языка lowpoly модели, так что карта нормалей запеклась бы так же “криво”. Что же делать в этом случае? Можно, создать копию языка low poly модели и добавить эту копию high poly модели (опционально добавив языку каких-либо индивидуальных особенностей), после чего запечь карту нормалей. Если не добавлять индивидуальных особенностей добавленному языку highpoly модели и запечь карту нормалей с клонированного языка на оригинальный, то смысла в таком запекании не будет.

На рисунке показана та же карта нормалей, но с запеченным языком, скопированным с low poly модели и добавленным high poly модели. Нормали данного острова ничем не отличаются от цвета фона, что видно на рисунке ниже.

Вторым способом является редактирование запеченной карты нормалей, на котором мы и остановимся. Откройте сохраненный файл карты нормалей, например, в GIMP, и задайте цвет заливки равным RGB (128, 128, 256), создайте новый слой из слоя фона или превратите фон в слой. Теперь создайте новый слой и поместите его под слоем с запеченной картой нормалей. Залейте пустой слой выбранным цветом. Теперь сделайте активным слой с запеченной картой нормалей и при помощи инструмента прямоугольного выделения обведите остров развертки, соответствующий языку, после чего нажмите клавишу ‘Delete’, чтобы удалить данный остров. Теперь сохраните файл (в Photoshop’e нажмите комбинацию клавиш Ctrl+Shift+S, а в GIMP’е процесс сохранения в формате отличном от нативного GIMP’овского называется экспортированием и открывается по нажатию комбинации клавиш Ctrl+Shift+E) в том же формате, который изначально имел файл развертки, например, png.

На рисунке показана та же карта нормалей, но с исправленным островом карты нормалей для языка в редакторе GIMP. Если сравнить этот рисунок с предыдущим, то можно увидеть, что они ничем не отличаются, кроме как цветом фона.

Кроме карты нормалей вы также можете запечь ambient occlusion map, достаточно лишь в меню Режима запекания вместо карты нормалей выбрать Ambient Occlusion и запечь ее, сохранив по готовности. Поскольку язык находится внутри 3D модели, для него запечется темный фон. По-хорошему, его необходимо запекать отдельно, либо залить цветом фона, как это было сделано для карты нормалей, только здесь цвет заливки черного участка необходимо выбрать серый.

На рисунке показана запеченная карта затенения, созданная с использованием метода глобального/непрямого затенения объектов Ambient occlusion.

Как видно на рисунке, на запеченной карте затенений заметен сильный шум, уменьшить который можно путем добавления сэмплов (Samples) в меню Свойств “Properties” во вкладке “Gather”, предварительно поставив выше флажок для вкладки «Ambient Occlusion».

Импорт 3D модели в Unity

Вы можете импортировать в Unity 3D низкополигональную модель, которую вы экспортировали из MakeHumen’а, в формате dae.

Также вы можете импортировать модель из Blender’а, например, в формате fbx (или нативном формате Blender’а). Чтобы экспортировать модель из Blender’а в формате fbx, выберите ее правой кнопкой в режиме объекта, добавьте к выбранной модели глаза (Shift+ Правая Кнопка Мыши на модели глаз), затем выберите в Главном меню “File”, затем “Export”и желаемый формат, например, FBX (.fbx), который рассматривается в данной статье. В диалоговом окне сохранения файла выберите настройки и имя будущего файла и папку, в которую хотите сохранить файл с экспортированной 3D-моделью.

На рисунке показаны основные настройки в меню экспорта модели из Blender’а для Unity3D в формате FBX.

Более подробно про экспорт из Blender в игровые движки вы можете прочитать в статье .

Теперь, когда вы готовы импортировать свою low poly модель в Unity 3D с диффузной картой и картой нормалей, откройте свой проект Unity3D или создайте новый и перетащите low poly 3D модель из папки, в которую вы ее экспортировали, в одну из папок своего проекта в Unity 3D. Теперь откройте папку../Documents/makehuman/v1/exports/textures/ (../Документы/makehuman/v1/exports/textures/) и перетащите в свой проект Unity текстуру глаз и тела персонажа. Перетащите туда же карту нормалей.

Перетащите свою модель из папки ассетов (куда вы ее импортировали в Unity 3D) на сцену или в Окно Иерархии (Hierarchy).

При импорте модели будет создана папка Materials, в которой будет создан материал young_lightskinned_male_diffuse для тела персонажа и материал brown_eye для глаз персонажа.

Перетащите материал для тела на модель персонажа (у меня python_boosternative3-male1591) на сцене или на соответствующий пункт в окне иерархии, а материал для глаз перетащите на модель глаз (у меня — python_boosternative3-low_poly). Имя файла, в который я экспортировал свою модель в MakeHuman’е, называется “boosternative3”, которое, как вы можете видеть, и фигурирует в Unity3D. Родителем для модели тела, глаз и арматуры (“python”) является автоматически создаваемая пустышка с названием файла, из которого были импортированы модели.

Перетащив материал для тела на модель тела персонажа, находящуюся на сцене, выберите ее, дважды щелкнув на ней Левой Кнопкой Мыши, или щелкните Левой Кнопкой Мыши на “ python_boosternative3-male1591” в окне Иерархии. Откройте вкладку материала и перетащите диффузную карту young_lightskinned_male_diffuse и карту нормалей в соответствующие слоты.

Добавьте текстуру в соответствующий слот материала глаз.

На рисунке показаны импортированные модели персонажа в Unity 3D. Стрелками показан процесс перетаскивания элементов на соответствующие модели и в соответствующие слоты.

Вот и все.

На этом рисунке показана модель персонажа без (слева) и с использованием запеченной карты Ambient occlusion (справа).

Теперь вы можете использовать данного персонажа в своем проекте, например, для создания Survival игры. Вы также можете изменить геометрию низкополигонального и высокополигонального персонажей (создав брюки и ботинки), перезапечь карту нормалей, нарисовать новые текстуры для тех же штанов и футболки, нарисовать персонажу перчатки.

Как было сказано выше, освоив Blender и цифровой скульптинг можно из моделей MakeHuman создавать различных персонажей для игр.

P.S. голые ноги превращать в штаны удобней, если они не слишком «раскачаны», особенно в икрах. Если захотите одеть персонажа в футболку, придется сгладить, как минимум, пупок, а на руках добавить вены и «заскульптить» мышцы.

[email protected]

Post Views: 43 045

Сегодня мы с вами создадим простейшую анимацию во всемирно известной программе Blender.

Эта программа предназначена для 3d моделирования. Она является бесплатным аналогом всем известной программы 3ds max. Сделана энтузиастами и по своему функционалу НИЧЕМ НЕ УСТУПАЕТ МОНСТРУ 3d ИНДУСТРИИ 3DS MAX! По некоторым возможностям она даже превосходит его. Приятно удивляет размер и скорость установки дистрибутива, а возможности рендеринга изображений поражают. Любой начинающий 3d художник задает себе вопрос «А как же это все так быстро работает?». Программа Blender использует, в отличие от 3ds max свободную открытую архитектуру, и изначально задумана как бесплатная. Этот подход позволил сделать очень быстрый легкий и мощный инструмент для художников и аниматоров. В будущем я планирую сделать небольшой обзор функционала и возможностей данной программы.

Данную программу вы можете скачать с официального сайта проекта Blender. Не пугайтесь англоязычному интерфейсу. Программа сделана на языке Python, поэтому весь интерфейс легко переводится на русский язык встроенными возможностями. В своем обзоре я расскажу как это делается легко и непринужденно.

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

В данном курсе уроков я применяю такой подход «Все сложное познается на простых примерах». Поэтому мы с вами освоим простой пример Анимации и вы сами поймете как все просто.

Мы с вами создали скульптуру человеческой ноги в программе Sculptris.

Такую же скульптуру можно сделать внутри программы Blender (режим скульптинга), но это неудобнее и дольше в связи с ограниченностью инструментов и тяжелым интерфейсом. В программе Sculptris скульптура получается гораздо быстрее и элегантнее.

ИТАК, ПРИСТУПИМ!

Выбрать модификатор скелет для объекта нога. В появившейся вкладке Модификаторы добавить модификатор «Скелет». Модификаторы объектов — это по сути спецэффекты, которые добавляются в свободный код программы энтузиастами. Эти модификаторы привносят в объекты специальные эффекты. Модификатор «Скелет» предназначен для программного связывания скульптуры ноги со скелетом. Это необходимо в анимации.


12. Выбрать правой кнопкой мыши кость, зайти в режим правки, зайти во вкладку Скелет, выбрать режим оболочка. У каждой кости Есть определенное расстояние, на котором полигоны скульптуры ноги будут считатся принадлежащими данной кости. Внизу вы видите режим отображения данных расстояний. Изменяя расстояние у каждой кости мы, таким образом, каждый полигон скульптуры ноги сделаем принадлежащим определенной кости. При движении кости в анимации, полигон будет следовать за ней.


13. Выбрать кость правой клавишей мыши, зайти во вкладку кость, изменить расстояние. Следите, чтобы не оставалось полигонов за пределами сфер вокруг костей. Иначе такие полигоны не будут участвовать в анимации, оставаясь на месте. Это породит неприятные эффекты. В то же время старайтесь подобрать расстояния так, чтобы они были минимальными. Для чего? Полигоны в области колена принадлежат сразу двум костям (Бедру и Голени), так как находятся


14. Выбрать кость Голень, зайти во вкладку Ограничения, добавить ограничение — инверсная кинематика. Ограничения костей — это по сути биологически обоснованные программные ограничения движения костей, как в реальном мире. Ограничения необходимо задавать для правильной анимации движений конечностей, чтобы фигура двигалась реалистично, а не как тряпичная кукла. Их можно не задавать для тех художников, у которых цель — сделать 3d модель и статичную позу. А для тех, кто хочет сделать видео или мультфильм, правильные реалистичные движения конечностей просто необходимы для быстрого формирования реалистичных поз.

Вы можете скачать результирующий файл

В следующих уроках мы применим более совершенную технологию, косяков уже не будет видно!

Моделирование и риггинг персонажей, это задача, требующая времени; она требует много опыта и практики для своего выполнения и, пока большинство из нас его только набирает, бывает удобно просто позаимствовать для обучения уже готового персонажа. Для обучения ли самому дизайну и риггингу или для углублённого изучения анимационных техник и проверки сказанной информации. Ну и фактор «просто по приколу» («just for fun» ) тоже всегда стоит принимать во внимание. Далее следует список хороших персонажей и скелетов, созданных и предоставленных в ваше распоряжение различными членами сообщества Blender для вашей учёбы и развлечения.

5) Leg Rig от Daniel Martinez Lara

Простой, но замечательный скелет ноги. Он пользуется только несколькими рычагами (около 2-3), но не ухудшает функциональность даже в самой малости. Даниэль также сделал маленькое демонстрационное видео, показывающее как скелет реализует быстрое изменение оси вращения ступни/ноги.

6) : персонаж и скелет v1.0 созданы Jason Pierce

Ludwig это полностью снабжённый скелетом и готовый к анимации персонаж для Blender. Его особенности включают руки с IK/FK, растягивающаяся и сжимающаяся голова и позвоночник, и пригодное для синхронизации губ управляемое лицо с отдельным UI. Ludwig создан с целью предоставления сообществу Blender высококачественного гуманоидного скелета и продвижения Blender, как инструмента для анимации персонажей.

7) Mancandy Collection , созданная Bassam Kurdali

Звезда широко известного DVD «Mancandy FAQs». Полностью снабжённый скелетом и готовый к анимации персонаж. Все 3 версии Mancandy доступны для загрузки и изучения.

8) Mouse Rig : от Clean3D

Clean3D был создан милый маленький персонаж, снабжённый скелетом, для экспериментов с ним.

9) Otto : от Virgilio Vasconcelos

Otto основан на техниках, продемонстрированных на конференции Blender. Один из наиболее выразительно растягивающихся скелетов из всех. Включает средства управления лицом.

10) Petunia Robot : от macouno

Petunia это маленький робот-обезьянка, созданный для участия в конференции 2007-го года Blender Conference Suzanne Awards. Petunia полностью снабжена скелетом и к ней прилагаются инструкции, как её использовать и анимировать.

11) Richie the Gecko от Jonathan Lax

Gecko Animation Limited рада представить Richie Gecko Rig сообществу Blender для загрузки! Это классный и простой скелет, включающий переходы форм для анимации выражений лица Richie. Вдобавок этот.blend-файл содержит настройку нодов композиции, использованных для постобработки анимации.

12) Red-Nelb .04 от Daniel Martinez Lara

Текущая версия имеет номер 0.4, что значит: 1) она не готова к серьёзному использованию. 2) В ней отсутствуют некоторые стандартные функции наподобие Fk рук/ног (пока только IK), растягивание и т.д.

Полная переделка рук и ног в процессе. Так что, используйте его на свой страх и риск!

«Red-Nelb» это повод проверить и реализовать концепции риггинга, в этой версии упор сделан на использовании минимума управляющих элементов в окне просмотра без потери функциональности.

13) Снабжённый скелетом персонаж «Suzanne» от Michael Thoenes

Снабжённый скеелетом персонаж для Blender, основанный на примитиве (или примате?) головы обезьянки Suzanne.

14) Squeek от Wim Claes

Маленькое птицеподобное создание для обучения основам анимационных инструментов Blender.

Итак, перед вами приятная маленькая библиотека полностью снабжённых скелетами персонажей, с которыми можно играть по велению сердца. Почему вы ещё сидите? Вперёд!

Здравствуйте, уважаемые читатели портала 3D Today.
Я уже достаточно давно печатаю и крашу фигурки. Но не всегда можно найти подходящую. Надо двигаться дальше, и вот решил создать интересную фигурку уже не из готовой модели, а из того, что осталось, то есть из заготовок. А заодно и рассказать, как делать Rigging модели в Blender ’е.
Риггинг – это процесс создания скелета у 3д модели, при помощи которого впоследствии создаются позы персонажа и анимация.
Также придётся столкнуться с таким понятием как «инверсная кинематика ». Это мне напомнило обратную задачу кинематики в робототехнике (я робототехник). Если не вдаваться в научные объяснения в обратной кинематике по положению конечного звена определяются расположения всех остальных звеньев. Например, у нас есть ладонь и по положению ладони Blender автоматически сгибает запястье, локоть и плечо. Это удобно и одновременно позволяет делать позу более естественной.
Итак, что же мне досталось?
Магосы кузней Марса прислали мне СШК файлы из неведомых архивов с изображением ассасина храма Каллидус. Изображения были в формате OBJ были разъединены на отдельные плоскости и с кучей ошибок. Предположительно это модель для модификации какой-то игры из Вархаммера.
Масштаб также был микроскопический, модель была в позе «раскоряки», а лечение её в Netfabbe не давало результата. Поэтому пришлось лечить модели вручную каждую по отдельности, а потом соединять их булевыми операциями. Пистолет и оружие ближнего боя я оставил как отдельные модели. Сохранил модель как STL файл.

1) После этого я импортировал модель в Blender: File – import - .Stl . Перед началом работы важно так спозиционировать модель, чтобы её линия симметрии располагалась на центре координат (это важно).

2) Для того чтобы создать скелет нужно нажать Add (Shift + A) – Armature – single bone . Для того, чтобы наш скелет был виден сквозь предметы нужно поставить галочку X-Ray во вкладке Арматуры (рисунок человечка). Также стоит поставить галочку Names там же, чтобы видеть названия костей.

3) Появится маленькая кость в виде пирамидки. Ее можно крутить, масштабировать и перемещать, как и привычный объект в Блендере. В Edit Mode при Экструдировании (E) вытягивается ещё одна новая кость. Для создания кости не связанной с остальными работает комбинация Shift + A . Каждую кость нужно перемещать внутри тела так чтобы она была на своём месте. Это не значит, что у нас должно быть 33 позвонка, но в остальном нужно стараться придерживаться реальной анатомии, повторяя те кости, которые имеют суставы. Коса у нашей девушки тоже должна изгибаться под своим весом, поэтому в ней много костей. Чтобы было более удобно и быстро размещать кости лучше пользоваться ортогональными видами (клавиши Numpad ’а ).

4) Таким образом, мы прописываем кости везде, где считаем нужным (кроме тех конечностей, которые симметричны).
5) Добавляем к каждой кости имя на вкладке с костями. Это лучше заранее сделать т.к. в скелете риггинга человека несколько десятков элементов, которые будут мешать своими непонятными именами. Симметричные кости нужно именовать по типу «имя».L, где L – обозначает левую кость. Это очень поможет, когда мы будем копировать элементы на правую сторону.

6) Теперь нужно добавить инверсную кинематику . Перейдём на вид сбоку и добавим как бы шпору и отдельную кость около колена.
Для того чтобы кость инверсной кинематики не была соединена ни с одной из костей скелета, выбираем в Edit Mode эту кость, затем Alt + P и Clear parent .

Для каждой из созданных костей заходим во вкладку костей и снимаем галочку с Deform . Теперь эти кости не будут деформировать нашу модель при движении.

7) Выберем кость Foot1.l зажмём Shift и добавим к ней LegIK.L, а затем Make parent (Ctrl + P) и пункт Keep offset . Теперь наша стопа крутиться, если покрутить LegIK.L

Для добавления инверсной кинематики в режиме Pose Mode выберем кость LegIK.L зажмём Shift и добавим к ней Leg.L, а затем выберем Add constraint (Ctrl + Shift + C) - Inverse Kinematics . Кость ноги при этом окрасится в желтоватый цвет.

9) Выберем жёлтую кость и зайдём во вкладку ограничений и настроим инверсную кинематику, установим Chain Length – 2 , то есть наша кость инверсной кинематики будет увлекать за собой 2 кости. Также чтобы наша нога могла поворачиваться из стороны в сторону, сделаем ограничение Pole Target – Armature – Target . L . Попробуем согнуть нашу ногу за LegIK.L. Если нога сгибается неправильно, возможно, следует поиграться с параметром Pole Angle .
Сделаем таким же образом ещё и руку и косу.

10) Сделаем зеркальную копию нашей ноги. Для этого перейдём на вид спереди (клавиша 1) и заменим Центр вращения на 3д курсор и поместим сам курсор в начало координат зажав Shift + S и выбрав Cursor to center .

После чего в Edit Mode выберем все наши кости для копирования и нажмём следующую волшебную комбинацию: Shift+D , S , X , -1, Enter . Теперь наши кости продублировались, и чтобы написать им правильные имена не снимая выделения с них, зайдём в меню Armature – Flip Names .
11) После того как все кости созданы, соединим их между собой: Выберем кость бедра в Edit Mode затем, затем зажмём Shift и добавим Spine3, выполним операцию Make parent (Ctrl + P) – Keep offset

У вас всё правильно, если при сдвиге костей позвоночника ноги сами сдвигаются и картинка соединения похожа на такую:

12) Выберем в Object Mode наше тело, затем через Shift скелет и нажмём на Set parent to (Ctrl+P) - Armature Deform - With Automatic Weights. Теперь наша модель соединена со скелетом и при движении костей она будет деформироваться, но не всегда правильно.

13) Теперь выберем нашу модель и перейдём в режим Weight Painting , где начнём раскрашивать веса.

Вот так выглядит кость с автоматически проставленными весами. Как мы видим тут цветовая палитра от красного к синему. Красные части строго следуют за моделью, а на синие части влияние у кости отсутствует. При промежуточных цветах происходит деформация полигонов при движении.

Раскрашивать нашу модель следует так: красным - там где нет деформации при движении, например грудная клетка, а также всякие навесные элементы, как подсумки. ремешки, бляхи и пр. Промежуточными цветами нужно красить места сочленения костей, стараясь сделать переход как можно более плавным.

Есть кисточки, которыми мы будем раскрашивать нашу модель:

Две самые часто распространённые кисти это Mix и Blur . Первая кисть лучше подходит для покраски вершин в нужный цвет. Вторая кисть лучше всего подходит для растушёвывания цвета, т.е. для создания плавных переходов.
Параметр Weight – это сила закрашивания вершин, Для кисти Mix : 0 – синий цвет, 1 – красный. Radius – размер кисти, хотя я предпочитаю масштабировать саму модель, а не менять её размер. Strength – отвечает за силу применения эффекта кисти (я её не трогал при работе).
То, что я пометил стрелочкой - это и есть сама кисть, т.е. курсор превращается в такой вот кружочек.
Самая распространённая новичковая ошибка при распределении весов – это случайная покраска весом совершено не соответсвующей части тела. Поэтому если вдруг у вас при сгибании руки внезапно деформируется также пятно на животе – ищите в костях руки покрашенное пятно и убирайте его.
Как понять, что вы всё сделали правильно? Да очень просто (ирония)– нужно лишь проверить каждую кость, крутя её в Pose Mode и наблюдая, есть ли неестественная деформация. И справлять, исправлять, исправлять! Процесс не то чтобы сложный, но скорее муторный, если модель имеет много костей.
Поэтому запасаемся терпением и красим каждую кость.
И это ещё не всё! У нас также есть 2 оружия, которые существуют отдельно от нашей модели. Для того чтобы исправить это подведём их в те места, где они должны располагаться, а потом в Object mode выбираем наш предмет, и жмём Add constraint (Ctrl + Shift + C) - Child Of .
В этом ограничении стоит указать нужную кость: Target – Armature , Bone – Palm.L , т.к. крепится пистолет будет к кости ладони.
Если наш предмет внезапно пропал из виду, нужно нажать Set Inverse .

Теперь при движении наши предметы будут следовать за руками. Проделаем ту же операцию и с ножом.
Осталось только правильно расположить нашего персонажа, просто передвигая кости. Для того, чтобы поза получилась естественной, попрактикуйтесь перед зеркалом (это реально помогает прочувствовать, на сколько куда и что нужно повернуть).
Если Вы сделали что-то не так, то выделите в режиме Pose Mode нужные кости и выберите Pose - Clear Transform – All . Это вернёт их в первоначальное положение.

В получившейся позе я специально сделал 1 ногу выше другой, чтобы она опиралась на бортик подставки, которую я замоделил во Fusion 360.

Я опасался, что руки выйдут кривыми, но вот такие кулачки у меня получились, пока я загибал пальчики один за другим:

В конце получился вот такой вот пафосный ассасин, которого я конечно же буду печатать, красить и дорабатывать.

Долго не решался делать риггинг, ибо первые попытки были не сильно удачными, но я надеюсь, что эта статья покажет, что это не так сложно и не так страшно.