Как сделать модельку для юнити
Перейти к содержимому

Как сделать модельку для юнити

  • автор:

Подготовка своего персонажа

Существует три главных шага по созданию “с нуля” своего анимированного гуманоидного персонажа: моделирование, риггинг и скиннинг.

Моделирование

Это процесс создания своих гуманоидных мешей в одном из инструментов 3D моделирования — 3DSMax, Maya, Blender, и т.д. Хоть это и целая тема для обсуждения сама по себе, существует несколько принципов, которые рекомендуется соблюдать, чтобы ваша модель была совместима с анимацией в Unity проекте.

Skin Mesh, текстурированный и триангулированный

  • Соблюдайте разумную топологию. Понятие “разумной” структуры вашего меша довольно тонкое, но в целом вам следуем помнить о том, как вершины и треугольники модели будут искажаться при анимации. Неправильная топология приведёт к неприятным искажениям меша при движениях модели. Изучая существующие 3D меши персонажей, можно узнать много нового о том, как правильно размещать топологию и почему.
  • Не забывайте про масштаб вашего меша. Попробуйте импортировать модель и сопоставить её размер с “метрическим кубом” (длина одной стороны стандартного Unity примитива “куб” равна одной условной единице, так что такой примитив можно рассматривать как однометровый куб в большинстве случаев). Проверьте единицы измерения вашего приложения для 3D моделирования и скорректируйте настройки экспорта так, чтобы размер модели был в нужных вам пропорциях к метровому кубу. Если не учитывать это при работе над моделями, легко прийти к ситуации, когда вы создадите несколько разных моделей без учёта масштаба и они окажутся несоразмерны после импорта в Unity.
  • Располагайте меш так, чтобы ступня персонажа находилась в центре вращения модели. Так как обычно персонаж ходит по горизонтальной поверхности, будет намного проще с ним работать, если его центр вращения(то есть, его позиция трансформации) будет на этой поверхности.
  • По возможности, моделируйте в Т-позе. Это даст дополнительное пространство для манёвра при работе над труднодоступными местами (например, подмышками). Кроме того, это упростит размещение рига внутри меша.
  • Держите модель в порядке. Не оставляйте дырок в поверхности, объединяйте вершины и избавляйтесь от скрытых поверхностей, которые никогда не будут видны. Это поможет при скиннинге, особенно если скиннинг автоматизирован.

Риггинг

Это процесс создания скелета из сочленений для управления движениями вашей модели.

Программы для 3D моделирования предоставляют множество инструментов создания сочленений гуманоидного рига. От уже готовых скелетов, которые достаточно отмасштабировать под свою модель, до средств создания отдельных костей и объединения их в костную структуру. Чтобы риг работал с Mecanim, таз должен быть корневым элементом всей иерархии костей и в скелете должно быть не менее 15 костей.

Иерархия сочленение/кость должна соответствовать натуральной структуре создаваемого персонажа. Поэтому руки и ноги должны идти в парах и вам следует соответствующе их называть (напр. “arm_L” для левой руки, “arm_R” для правой и т.д.). Возможные структуры иерархии:-

Двуногий скелет в Т-позе

  • Таз — позвоночник — грудная клетка — плечи — рука — предплечье — кисть
  • Таз — позвоночник — грудная клетка — шея — голова
  • Таз — бедро — нога — ступня — палец — конец_пальца

Скиннинг

Это процесс привязки меша к скелету.

Скиннинг включает в себя связывание вершин в вашем меше с костями скелета. Вершина может быть связана с костью напрямую (жёсткая привязка) или с несколькими костями, используя на них смешанные воздействия (мягкая привязка). В разных программах используются разные способы, например, привязывание отдельных вершин и вписывание в меш степени воздействия на каждую кость. Изначальная настройка обычно автоматизирована, к примеру, с помощью поиска ближайшего воздействия, или с помощью “heatmap”. Обычно скиннинг требует изрядного количества работы и тестирования с помощью анимаций, чтобы достичь желаемых результатов деформации скина. Вот несколько основных рекомендаций для этого процесса:

Интерактивное привязывание скина, один из многих способов скиннинга

  • Используйте автоматизацию для начальной настройки скиннинга (см. соответствующие руководства для 3DMax, Maya и т.д.).
  • Создавайте простые анимации или импортируйте готовые анимации для своего рига, чтобы проверить скиннинг. Это позволит вам быстро выяснить, хорошо ли выглядит ваш скиннинг во время движения.
  • Постепенно редактируйте и улучшайте свою работу по скиннингу.
  • Используйте не более 4 воздействий при использовании мягкой привязки, т.к. это наибольшее количество, которое может использовать Untiy. Если к части меша будет применено более четырёх воздействий, то как минимум часть информации будет потеряна при проигрывании анимации в Unity.

Как с нуля собрать 2D персонажа и оживить его в Unity. Часть 1

Павел Попов — Senior Unity Developer в команде NIX. В течение восьми лет он взаимодействует с архитектурой проектов и сетевой составляющей, а также периодически делает инди-игры. Знаком со стеком разработки с нуля, включая наброски картинок. Для ArtCraft Media Павел написал подробный туториал о том, как создать и анимировать 2D персонажа с помощью Unity 2020 LTS и пакетов PackageManager.

Павел Попов — Senior Unity Developer

Почему Unity?

