в чем делать 3d модели для unity
Как начать разбираться в 3D-моделировании и Unity 3D
Разбираемся, в каких программах создаются трехмерные модели для игр и где научиться пользоваться ими и Unity 3D, чтобы найти работу в геймдеве.
Unity 3D – это целая экосистема, для работы с которой нужно уметь программировать, понимать, как создаются игровые модели и анимация. Так же, как в работе с кодом, при создании графики часто используются различные среды разработки, которые должны быть знакомы каждому разработчику игр.
Какие программы для 3D-моделирования существуют
Unity 3D имеет собственный редактор трехмерной графики и часто его возможностей достаточно, чтобы сделать полноценную игровую модель.
Однако в индустрии разработки игр программист и создатель моделей часто разные люди, которые могут работать в разных средах. Если вам интересна именно 3D-графика, стоит ознакомиться с другими известными решениями для моделирования.
Blender
Autodesk
Программы для моделирования Autodesk 3ds Max и Autodesk Maya более известны, чем Blender и значительно чаще используются в коммерческом моделировании.
Назначение этих программ общее, но используются они в разных сферах. Моделирование в 3ds Max применяется для создания игровых моделей, а Maya чаще применяется как редактор трехмерной графики в киноиндустрии.
Для бесплатного использования 3ds Max предусмотрена специальная студенческая версия программы, в которой можно научиться работать с 3D-графикой. Бесплатную копию нельзя использовать с целью получения прибыли (например, продавать созданные модели).
Какие специалисты востребованы
Игровая индустрия, как и другие IT-рынки, испытывает нехватку кадров. В первую очередь востребованы специалисты с большим опытом, но многие компании готовы брать на работу начинающих разработчиков, иногда даже без опыта работы.
Конечно, если при поиске работы у вас будет что показать потенциальному работодателю, вы окажетесь в выигрыше по сравнению с вашими конкурентами без портфолио:
Статистика по данным сайта hh.ru за 2017г. по запросу «Разработчик игр»
Где учить
В сети можно найти материалы для самостоятельного изучения любого редактора трехмерной графики, в том числе и Unity 3D.
Учиться самостоятельно – тяжело, и если вы не готовы ответственно отнестись к составлению учебного плана, поиску материалов и систематическим занятиям, есть смысл заручиться поддержкой опытного наставника.
Поступайте в онлайн-университет GeekBrains. Там появился факультет разработки игр с факультативами от Owlcat Games и IT Territory.
Во время учебы вы и другие студенты будете делать собственные и командные проекты, которые дадут вам достаточно опыта, чтобы быть замеченным работодателем.
Все занятия проводят опытные программисты и дизайнеры. Они всегда будут готовы помочь выйти из тупика и разобраться со сложной задачей.
Выпускники факультета разработки игр умеют:
Если вы планируете поступить на факультет разработки игр, вам лучше поспешить – занятия начнутся уже 2 ноября.
Лучшие движки для создания игр. 4 условно-бесплатных варианта — от Unity 3D до UE4
Рассказываем о самых популярных технологиях, на основе которых создаётся большинство AAA-игр.
Это вторая часть нашего цикла о лучших движках для разработки игр. Первую часть, посвящённую бесплатным технологиям, уже можно прочитать в Skillbox Media. А вскоре на сайте появится и третий, заключительный материал, где речь пойдёт о полностью платных движках.
Сейчас же самое время поговорить об условно-бесплатных вариантах. Такие движки доступны для скачивания всем желающим, но в случае коммерческого успеха игры, созданной с помощью этих технологий, придётся делиться прибылью.
Такая модель распространения характерна для Unity 3D, Unreal Engine 4, CryEngine и UNIGINE — все эти движки можно назвать крайне важными для индустрии технологиями. Дело здесь не только в громких названиях, известных каждому разработчику, но и в том, что с помощью этих инструментов можно выпустить современный и качественный продукт. Причём характеристики этих движков существенно отличаются, и выбор в пользу той или иной технологии напрямую зависит от того, какую именно игру вы хотите создать.
Считает игры произведением искусства и старается донести эту идею до широких масс. В свободное время стримит, рисует и часами зависает в фоторежимах.
Unity 3D
Unity 3D уже давно ассоциируется с инди-играми, так как большинство независимых разработчиков выбирают именно этот движок в качестве основы для будущего проекта. Первая версия клиента вышла в 2005 году. Предполагалось, что Unity 3D станет основой будущих игр на Mac OS X, но это не помешало авторам выпустить обновление под Windows и в дальнейшем расширять область применения движка.
На сегодняшний день Unity 3D поддерживает более 20 платформ — от ПК и смартфонов до Windows Mixed Reality и Android TV. Также движок широко применяется при разработке неигровых проектов в сферах архитектуры, машиностроения, производства и анимации.
Ознакомиться с возможностями Unity 3D и скачать клиент движка может каждый. При этом с разработчика не будут требовать отчислений при создании коммерческих проектов — до поры. Если размер заработка или объём привлечённых инвестиций превысит 100 тысяч долларов, понадобится лицензия. Её можно получить, оформив подписку на один из трёх подходящих вариантов:
Подробные условия всех тарифных планов указаны на официальном сайте движка.
Игры на движке: Fall Guys, Cuphead, Escape from Tarkov, Hollow Knight, Hearthstone, Pathfinder: Kingmaker.
«Я работаю на Unity около 9 лет. Свою первую демосцену собирал ещё на версии 2.5. С тех пор многое изменилось, и движок оброс большим количеством дополнительных функций, удобных фишек и технических решений. Не могу сказать, что все изменения мне по душе: часто с новыми фичами появляются новые баги и проблемы.
Тем не менее движок идет в ногу со временем. Долгое время продукты, созданные на Unity, ощутимо уступали по визуалу схожим продуктам на Unreal Engine. Разница заметна и сейчас, но уже с версии Unity 5 и далее качество стало намного выше. Движок обзавёлся новой системой освещения, материалов, отражений и так далее. Unity привлекает меня низким порогом вхождения в образовательном плане и высоким уровнем гибкости — при наличии опыта работы с кодом можно значительно расширить функциональность и инструментарий. Зачастую, не имея готовых решений, можно выполнить любые поставленные задачи разными способами. В процессе разработки часто приходится глубоко „залезать“ в движок, поэтому во время тестирования легко отслеживать возникающие проблемы и оперативно их решать».
«Когда 8 лет назад я перешёл с Flash на Unity, то удивился разнообразию инструментария движка. Но в то же время он меня напугал: это же всё придётся учить! К счастью, не пришлось. Для выполнения большей части задач хватает ограниченного функционала. При этом всё остальное может оставаться «блэк-боксом» и абсолютно не мешать в работе.
Благодаря низкому порогу вхождения и мощным инструментам с движком могут работать не только программисты. Нарративщики создают кат-сцены, используя Timeline + Cinemachine, UI-дизайнеры работают, используя адаптивный пользовательский интерфейс в Canvas. А благодаря кастомизации движка геймдизайнеры фактически могут сделать конструктор игр внутри Unity. Когда художники, дизайнеры и аниматоры сами справляются со своими задачами в движке и не просят разработчиков о внесении каждой правки, скорость разработки и качество продукта заметно возрастают. Также рекомендую заглянуть в AssetStore — там есть тысячи готовых решений. Кто знает, возможно, среди них найдётся именно та фича, которая нужна вам.
Конечно, по качеству картинки Unity сильно проигрывает UE4. Во многих нюансах его UX и инструментарий гораздо хуже, а разработчики движка менее активно поддерживают своё комьюнити, чем Epic Games — своё.
Если бы я делал десктопную игру с фотореалистичной графикой, я бы точно выбрал другой движок. Но при этом в Unity 3D постепенно добавляются новые технологии, такие как Motion Matching (плавный программный бленд анимаций), интеграция с Houdini (процедурный моделлинг) и поддержка DOTS (управление десятками и сотнями тысяч интерактивных объектов в кадре)».
Unreal Engine 4
Этот движок создала Epic Games — одна из крупнейших американских компаний по разработке игр и программного обеспечения. Unreal Engine 4 — преемник бесплатного Unreal Development Kit (UDK), вышедшего в конце нулевых. Актуальная версия известна достижениями в области фотореалистичной графики, динамического освещения, системы разрушения и частиц для создания спецэффектов.
Технология широко применяется в неигровых областях — в промышленности, архитектуре, управлении транспортом, телевидении и киноиндустрии. Например, режиссёр Джон Фавро использовал UE4 для смены виртуальных декораций в реальном времени в сериале «Мандалорец» и ремейке фильма «Король Лев».
Движок распространяется бесплатно. Но если выручка проекта достигает миллиона долларов и превосходит этот показатель, разработчик выплачивает 5% отчислений компании Epic Games. Учитывая, что таких продаж может достичь не каждая игра, вариант вполне подходит тем, кто только начинает свой путь в разработке.
Существуют варианты так называемых кастомных лицензий (премиальная поддержка, обучение, индивидуальные условия и/или безвозмездное распространение готовых коммерческих продуктов). Но получить их может далеко не каждый — условия в индивидуальном порядке обговариваются с представителями Epic Games.
У Unreal Engine 5, релиз которого намечен на 2021 год, будет та же модель распространения. Кроме того, Epic Games обещает, что при необходимости разработчики смогут без проблем перенести свои проекты на новую версию движка.
Игры на движке: Fortnite (350 млн пользователей по данным на 2020 год), Hellblade: Senua’s Sacrifice, Sea of Thieves, Borderlands 3, Final Fantasy VII Remake, Hello Neighbor, Layers of Fear 2 и ещё очень много всего.
«У меня был довольно большой опыт работы на Unity. Но затем я перешёл на Unreal Engine 4 и не пожалел. Если говорить о технических особенностях, UE4 на первый взгляд действительно кажется сложнее. У него выше порог вхождения из-за наличия отдельных подсистем, которых нет в Unity (или не было на тот момент, когда я на нём работал). Но как только ты осваиваешь нюансы движка, понимаешь, что во многих вещах процесс разработки игры ускоряется.
Однако это не единственное достоинство UE4: Epic Games оказывает неоценимую помощь разработчикам игр на Unreal Engine, особенно в СНГ-сегменте. Я сбился со счёта, сколько раз люди из команды Epic Games помогали мне с техническими и маркетинговыми нюансами. Также не стоит забывать о возможности подачи заявки на Epic Megagrants: получить грант вполне реально, я убедился в этом сам, как и некоторые мои знакомые из индустрии».
Александр Хорошавин,
инди-разработчик (Selfloss)
«С Unreal Engine 4 было тяжелее работать до 2017 года: не хватало специализированной и общей документации, гайдов, а также успешного опыта применения движка другими разработчиками. Периодически возникали проблемы из-за того, что какие-то весьма обыденные по нынешним меркам вещи приходилось изучать и дорабатывать самостоятельно. В те времена представители AAA-студий ещё не были готовы делиться опытом. Конечно, проводились тематические лекции, но они затрагивали только общие вопросы. С образованием тоже было не всё так просто: либо это курсы basic-уровня, либо что-то очень специфическое, а промежуточного варианта попросту не существовало. В 2017 году Epic Games проделала огромную работу, чтобы изменить всё в лучшую сторону. Маркетплейс стал намного объёмнее, появилось больше плейсхолдеров, начались глобальные раздачи ассетов из Paragon и Infinity Blade. Таким образом, технологию стало проще освоить на базе опыта самой Epic Games. Студии стали чаще обращать внимание на специалистов уровня Junior и Middle. Рынок сильно оживился, и на движке появилось больше игр.
Сейчас в сообществе UE4 существует своего рода экосистема, в которой можно достаточно быстро получить ответы на свои вопросы. Проблема в том, что нюансы, с которыми сталкиваются разработчики, сами по себе уникальны, по ним сложно найти какую-то документацию. Это встречается в работе с любым движком. Если ошибка распространённая (например, проблемы с фулскрином на 4.23), сообщество знает о ней и эти проблемы обсуждаются. Но вряд ли можно найти решение по специфическим вопросам сочетаемости конкретных плагинов и ассетов друг с другом. Ответы на них разработчик должен найти сам. Как правило, программисты решают такие задачи достаточно быстро».
CryEngine
Движок, созданный немецкой студией Crytek, автором Far Cry и Crysis. С 2004 года CryEngine обзавёлся несколькими итерациями, и его технические возможности улучшаются до сих пор. Чтобы в этом убедиться, достаточно сравнить первую часть Far Cry и современный MMO-шутер Hunt: Showdown. После выхода Crysis фотореалистичные шутеры от первого лица стали визитной карточкой технологии, однако движок подходит и для разработки игр в других жанрах, а также для неигровых проектов.
Разработчики CryEngine практикуют подход What You See Is What You Get — «что видишь, то и получишь». Когда разработчик создаёт в редакторе CryEngine Sandbox сцену и переносит её в игру, она выглядит и работает так, как задумано, и ей не требуются дополнительные правки. В 2016 году Crytek открыла доступ к исходному коду движка, чем воспользовались многие студии. Например, Warhorse Studios сильно модифицировала CryEngine для разработки ролевой игры Kingdom Come: Deliverance. Известно, что все актуальные части серии Far Cry, права на которую сейчас принадлежат Ubisoft, сделаны на движке Dunia Engine, а в его основе находится как раз CryEngine.
Клиент CryEngine можно скачать бесплатно, однако после релиза коммерческого продукта разработчик обязан выплачивать 5% роялти компании Crytek. При этом первые 5 тысяч долларов, собранные с продаж, отчислениями не облагаются. Ещё есть несколько исключений, при которых платить вообще ничего не нужно, — скажем, если разработчик получает призовые деньги от сторонних лиц, пожертвования (лично человеку, а не для разработки игры) и доход с маркетплейса.
Игры на движке: Kingdom Come: Deliverance, Deceit, Evolve, Prey, Hunt: Showdown.
«С CryEngine тяжело работать, если нужно создать динамичный шутер. Его физический движок не подходит для такой концепции. Также не стоит делать на его основе сложные RPG. Инструменты разработки недостаточно гибкие, и вам потребуется много ресурсов, чтобы построить все основные системы с нуля. На данный момент сообщество CryEngine совсем небольшое, но очень отзывчивое. Большинство специалистов хорошо осведомлены о различных аспектах разработки, так как сами знакомы с движком ещё со времён моддинга Crysis. Кроме того, разработчики технологии часто делятся своими знаниями в Discord и тематических статьях ».
Дмитрий Шевченко,
тимлид студии TALLBOYS (Pandemic Express).
«Ключевая механика Deceit — смена дня и ночи в игре. С наступлением тьмы роли игроков меняются: „плохие парни“ становятся ещё ужаснее, что может напугать и ввести в замешательство „хороших“. CryEngine отлично подчёркивает эту атмосферу с помощью освещения и теней. Динамика движка хорошо сочетается с итеративной разработкой, что помогает при нелинейных пайплайнах. В этом плане CryEngine значительно выделяется на фоне конкурентов. Арт-отдел тесно сотрудничает с отделом геймдизайна на всех этапах проекта, чтобы настроить освещение и разместить объекты по ходу разработки. Это преимущество помогает тестировать различные идеи и стирать границы между концепцией, дизайном и фазами препродакшна.
CryEngine отлично работает с рендерингом в реальном времени, позволяя изменять огромное количество визуальных эффектов на лету. Параллельная работа наших технических специалистов со SpatialOS (технология симуляции действий) даёт нам понимание того, что наиболее релевантно для игрока. Всё это помогает добиться в игре детализированности окружения без лишних нагрузок на «железо»».
Сэм Хиллс (Sam Hills),
бывший комьюнити-менеджер Automaton Games (Deceit).
UNIGINE
Движок одноимённой российской IT-компании существует на рынке уже более 15 лет. Используется преимущественно для создания неигровых проектов, многие из них находятся под NDA. К ним относятся визуализации, симуляторы и VR-приложения, которые задействованы в космонавтике, авиации, судоходстве, добыче нефти, газа и полезных ископаемых, оборонном производстве, архитектуре, ГИС и городском планировании.
Также технология известна своими бенчмарками для тестирования производительности видеокарт. Последний из них — Superposition 2017 — поддерживает VR. Игровые проекты на движке существуют, но их гораздо меньше. В 2020 году у UNIGINE появилась бесплатная версия под названием UNIGINE Community SDK. Её можно использовать для разработки в сфере образования, для разработки в некоммерческих проектах; в коммерческих — только с прибылью или финансированием менее 100 тысяч долларов за последние 12 месяцев. Существует также ряд сфер, где использование Community SDK невозможно: оборонная промышленность, электроэнергетика, азартные игры, добыча нефти, газа и полезных ископаемых.
Для остальных вариантов существуют платные лицензии:
С подробным описанием каждой лицензии можно ознакомиться на сайте движка.
Игры на движке: Sumoman, RF-X, Oil Rush, Cradle, Dual Universe.
«UNIGINE подойдёт прежде всего для разработки профессиональных симуляторов: авиационных, космических, наземных, водных. Но помимо неигровых проектов на нём делают 3D-игры разных жанров, ориентированные в первую очередь на высокое качество картинки».
Создание персонажей в Blender и Unity
Визуально персонажи 3D-игр имитируются с помощью использования моделей, текстур и анимаций.
В прошлом для применения одинаковых анимаций персонажи должны были иметь полностью идентичные скелеты. Это ограничивало разнообразие персонажей, потому что их рост и пропорции тоже должны были быть одинаковыми. Например, в старых играх FIFA все игроки имели одинаковые размеры, потому что создание отдельного скелета и набора анимаций превратилось бы в настоящий кошмар.
К счастью для разработчиков игр, сегодня большинство движков имеет систему, позволяющую многократно использовать анимации при условии совместимости скелетной иерархии. Такая система позволяет использовать одинаковые анимации для персонажей всех форм и размеров. В Unity эта система называется Mecanim. Она обеспечивает удобную настройку анимаций, смешивание между ними и перенос гуманоидных анимаций между моделями.
Возможность многократного применения анимаций позволяет использовать анимации из Asset store и с таких вебсайтов, как mixamo.com, для ваших собственных персонажей. Это экономит кучу времени!
В этом туториале вы узнаете, как подготовить гуманоидную модель в Blender и как перенести её в Unity. В частности, вы научитесь следующему:
Приступаем к работе
Для прохождения этого туториала вам необходимо следующее:
Откройте папку заготовки (starter) проекта и перейдите в папку Assets\RW\Models. Откройте в Blender файл CuteCharacter.blend.
В файле содержатся следующие данные:
Заметьте, что она отзеркалена по оси X, это сильно упростит весь процесс работы. Справа показано простое изображение загруженной текстуры:
Первый шаг к анимированию этого персонажа — выполнение риггинга.
Создаём риг персонажа
Риггинг — это создание арматуры, скелета модели. У арматуры есть несколько соединённых костей, к которым можно прикрепить вершины, чтобы они двигались при перемещении кости.
Переместите мышь в окно 3D View, чтобы переключить на него фокус. Затем добавьте новую арматуру — удерживайте Shift и нажмите A, чтобы открыть Add Menu. Выберите Armature > Single Bone.
Мы создали арматуру и её самую первую кость, которую также называют корневой костью (root bone). Не снимая выделения с арматуры, найдите в разделе Display вкладки Properties флажок X-Ray и поставьте его.
Теперь арматура будет видна сквозь персонажа. Это упростит создание скелета.
Прежде чем приступать к созданию полной структуры, важно понять, как её нужно настроить для совместимости с Humanoid Avatar движка Unity.
Из-за особенностей привязки костей к собственной системе Unity некоторые ключевые кости являются обязательными.
Unity ожидает наличия минимум 15 костей, а именно:
Убедитесь, что арматура всё ещё выделена и нажмите на 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-конфликта граней.
Шляпа пока похожа на висящий в воздухе кусок тела, поэтому чтобы прикрепить её к телу, сделаем следующее:
Это придаст шляпе немного глубины, чтобы она хорошо выглядела со всех сторон и в ней не было дыр. Однако шляпа из человеческой кожи — это не совсем то, чего бы нам хотелось. Для изменения цвета нам нужно сначала развернуть её 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.
Экспортировать в 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.
Сохраните файл и закройте Blender. Наконец настало время перейти в Unity и воспользоваться нашей моделью.
Настройка гуманоида
Откройте заготовку проекта в Unity и посмотрите на окно Project.
Вот краткое описание папок:
Разобравшись с этим, давайте приступим к использованию персонажа!
Привязка аватара
Для начала выберите модель 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. Это позволит просматривать и настраивать виртуальные мышцы.
Вы увидите три раздела:
Раздел 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.
Вот и всё! Нажмите на кнопку Play, чтобы увидеть персонажа в действии.
Теперь снова нажмите на кнопку Play, чтобы остановить сцену, и нажмите CTRL + S, чтобы сохранить изменения.
Куда двигаться дальше?
Поздравляю, вы выполнили туториал. Готовый проект можно скачать отсюда.
В этом туториале вы научились следующему:
Чтобы узнать больше о Blender, изучите следующие туториалы: