Волосы… Это самая настоящая проблема. В одном из своих постов я как-то говорил, что сделать хорошие и качественные волосы невероятно сложно, и на тот момент для меня это была практически нереализуемая цель. Приходилось выбирать между внешним видом, и функциональностью.
Однако, с тех пор прошло много времени, и я рад сообщить, что проблема решена! Не обошлось без костылей, но я открыл для себя даже не один способ, чем очень доволен. И в процессе создания Эльзы неплохо так набил руку. К слову, для разных причёсок я использовал разные способы создания волос, и об этом чуть ниже.
Но, прежде чем перейти к теме волос, давайте вскользь коснёмся глаз, зубов и языка. С ними особых трудностей не возникло, у глаз так вообще даже топология приемлемая, единственное что – пришлось убрать треугольники, но тут автоматическая функция справилась на ура.
Это глаза, а не то, что вы подумали.
Кстати, сверху они выглядят так:
Чуть торчат в разные стороны, и в своё время для меня это стало открытием, но на самом деле с анатомической точки зрения так правильнее.
С зубами чуть больше работы, но тоже в целом ничего сложного. Кстати, ротовой аппарат в оригинальной модели был представлен единым объектом. Так тоже можно, но я не сторонник такого подхода, и поэтому разделил его на составляющие.
Глаза и зубы после моего вмешательства. Обратите внимание, что вокруг глаз я создал дополнительные сферы, которые в дальнейшем будут играть роль роговицы и отражать свет.
И ещё маленький момент насчёт зубов. После того, как я почистил топологию (осталось много треугольников, но тут это вообще не принципиально), я выделил зубы специальным инструментом «складка». Вот эти фиолетовые линии.
Это нужно для того, чтобы при сабдиве зубы чётко очерчивались и визуально отделялись от дёсен, и при этом без необходимости создавать лишнюю геометрию. Вот как на нижних зубах это видно.
Собственно, рот на этом закончен, и давайте уже поговорим про волосы.
Способов создания волос на самом деле много. Следуя поставленной цели – добиться внешнего вида «как у Диснея», я выделил для себя два. Первый способ, с помощью которого и сделана та самая классическая причёска с косой, называется hair cards. Он главным образом используется в игровой индустрии, так как для отрисовки таких волос не требуется слишком много ресурсов.
Но погодите кидаться камнями: то, что способ примитивный, вовсе не значит, что его нельзя доработать. Чем я и занялся. В отдельном файле я создал несколько волос (которые HairCurves), настроил их и отрендерил. Получились вот такие локоны.
На самом деле там фон прозрачный, здесь серый просто для наглядности.
И таких наборов я сделал несколько штук: для волос разной плотности. От прямо массивных прядей до отдельных волосков. Естественно, с альфа-каналом, нормалями и шероховатостью. Разместил это всё на одной текстуре с разрешением аж 8К. Настало время слепить из всего этого подобие настоящих волос. И, прежде чем я приступил к этому непосредственно у Эльзы, я сделал пробный файл. В нём я сначала создал меш с вот таким вот странным профилем:
Да, именно меш, а не кривую. И вот как он выглядит в целом:
Эдакое нечто непонятное. На самом деле, всё предельно ясно. Затем была сделана UV-развёртка, и начался долгий процесс рассовывания всех этих полосок по текстуре. Плотные волосы – внутри, редкие – снаружи. После того, как это было сделано, к данному мешу я применил модификатор «Кривая», и изогнул локон так, чтобы он напоминал собственно… локон. И сферу присобачил на всякий случай, типа голова.
Вот такая фиговина вышла, зато в отрендеренном виде уже вполне похоже на волосы.
Ну, вроде всё устраивает, решил я, и начал лепить причёску. Но, как оказалось, созданные волосы имели один маленький, но неприятный недостаток: слишком заметные края. Из-за этого местами они выглядели не как растущие из головы волосы, а как вставленные туда пластиковые полоски.
Примерно такой же эффект был, когда внутренние волосы пересекались с внешними и вылезали наружу. Некрасиво, нехорошо.
Что делать? Эффект пластика создавала чрезмерная плотность волосков на текстуре. Но, что если сделать локон без сплошных текстур? Вот чисто из отдельных волосинок, просто напихать их побольше. Ради интереса я сделал пару таковых. И столкнулся с новой неприятностью. Точнее, даже двумя. Во-первых, вот:
Это происходит из-за того, что количество прозрачных элементов превышает количество путей света в настройках рендера. Можно вылечить, подкрутив число отскоков, но тут вылезает вторая проблема: рендеринг и так не очень быстрый, а с увеличенным числом путей его продолжительность вообще вырастает в разы.
Короче, тоже не годится. Поэтому я решил вернуться к первоначальному варианту, только доработать его. Создал новый набор текстур для плотных волос, и на этот раз без чёткой границы: плотность плавно нарастала по направлению к центру. Затем, поэкспериментировал с профилем и формой меша. Сделал так, чтобы пряди слегка перекрывали друг друга, создавая иллюзию плотного пучка. Одновременно уменьшилось количество полигонов, стало легче и рендерить, и моделить. И после этого снова принялся за причёску.
Наглядным референсом послужила изначальная причёска, что была у игровой модели. Я брал созданный мною меш вместе с деформирующей его кривой, ставил в нужное место, и затем придавал ему форму. В целом, это выглядело так:
Кстати, на тех прядях, которые находятся спереди, я также немножко поработал с корнями, чтобы они не так грубо входили в кожу.
После очень долгой работы, которая заняла примерно недели две, я наконец получил классическую причёску, которую вы уже видели в предыдущих постах, но я покажу ещё раз, мне не сложно.
Здесь ещё старые текстуры тела. Про текстуры будет отдельный пост, а пока что переходим ко второму способу создания волос, и ко второй причёске. А именно той самой, которая появилась во время исполнения шикарной, на мой взгляд, песни Show Yourself, и благодаря которой, Эльза теперь краш не только для меня, но и вообще для многих.
Работа над этой причёской ещё ведётся, в плане оснастки её для анимации. И точнее, уже даже готова, просто хочу исправить несколько моментов.
Способ создания – те самые пресловутые Hair Curves. Да, красивые, но, как я когда-то был уверен, совершенно не предназначенные для рига и анимации. И поэтому распущенную причёску я сначала хотел сделать тем же методом, что и классическую. И даже начал. А затем случайно наткнулся на одно видео, после которого уже не было смысла продолжать. Я бы привёл ссылку на ютуб, но с недавних пор это здесь моветон, так что для желающих расширить свои познания в блендере: ищите по имени Rakenval, у него много полезных советов.
Так вот, оказывается, HairCurves прекрасно можно анимировать! Воодушевлённый, я приступил к работе над ними. Процесс этот был очень долгим, даже дольше, чем в предыдущем случае. Весь его я расписывать не буду, но вкратце суть сводится к тому, чтобы создать на поверхности эти самые волосы, затем их расчесать, придать нужную форму. Это можно делать как в режиме скульптинга, так и редактирования. Получается что-то подобное:
Естественно, я не мог обойтись без тестов. В отдельных файлах создавал как и странные конструкции вроде этого
так и более вменяемые и приближенные к итоговому результату сценки. Здесь мне опять помогла та стандартная моделька девочки из ассетов блендера.
Для каждой пряди я создавал отдельные кривые, чтобы было удобнее их потом контролировать. Та причёска, что вы видели, состоит из 13 объектов, и это только сами кривые.
После долгого и упорного труда, проб, ошибок, переделываний, причёска готова! Теперь, хоть до анимации ещё далеко, я всё же делаю все необходимые приготовления. Вот тут и приходит на помощь видео. Короче, для того, чтобы вся эта система работала, волосы-кривые нужно привязать к так называемому прокси-мешу. Отдельный респект Rakenval, что вместе с видео он выложил и файлы, где содержится всё необходимое.
Краткий алгоритм: волосы дублируем, конвертируем в меш, меш немного экструдируем, чтобы была ненулевая геометрия, затем назначаем ему физику ткани. Настроили физику – привязываем волосы к прокси через геоноды. Все, готово! Однако, если волос много, как в моём случае, то симуляция может идти слишком долго, да и ведут они себя иначе, чем в мультфильме. Там, если кто помнит, вот эти отдельные большие локоны держали форму, а не рассыпались на сотни волосков. Точнее, слегка рассыпались, но в целом держали. А значит, с целью упрощения расчётов, и сохранения формы, нужно проделать ещё один дополнительный шаг.
Нет, Эльза не облысела, просто эти штуки - специальные объекты, каждый из которых будет управлять более мелкими и частыми прокси-волосами соответствующего локона. Их не видно на рендере, они выполняют чисто вспомогательную функцию. Вот им уже и назначаем физику, и на этот раз всё идёт намного быстрее. Кстати, именно их я хочу впоследствии отредактировать, чтобы они вели себя более корректно.
Добившись приемлемого результата, с удовлетворением закрываю блендер и отправляюсь на заслуженный перерыв. Впереди не менее важный этап: текстурирование. Ему будет посвящён следующий пост, а пока что жду вашего отклика, комментариев, советов, критики. До новых встреч!