Выбор пал на эту технологию потому, что в ней у меня больше опыта. Средства Unreal Engine, например, лучше всего использовать в 3D-разработке. Godot вполне в силах потягаться с Unity, но там еще есть нюансы с производительностью и стабильностью. Adobe Animate или Toon Boom Animation — для тех, кто рисует покадрово, например, для художников и профессиональных аниматоров.

Мы же нацелены на автоматизацию, и применение этих анимаций в играх или кат-сценах. Так мы сможем управлять широким спектром составляющих картины, не прибегая к прорисовке каждого кадра, а используя сам движок и наработки: освещение, эффекты, симуляции боев и тому подобное.

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

Сейчас мы создадим готового к анимации персонажа средствами Unity из картинки, разбитой на части. Освоив описанные ниже инструменты, ты сможешь оживить любую картинку, привести в нужный вид персонажа и также оживить его. Кроме того, в будущем ты будешь гораздо точнее ставить задачи художникам. Итак, погнали!

Начальная настройка Unity

Поставив 2D PSD Importer, за ним подтянется 2D Animation, который нам понадобится для инверсной кинематики (далее IK). Далее все, что нам нужно — правильно настроенный арт, и здесь есть свои тонкости. Возьмем для наглядности программу Gimp (последующие действия идентичны для Photoshop).

Используемые пакеты (Окно PackageManager (Windows-></p>
<p>PackageManager). Источник: личный архив автора» width=»968″ height=»271″ /></p>
<h3>Разбиваем персонажа на слои в Gimp (или Photoshop)</h3>
<p>Арт с сайта «‎порезал» художник-любитель. В файле учитывается приоритет по слоям — какой будет выставлен в Gimp, такой же будет на Unity сцене. Изменения можно будет проводить только в самих объектах или в исходнике. Зачеркнутый/скрытый слой — это персонаж в сборе одной картинкой, чтобы точно собрать его по кусочкам. Далее скрываем этот слой, чтобы не импортировать по умолчанию <em>(в настройках импорта Unity есть возможность включить в импорт скрытые слои, — прим. авт.)</em>.</p>
<p> <img decoding=

Если используешь Photoshop, выбери при экспорте формат .psb. Если Gimp, то экспортируем .psd, и потом вручную меняем формат файла на psb в проводнике. Они отличаются большим объемом поддерживаемого разрешение вплоть до 300 000 x 300 000 в отличии от обычного .psd (30 000 x 30 000). Если кидать обычный формат (.psd), Unity его не увидит. Перейдем к самому интересному инструменту с пакета PSD Importer.

Настройка персонажа в Unity

Благодаря PSD Importer пакету мы видим дополнительные возможности — Secondary Textures. Они нужны, чтобы наложить дополнительные карты нормалей или высот, и сделать нашу картинку объемнее.

 Выбираем нашего персонажа (Окно SpriteEdtior по клику на на файл персонажа.psb, youtubeIntro). Источник: личный архив автора

Накладывая нормаль, можно сделать имитацию углублений и выпуклостей без использования 3D, а лишь освещая поверхность. На этих инструментах я не буду подробно останавливаться, но пример может выглядеть вот так:

Результат — свет знает, как осветить sprite. Высоты и углубления знаем благодаря NormalMap. Источник: личный архив автора Результат — свет знает, как осветить sprite. Высоты и углубления знаем благодаря NormalMap. Источник: личный архив автора

Результат — свет знает, как осветить sprite. Высоты и углубления знаем благодаря NormalMap. Источник: личный архив автора

Идем дальше: проверяем, распознались ли все элементы в главном окне корректно, и можем переименовать или изменить pivot по необходимости. Теперь нас интересует Skinning Editor.

Окно Skinning Editor. Источник: личный архив автора

Полезные ссылки о PSD Importer о SkiningEditor. Рекомендую ознакомиться с примерами, если есть желание создать что то отличное от нашего персонажа, и чтобы понять разные стороны инструмента.

Оранжевым цветом на скриншоте подсвечено, какую панель стоит включить. С ее помощью мы правильно выложим наши кости, и она работает как стандартная иерархия объектов в Unity (Hierarchy — главная панель, переставления родительских объектов в дочерние, — прим. авт.).

Советую сразу именовать новосозданную кость в панели Visibility -> Bone (на скриншоте ниже выделено оранжевым).

Финальный результат настройки костей. Источник: личный архив автора

Нажимаем AutoGeometry для построения геометрии под каждый спрайт. Это позволяет в тонкой настройке задать нужный Mesh Deformation. Убрав выделение с какого-либо спрайта, жмем AutoWeight.

Маловероятно, что тулза на 100% распознала все верно. Перейдем в детальные настройки. Первое, что нас интересует — какой спрайт и область привязалась к кости. Для этого открываем Bone Influence.

Bone Influence — настройка привязки костей к изображению и его областям. Источник: личный архив автора

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

Примечание: есть более продвинутый режим — это, например, когда надо сделать, чтобы плащ был анимирован. Для этого вручную настроена сетка (вкладка Edit Geometry), и заданы несколько костей с областями с помощью инструмента Weight Brush. Но для первичного разбора нам достаточно правильно задать привязки костей к картинкам.

Когда мы уберем лишние кости, увидим, что вся область подсвечивается цветом этой кости. Если что-то не так, перегенерируйте Weight (AutoWeights -> Generate).

Финальный результат настройки. Источник: личный архив автора

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

Примечание: Рекомендую для ног и рук сделать три кости, или позже добавить их в режиме префаба. Так нам будет проще с помощью LimbSolver 2D (из пакета 2D Animation — компонент инверсной кинематики, — прим. авт.) настроить конечности. Не забываем нажать Apply, перекидываем наш префаб в Unity:

Настроенный персонаж исходное состояние. Источник: личный архив автора

Выглядит уже интереснее, но что-то сильно много костей, и нужно нажимать на «‎родителей» кости, чтоб сдвинуть их так, как мы хотим. Тут на помощь приходят инструменты инверсной кинематики из пакета 2D Animation. C их помощью мы настроим поведение всей руки или ноги одной финальной точкой. Пошаговая настройка и пример от самих Unity такого этапа есть по ссылке.

Настройка персонажа для анимации с помощью инверсной кинематики

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

Создание родительского объекта для персонажа. Источник: личный архив автора

Создаем префаб персонажа. У новой системы префабов Unity (начиная с версии 2018 года, — прим. авт.) есть некоторые особенности. Например, объект, который мы создали из ассета, не будет сохранять изменения. Даже если это исходник, как и любая 3D-модель. Поэтому для сохранения своих трудов рекомендую вкладывать подобные объекты в еще один родительский:

Исходный файл персонажа. Источник: личный архив автора

Далее добавляем четыре Limb Solver — это будут наши конечности. И один ССD, так как у нас между головой и туловищем всего две кости. Здесь мы можем настроить точнее. Если нет желания заморачиваться, можно просто создать пустой объект (в нашем случае — вместо меча), и сдвинуть его, или вовсе учесть в настройках костей шагом ранее.

Примечание: CCD и FABRIK отличаются точностью и количеством проходов по иерархии. Рекомендую ознакомиться с документацией подробнее.

Добавляем Limb Solver. Источник: личный архив автора

Теперь именуем наши вновь созданные объекты, и создаем по одному простому GameObject под каждый. Желательно их тоже назвать, чтобы в дальнейшем не теряться. Устанавливаем Target в каждом созданном Solver — четыре Limb и один CCD.

Устанавливаем Target в дочерние объекты. Источник: личный архив автора

Теперь устанавливаем Effector-точку для каждого IK Solver:

ArmL Solver Setup. Источник: личный архив автора ArmL Solver Setup. Источник: личный архив автораArmL Solver Setup. Источник: личный архив автора

ArmL Solver Setup. Источник: личный архив автора

Мы можем задать длину воздействия на потомков (выделено зеленым на скриншоте) до плечей, или в нашем случае до Roota. Когда поднимем наши точки с пола, увидим, что пока не все так гладко.

Результат первичной настройки. Источник: личный архив автора

Здесь мы видим две проблемы. Во-первых, наши суставы смотрят не в ту сторону. Во-вторых, наш управляющий point направляет руки персонажа не туда, куда надо.

Для начала поправим положение рук. Для этого переходим в конечную иерархию в Sword. Наведя курсор между X и значением, появляется альтернативный курсор — <>. Кликаем и понемногу меняем положения так, чтобы наш меч лег в руку. Ту же операцию проводим и для координаты Y при необходимости.

Настройка IK. Источник: личный архив автора

Сделаем так с обеими руками. Если у тебя кости находятся последовательно друг за другом, с этой проблемой ты не столкнешься. Также удостоверимся, что родительский объект не имеет смещения:

Проверка на смещение управляющих точек. Источник: личный архив автора

Переходим к суставам. Для этого кликаем на Flip-настройку. Этот инструмент вывернет сустав в нужную сторону. Здесь все зависит от первоначального скелета. В нашей ситуации имеем дело с ногами:

Настройка суставов. Источник: личный архив автора

Мы получили настроенного персонажа, которым можем управлять с помощью пятью точек. Также нам доступен Root, который не привязан к инверсной кинематике. Сдвигая его, мы можем менять положения тела, а наши IK Solver оставят конечности в той же позиции.

Финальный результат настройки. Источник: личный архив автора

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

В следующей части рассмотрим создание кат-сцены и то, как мы можем скомпозировать управление камерой, эффектами и уже настроенным персонажем в одном таймлайне с помощью Cinemachine Package.

Использование Blender и Maya с Unity

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

Мощное дополнение в инструментарий разработчика игр

Мощное дополнение к инструментарию

Мир игровой разработки устроен так, что чем больше у вас инструментов, тем больше у вас возможностей. Blender и Maya — это одни из самых мощных доступных инструментов. Они занимают ведущие позиции в графике и анимации. Эти приложения повышают гибкость игровой разработки и в конечном итоге помогают сделать игру качественнее. В этой статье мы расскажем, чем хороши Blender и Maya в составе инструментария начинающего разработчика игр в Unity.

  • Больше, чем графика и анимация
  • Бесшовный импорт в Unity
  • Объединение усилий дизайнеров и разработчиков

Больше, чем графика и анимация

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

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

Слыша «Blender» или «Maya», люди автоматически думают о графике или анимации. Но многие не знают, что возможности этих программ выходят далеко за пределы этих задач. Blender и Maya имеют множество других функций и преимуществ, например:

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

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

Sykoo — Руководство по использованию Blender 2.8 и Unity 2019 для начинающих

Бесшовный импорт в Unity

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

Для импорта ресурсов из Blender в Unity выберите пункт меню Assets > Import New Asset на панели меню Unity, а затем найдите и откройте файл .blend.

Для импорта файлов Maya в Unity выберите пункт меню Assets > Import New Asset на панели меню Unity, а затем найдите и откройте файл Maya с расширением .fbx.

Сотрудничество Unity и Autodesk над форматом FBX: демонстрация обмена файлами между Maya и Unity

Объединение усилий дизайнеров и разработчиков

As a game creator, your main concern will always be having everything you need to make the game you’ve envisioned. At Unity, we believe that game creation, particularly for new developers, should always be efficient and enjoyable.

Combining these programs with Unity unleashes powerful design and development capabilities. Using Blender or Maya with Unity is hassle-free: no complicated pipelines, no special installations or conversions, and every tool you need to succeed in developing your first game. With all of this creative power at your fingertips, you’ll be on your way to making truly amazing games.

Создание персонажей в Blender и Unity

Визуально персонажи 3D-игр имитируются с помощью использования моделей, текстур и анимаций.

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

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

Возможность многократного применения анимаций позволяет использовать анимации из Asset store и с таких вебсайтов, как mixamo.com, для ваших собственных персонажей. Это экономит кучу времени!

В этом туториале вы узнаете, как подготовить гуманоидную модель в Blender и как перенести её в Unity. В частности, вы научитесь следующему:

  • Создавать арматуру (скелет) персонажа и выполнять её риггинг (привязку скелета к мешу)
  • Модифицировать персонаж добавлением аксессуаров и объектов
  • Экспортировать модель в FBX
  • Импортировать модели Blender
  • Создавать и настраивать гуманоидный аватар
  • Прикреплять к персонажу объекты
  • Анимировать гуманоида в Unity

Приступаем к работе

Для прохождения этого туториала вам необходимо следующее:

  • Установить последнюю стабильную версию Unity.
  • Установить последнюю стабильную 64-битную версию Blender.
  • Иметь минимальное понимание редактора Unity. Можете изучить туториалы для начинающих на нашем веб-сайте.
  • Рекомендуется опыт работы с Blender. Здесь есть туториалы, по которым можно научиться основам.

Откройте папку заготовки (starter) проекта и перейдите в папку Assets\RW\Models. Откройте в Blender файл CuteCharacter.blend.

В файле содержатся следующие данные:

  • Низкополигональная модель гуманоидного персонажа.
  • Материал CuteCharacter.
  • Ссылка на текстуру CuteBase, содержащуюся в одной папке с моделью.

Заметьте, что она отзеркалена по оси X, это сильно упростит весь процесс работы. Справа показано простое изображение загруженной текстуры:

Первый шаг к анимированию этого персонажа — выполнение риггинга.

Создаём риг персонажа

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

Переместите мышь в окно 3D View, чтобы переключить на него фокус. Затем добавьте новую арматуру — удерживайте Shift и нажмите A, чтобы открыть Add Menu. Выберите Armature > Single Bone.

Мы создали арматуру и её самую первую кость, которую также называют корневой костью (root bone). Не снимая выделения с арматуры, найдите в разделе Display вкладки Properties флажок X-Ray и поставьте его.

Теперь арматура будет видна сквозь персонажа. Это упростит создание скелета.

Прежде чем приступать к созданию полной структуры, важно понять, как её нужно настроить для совместимости с Humanoid Avatar движка Unity.

Из-за особенностей привязки костей к собственной системе Unity некоторые ключевые кости являются обязательными.

Unity ожидает наличия минимум 15 костей, а именно:

  • Hips (root bone) — таз
  • Lower spine — нижняя часть позвоночника
  • Upper spine — верхняя часть позвоночника
  • Neck — шея
  • Head — голова
  • Two upper arms — два плеча
  • Two lower arms — два предплечья
  • Two hands — две кисти
  • Two upper legs — два бедра
  • Two lower legs — две голени

Убедитесь, что арматура всё ещё выделена и нажмите на Tab, чтобы перейти в режим Edit. Выберите корневую кость, нажав на неё правой клавишей мыши.

Примечание: в Blender для выбора объектов используется правая клавиша мыши. Нажатие левой клавиши мыши изменяет позицию 3D-курсора — небольшого жёлтого круга с красно-белым кольцом вокруг. При перемещении 3D-курсора все новые объекты создаются в его новой позиции, а для нашего туториала это не требуется. Для сброса позиции 3D-курсора можно нажать Shift + S, откроется меню Snap Menu, после чего выбрать Cursor to Center.

Откройте вкладку Bone на панели Properties справа, чтобы можно было быстро вносить изменения, и переименуйте корневую кость в Hips, введя имя в поле ввода названия и нажав Enter.

Позвоночник

Настало время создавать структуру костей!

Выберите нижнюю сферу кости Hips и нажмите по порядку G, Z, 0.5 и Enter, чтобы переместить её туда, где должен быть пупок.

Теперь выберите верхнюю сферу и нажмите G, Z, 0.1 и Enter, чтобы немного переместить её вверх.

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

Чтобы создать несколько костей позвоночника, нам нужно подразделить кость Hips на три части. Выберите кость Hips, нажмите W, чтобы открыть меню Specials и выберите Subdivide. По умолчанию эта операция разделяет кость на две части, поэтому измените значение Number of Cuts в нижней части панели Tool слева на 2.

Примечание: если вы не видите ползунок Number of Cuts, то переместите курсор мыши под текст Subdivide Multi внизу слева и прокрутите вверх, чтобы сделать его видимым.

После разделения позвоночника новые кости называются Hips.001 и Hips.002. Это плохой способ наименования костей; переименуйте кости, по очереди выделив их и изменив имя в правой панели Bone.

Назовите верхнюю Chest, а среднюю LowerSpine.

Ноги

Теперь перейдём к костям ног. Дублируйте кость Hips, выбрав её и нажав Shift + D, а затем для подтверждения нажмите правую клавиши мыши.

Если посмотреть на панель Bone справа, то можно увидеть, что выбрана кость с именем Hips.001. Переименуйте её в UpperLeg.L. L означает left, «левая». Так мы будем понимать, с какой мы стороны костей и это поможет нам в дальнейшем при отзеркаливании.

Поверните кость UpperLeg.L по оси Y, нажав R, Y, 180 и Enter.

Теперь переместите на место по горизонтали, нажав G, X, .23 и Enter. Затем нажмите G, Z, -.2 и Enter, чтобы переместить её вертикально.

Примечание: на картинке выше показан режим wireframe, чтобы подчеркнуть, где находится кость. Включить или отключить этот режим можно нажатием на Z.

Выберите нижнюю сферу (также называемую коннектором) и переместите её вниз, нажав G, Z, -.3 и Enter.

Чтобы ногу можно было сгибать, её необходимо разделить. Выберите кость UpperLeg.L, нажмите W и выберите Subdivide для разделения ноги на две части. В результате у нас получится две кости ноги; назовите нижнюю LowerLeg.L.

Последняя часть ног — это ступни. Переключитесь на вид сбоку, нажав 3 на алфавитно-цифровом блоке (Numpad), после чего нажмите на клавишу «точка» (.), чтобы сфокусироваться на голени.

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

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

Теперь выберите нижний коннектор и чтобы создать стопу, экструдируйте его, нажав E, Y, -.18 и Enter.

Переименуйте созданную кость в Foot.L в панели Bone.

Теперь неплохо было бы сохранить файл. Нажмите CTRL + S и щёлкните левой клавишей мыши на появившемся имени файла. Периодически сохраняйте свою работу, Blender — достаточно стабильное приложение, но иногда может «крашиться».

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

Выберите UpperLeg.L и найдите в разделе Relations панели Bone раскрывающийся список Parent. Нажмите на него и выберите Hips.

Тело

Приступим к голове! Выберите коннектор в верхней части кости Chest, нажмите E, Z, .055 и Enter. Это будет кость шеи, так что назовите её в панели Bone Neck.

Чтобы добавить кость головы, не снимайте выделение с верхнего коннектора и нажмите E, Z, .95 и Enter.

Назовите созданную кость Head.

Далее приступим к коннектору левого плеча. Выберите верхний коннектор кости Chest и нажмите E, X, .08 и Enter, чтобы добавить новую кость. Немного переместите её вниз, выбрав правый коннектор и нажав G, Z, -.09 и Enter.

Назовите эту кость ShoulderConnector.L. Эта кость будет прикреплять плечо к грудине. Для протокола: это ни в коем случае не анатомически корректно, но нам это и не требуется.

Снова выберите самый правый коннектор и нажмите E, X, .85 и Enter. Так мы создадим одну большую кость, которую нужно будет разделить, чтобы создать оставшиеся кости с левой стороны.

Выберите созданную кость, нажмите W и выберите Subdivide. Измените количество разрезов внизу слева на 3, чтобы получить четыре части.

Назовите эти кости следующим образом, начиная слева направо:

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

Красная линия обозначает, где локоть находится сейчас, а белая — точку сгиба руки на меше. Чтобы исправить это, выберите LowerArm.L и переместите её вправо, нажав G, X, .09 и Enter.

Пока мы работаем только с левой частью. Но как насчёт правой?

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

Отзеркаливание

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

Для начала снимите выделение со всех костей, нажав A, чтобы не осталось оранжевых контуров выделений.

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

Выбрав эти кости, нажмите W и выберите Symmetrize.

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

Кроме того, в конце названий костей будет вместо .L буква .R, обозначающая их позицию.

Сохраните файл и приготовьтесь к риггингу.

Рисование весов

Рисование весов (Weight painting) — это процесс привязки костей к 3D-мешу. Каждая кость прикрепляется к группе вершин с определённой величиной веса.

Вес определяет «жёсткость» перетягивания вершин за костью.

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

Нажмите Tab, чтобы переключиться в Object mode. Сначала выберите модель, затем удерживайте Shift и нажмите ПКМ на арматуре, чтобы выбрать и её тоже.

Теперь нажмите CTRL + P, чтобы открыть меню Parent и выберите With Automatic Weights, чтобы сделать модель родителем арматуры и выполнить автоматическое рисование весов.

Визуально разница может быть незаметна, но теперь кости присоединены к мешу.

Прежде чем приступать к проверке, убедитесь, что Pivot Point находится в режиме Median Point, проверив нижнюю панель:

Включите режим Median Point, если там всё ещё выбран режим 3D Cursor.

А теперь начинается интересное! Переключитесь в режим Pose, выберите кость и поверните её, нажав R и перемещая курсор мыши. Проделайте это с каждой костью в центральной и левой части модели, чтобы убедиться, что все веса назначены верно.

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

Проверив все кости, вы можете заметить, что глаза не двигаются вместе с головой, что выглядит немного странно, если не сказать больше:

Чтобы прикрепить глаза к голове, нам придётся всё-таки самим назначить веса. Не выходите из режима Pose арматуры, удерживайте Shift и нажмите ПКМ на модели, чтобы тоже выбрать её. Теперь перейдите в режим Weight Paint. Мы готовы к рисованию весов.

В этом режиме можно выбирать кости, удерживая CTRL и щёлкая ПКМ на кости. Выберите кость Head и поверните её назад, нажав R, X, -90 и Enter.

Чтобы прикрепить глаза к кости Head, выберите кисть Add в разделе Brush панели Tool слева.

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

Вес можно увидеть визуально по цвету на меше; значения изменяются от 0 (тёмно-синий) до 1 (ярко-красный). Чтобы проверить результаты, вернитесь в вид спереди, нажав numpad 1 и Alt (или Option) + R для сброса поворота кости Head.

Теперь глаза правильно прикреплены к голове.

Примечание: показанный выше поворот выполнен вращением трекбола. Этот режим вращения можно активировать повторным нажатием R после начала поворота.

Завершив базовое рисование весов, можно приступить к деталям.

Добавление аксессуаров

Аксессуары в этом контексте — это объекты, прикрепляемые к персонажу, но не являющиеся частью его тела. В этом разделе мы рассмотрим два способа прикрепления объектов: к самой модели и как отдельного многоразового объекта, прикрепляемого к кости.

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

Сначала мы нажмём Z, чтобы выйти из режима wireframe и нажмём A, а затем Alt (или Option) + R, чтобы сбросить поворот всех костей.

Редактирование персонажа

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

Если вы повторяли за мной действия туториала, то сейчас находитесь в в режиме Weight Paint. И это хорошо, потому что после добавления шляпы нам нужно снова заняться рисованием весов. Нажмите Tab, чтобы перейти в режим Edit mode и начните с переключения режима выделения на Vertex, нажав CTRL + Tab и выбрав в меню Vertex.

Теперь выберите ПКМ любую вершину в верхней части головы, находящуюся выше красной линии (которая является используемым для текстурирования UV-швом). Нажмите CTRL + L для выбора всех присоединённых вершин, так мы выберем всю модель. Теперь выберите UV delimiter, выбрав в нижней левой панели >UVs.

Теперь будет выбрана только верхняя часть головы.

Выберите также edge loop под ней, удерживая Shift и Alt (или Option), а затем нажав ПКМ на любой из первых горизонтальных рёбер ниже.

Теперь дублируйте выбранные грани, нажав Shift + D, а затем Enter. Немного переместите дублированные грани, нажав G, Z и 0.01.

Затем отмасштабируйте всё выделенное, нажав S, 1.05 и Enter.

Так мы немного сместим шляпу с головы, чтобы избежать Z-конфликта граней.

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

  • Выберите только нижний ряд «шляпы»: нажмите A, чтобы отменить выбор всего, а затем удерживайте Alt (или Option) и нажмите ПКМ на одном из нижних рёбер.
  • Сделайте их плоскими, нажав S, Z и 0.
  • Нажмите E для экструдирования и Enter для подтверждения.
  • Нажмите S, чтобы начать масштабирование и перемещайте курсор к модели, пока рёбра не окажутся внутри головы. Поверните окно просмотра, чтобы это было проще увидеть. Нажмите Enter, чтобы подтвердить масштабирование.

Это придаст шляпе немного глубины, чтобы она хорошо выглядела со всех сторон и в ней не было дыр. Однако шляпа из человеческой кожи — это не совсем то, чего бы нам хотелось. Для изменения цвета нам нужно сначала развернуть её UV-координаты, чтобы они красиво лежали на текстуре.

Выберите всю шляпу, выбрав любую её вершину и нажав CTRL + L. В этот раз измените ограничитель на Normal, чтобы выбрать все соединённые вершины.

Для нашей шляпы мы выполним одну из простейших в мире развёрток: из вида. Нажмите numpad 1, чтобы перейти в вид спереди, затем нажмите U, чтобы открыть меню Unwrap и выберите Project From View.

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

Можно выбрать все вершины, переместив курсор мыши на текстуру и нажав A. Действия в Blender чувствительны к контексту и зависят от расположения курсора, поэтому пусть он пока находится внутри этой области текстуры.

Теперь нажмите G, чтобы переместить UV на синее пятно, подтвердите перемещение нажатием Enter, а затем отмасштабируйте выбранное, чтобы оно уместилось в пределах синей области: нажмите S и подтвердите клавишей Enter.

Если теперь посмотреть на персонажа, то можно увидеть, что его шляпа стала синей.

Можно изменить изображение текстуры, чтобы сделать любой другой цвет.

Теперь снова переместите курсор влево, рядом с моделью и нажмите Tab, чтобы вернуться в режим Weight Paint. Немного поверните кость Head, чтобы проверить, прикреплена ли шляпа.

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

Теперь мы рассмотрим создание и прикрепление отдельного объекта.

Прикрепление объектов

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

Перейдите в режим Object mode и нажмите Shift + A, чтобы открыть меню Add. Выберите Mesh > Cylinder, чтобы добавить в сцену новый цилиндр.

Предлагаемый по умолчанию цилиндр слишком велик, поэтому настроим его параметры в нижнем левом углу: изменим Radius на 0.04, а Depth на 1.2.

Благодаря этому цилиндр станет тоньше и короче.

Сделаем цилиндр гладким, нажав на кнопку Smooth в разделе Shading панели Tool Shelf слева.

Пока нашему цилиндру не назначено никакого материала. Чтобы назначить материал, откройте вкладку Material в панели Properties справа и выберите CuteMaterial из раскрывающегося списка рядом с кнопкой New.

Чтобы превратить цилиндр в коричневый посох, нам для начала потребуется выполнить UV-развёртку. Нажмите Tab, чтобы перейти в режим Edit mode, нажмите U, чтобы открыть меню Unwrap, и выберите Project From View.

Переместите курсор мыши на текстуру справа, нажмите G, чтобы переместить UV на коричневый кусок текстуры. Подтвердите перемещение клавишей Enter и уменьшите масштаб нажав S и переместив мышь так, чтобы UV поместились внутри этого куска.

Теперь посох стал коричневым. Не волнуйтесь о неправильном расположении, скоро мы им займёмся.

Откройте вкладку Constraints панели Properties. Добавьте новое ограничение (constraint), нажав на раскрывающийся список Add Object Constraint и выбрав Child Of.

Constraints используются для ограничения позиции, поворота и масштаба объекта. В нашем случае я сделал цилиндр дочерним объектом кости руки персонажа. Благодаря этому при создании анимаций объект будет постоянно прикреплён к руке. Это очень упрощает предварительный просмотр анимации и позволяет ограничить пересечения объекта с телом.

Задать ограничение очень просто. Нажмите на раскрывающийся список Target и выберите Armature. Теперь нажмите на раскрывающийся список Vertex Group и выберите Hand.R.

После этого вы заметите, что посох мгновенно прикрепился к правой руке персонажа. Однако его позиция и поворот не совсем верны. Поверните посох по оси Z на 90 градусов, нажав R, X, 90 и Enter. Теперь переместите его немного вперёд, нажав G, Y, -0.4 и Enter. Так намного лучше!

Пришла пора испытать посох. Вернитесь в режим Object mode, нажав Tab, выберите арматуру и переключитесь в режим Pose mode с помощью раскрывающегося списка в нижней части экрана. Поверните окно просмотра так, чтобы чётко видеть посох, выберите UpperArm.R и немного поверните её, нажав R и перемещая мышь. Посох будет следовать за рукой, как будто персонаж его держит.

Персонаж и его аксессуары готовы. Сохраните файл, наша работа здесь закончена.

Теперь мы займёмся экспортом модели и арматуры в Unity.

Экспорт в другие форматы

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

Unity вполне хорошо работает с форматом .blend приложения Blender, если Blender установлен в системе. Однако при передаче моделей другим людям лучше использовать форматы наподобие .FBX или .OBJ, не требующие никакого стороннего ПО. Именно по этой причине в большинстве наших туториалов используются файлы моделей в .FBX, а не исходные .blend.

Экспортировать в FBX из Blender очень просто. Для начала выберите в верхнем меню File > Export > FBX (.fbx).

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

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

Эти параметры экспорта по умолчанию подходят для Unity, но существует вероятность того, что в более сложных сценах они могут создать хаос, потому что экспортируют всё, даже источники освещения и камеры. Чтобы экспорт был чистым, внесите следующие изменения:

Снимите выделение с Camera, Lamp и Other. Это можно сделать, удерживая Shift и нажимая на опции, которые нужно отключить.

Если выбраны только такие опции, то никакие нежелательные объекты не экспортируются. Теперь поставьте флажок !EXPERIMENTAL! Apply Transform под этими опциями. Он применит позицию, поворот и масштаб всех объектов. Это означает, что неоднообразные значения будут сброшены; например, если поворот имел значения (X:23, Y:125, Z:7), то он будет сброшен на (X:0, Y:0, Z:0).

Переключитесь на вкладку Geometries, нажав на кнопку Geometries, и снимите флажок Use Modifiers Render Setting. Это позволит сохранить высокое количество полигонов внутри для рендеринга в Blender, но оставит его низким внутри Unity.

Далее откройте вкладку Armatures, поставьте флажок Only Deform Bones и снимите Add Leaf Bones. Это не позволит приложению Blender добавлять к арматуре лишние кости. Leaf bones необходимы только для совместимости с Maya. Non-deform bones, например, контролирующие кости, необходимы только в ПО моделирования для выполнения точной настройки; в таких игровых движках, как Unity, они бесполезны.

Опции Animation по умолчанию настроены правильно, так что менять их не нужно.

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

Для этого нажмите на кнопку + рядом с раскрывающимся списком Operator Presets, введите в текстовое поле название пресета и нажмите на кнопку OK. В этом туториале мы назовём его Unity FBX.

Если открыть теперь раскрывающийся список Operator Presets, то можно выбрать только что созданный пресет:

После этого параметры мгновенно будут применены. Пресеты работают для всех файлов, поэтому теперь вы можете запросто экспортировать любой файл Blender в FBX для использования в Unity.

Последний шаг — собственно сам экспорт. В этом туториале файл .blend используется в Unity для анимирования, поэтому сохраните файл FBX в любое место, выбрав папку слева и нажав кнопку Export FBX в правом верхнем углу.

Сохраните файл и закройте Blender. Наконец настало время перейти в Unity и воспользоваться нашей моделью.

Настройка гуманоида

Откройте заготовку проекта в Unity и посмотрите на окно Project.

Вот краткое описание папок:

  • Animation Controllers: используется для вставки контроллера анимации персонажа.
  • Animations: содержит простую анимацию ожидания.
  • Models: здесь мы редактировали и сохранили персонажа. Также в этой папке находится модель додзё и несколько текстур.
  • Music: простая китайская мелодия, соответствующая стилю додзё.
  • Scenes: сцена Dojo.

Разобравшись с этим, давайте приступим к использованию персонажа!

Привязка аватара

Для начала выберите модель CuteCharacter из папки Models и откройте в Inspector вкладку Rig. Откройте раскрывающееся меню Animation Type и выберите Humanoid.

Так мы сообщим, что персонаж является гуманоидом, чтобы Unity могла использовать его соответствующим образом. Теперь нажмите Apply, чтобы сохранить эти параметры.

После краткого повторного импорта вы заметите, что появилась кнопка Configure…. Нажмите на неё, чтобы приступить к связыванию костей с системой Mecanim движка Unity’.

Посмотрите на окно Scene и поверните окно так, чтобы персонаж смотрел на вас. Заметьте зелёные кости; их использует движок Unity. При нажатии на любую из них будет выбрана соответствующая кость и в Hierarchy, и в Inspector.

Использование движком Unity костей напоминает работу кукловода. Вместо непосредственного использования файлов анимации для обновления костей в каждом кадре он считывает значения и применяет их к каждому гуманоиду на основании его определения Avatar. Это обеспечивает гибкость при работе с разными формами тел. Возьмём для примера персонажа, с которым мы работали — его пропорции нереалистичны, но это не имеет значения, ведь его скелет имеет необходимые кости: позвоночник, руки, ноги и т.д. Некоторые из костей могут быть короче, чем у большинства людей, но они всё-таки присутствуют.

Теперь посмотрим на Inspector: вы видите фигуру человека с разбросанными по ней зелёными и серыми кругами. Все сплошные круги необходимы для работы системы Avatar. Если какие-то из них отсутствуют, то они становятся красными, и вы не сможете правильно анимировать персонажа.

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

Ниже представлено полное описание костей, и именно здесь нужно связывать части тела с костями. Если какой-то из кругов красный, то нужно назначить (или переназначить) кость. Созданный нами скелет полностью отвечал требованиям уже при импорте в Unity, поэтому никаких настроек не требуется. Ура!

Нажмите на кнопку Apply в нижнем правом углу и щёлкните кнопку Muscles & Settings в верхней части Inspector. Это позволит просматривать и настраивать виртуальные мышцы.

Вы увидите три раздела:

  • Muscle Group Preview
  • Per-Muscle Settings
  • Additional Settings

Раздел Per-Muscle Settings содержит подразделы, которые можно разворачивать нажатием на стрелки. В каждом из них есть отдельные превью. Эти подразделы позволяют указать минимальные и максимальные углы, чтобы избежать наложений в вашей модели.

Разверните раздел Left Arm и попробуйте перетаскивать ползунок Arm Down-Up. Заметьте, что происходит при минимальном значении:

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

Рука движется через тело персонажа. Плохо!

Чтобы исправить это, переместите ползунок превью в наименьшее значение и измените minimum angle раздела Arm Down-Up на -20.

Сделайте то же самое для Right Arm > Arm Down-Up.

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

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

Теперь настало время добавить персонаж в сцену и дать ему воспроизводимую анимацию.

Использование персонажа

Чтобы добавить персонажа, перетащите модель CuteCharacter из папки Models в Hierarchy.

Задайте для CuteCharacter поворот (X:0, Y:180, Z:0), чтобы он смотрел в камеру.

Создайте новый контроллер анимаций, нажав правой клавишей на папке RW\Animation Controllers и выбрав Create > Animation Controller.

Назовите его CharacterController и дважды нажмите на него, чтобы открыть окно Animator. Теперь перетащите анимацию Idle из папки RW\Animations на сетку Animator, чтобы сделать её анимацией по умолчанию.

Далее выберите CuteCharacter в Hierarchy и нажмите на кнопку-селектор рядом с полем Controller. Выберите в окне выбора CharacterController.

Наконец, раскройте CuteCharacter в Hierarchy и перетащите Cylinder на Hand_R, чтобы сделать его дочерним элементом. Это ограничение добавления отдельного объекта, о котором я говорил выше. Если этого не сделать, то оружие будет просто плавать вокруг персонажа.

Вот и всё! Нажмите на кнопку Play, чтобы увидеть персонажа в действии.

Теперь снова нажмите на кнопку Play, чтобы остановить сцену, и нажмите CTRL + S, чтобы сохранить изменения.

Куда двигаться дальше?

Поздравляю, вы выполнили туториал. Готовый проект можно скачать отсюда.

В этом туториале вы научились следующему:

  • Создавать арматуру (скелет) персонажа и выполнять её риггинг
  • Модифицировать персонажа с помощью аксессуаров и объектов
  • Экспортировать в FBX
  • Импортировать модели Blender
  • Создавать и настраивать гуманоидный аватар
  • Прикреплять объекты к персонажу
  • Анимировать гуманоида в Unity

Чтобы узнать больше о Blender, изучите следующие туториалы:

  • Официальные туториалы Blender.
  • Серия Blender Guru для начинающих.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *