Волшебная кнопка или история о том, как я создал плагин для Zbrush
Привет, меня зовут Влад. Мне очень нравится 3D графика в современных играх и особенно персонажи. В настоящее время являюсь начинающим 3D художником по персонажам. Кроме этого, я главный и единственный разработчик плагина Smart Modeling для программы Zbrush. И, как и большинство, я нигде не учился этому, не проходил никакие платные курсы, я лишь смотрел различные стримы на YouTube, общался с другими 3d'шниками, читал различные статьи, вот собственно и все обучение.
С чего все началось?
Разработкой плагина я занимаюсь уже около года и за это время он невероятно вырос и был значительно улучшен. Не хочу хвастаться, но мне действительно удалось создать отличный продукт, который экономит время 3D художников, что, в свою очередь, позволяет им создавать больше моделей без какого-либо труда и конечно же зарабатывать больше. Звучит как рекламный ролик, но это объективно так.
Почему именно Zbrush?
Как и многие начинающие 3D артисты я перепробовал огромное количество программ, прежде чем определился с направлением в 3D и соответственно софтом, который будет удобен для меня. И слово "удобен", пожалуй, здесь ключевое. Мы часто слышим, что Zbrush это стандарт индустрии. И несмотря на то, что на сегодняшний день у этой программы множество конкурентов, она все равно остается лучшей для скульптинга. Но является ли она удобной. Ответ однозначный - нет!
Управление не такое же как в аналогичных программах, и даже в версиях 2022 года его по - прежнему невозможно изменить. Возможно, это фишка программы. А интерфейс... Вы видели что-нибудь ужаснее большого количества менюшек, огромного количества подменюшек и просто гигантского количества кнопок и ползунков? Функционал невероятно обширный, но интерфейс интуитивно совершенно непонятен для новичков. Вспоминается кабина пилота любого современного самолёта или космического корабля.
А теперь самое интересное, включаем видеоролики различных трюков и фишек в Zbrush на YouTube, и получаем длинную цепочку действий, что-то вроде: "откройте это меню, а в нем вот это подменю, нажмите здесь кнопку, затем в другом подменю выставляем вот такие настройки, затем в третьем двигаем вот эти и вот эти полнузки" и так далее, и такое объяснение алгоритма действий и настроек обычно длится около 5-10 минут, а иногда и дольше, и это просто для того, чтобы получить какой-нибудь элементарный результат. Знакомо?
Создавая персонажей, я заметил одну особенность, алгоритм моих действий часто повторялся, при этом у меня уходило очень много времени на "путешествие" по менюшкам Zbrush и мне захотелось как-то автоматизировать этот процесс. Я узнал, что есть такой язык программирования или лучше наверное сказать скриптования - ZScript, на логике которого по сути и создан сам Zbrush.
Я начал изучать его, хотя программистом я не являюсь. Вначале своего пути я рассуждал так, мне нужно как-то создать пару кнопок, в которые вложить скрипт действий и настроек. Изучение Zscript не было простым, ну во-первых потому, что в интернете не было уроков на русском языке, во-вторых мне не у кого было спросить, когда у меня что-то не получалось, а, учитывая, что я не программист, такое случалось постоянно.
Zscript довольно капризный язык, пропустив всего одну запятую или скобку, Zbrush выдаст ошибку, и как правило, без объяснения причин или с объяснением, которое понимают видимо исключительно сами разработчики. А когда у вас около 5 - 7 тысяч строк кода вместе с комментариями конечно, то найти ошибку довольно проблематично. Плюс внесение любых изменений в код требует перезапуска Zbrush. Во время тестов и изменения кода, я перезапускал его сотни и сотни раз, это был тот ещё кошмар.
Итак, в самом начале я создал две свои умные, как я их называю, кнопки, вложил в них скрипты действий и настроек, и был горд собой. Тогда это были просто безликие кнопки без каких-либо иконок, и находились они в нижней части экрана. В процессе создания персонажей мы постоянно самообучаемся, ежедневно просматривая видеоуроки и стримы в YouTube. И мне пришла идея, раз я уже умею создавать такие вот умные кнопки, так почему бы не записывать скрипты действий всех этих трюков и фишек. В общем, я встал, так сказать, на путь программирования, ну или на небольшую его дорожку.
Мне нравится слово пресеты. В музыке пресеты треков - это шаблоны, которые могут быть использованы для вновь создаваемых треков или существующих треков такого же типа. Я захотел создавать пресеты в 3D, которые будут экономить время и нервы любого пользователя. И со временем у меня накопилось достаточно большое количество таких пресетов.
Параллельно я покупал различные плагины для Zbrush, изучал что они делают и главное, как они это делают. Я запоминал алгоритм их действий и пытался воспроизвести, при этом я находил их недостатки, устранял их, улучшал их, делал по своему, и добавлял самые лучшие и интересные функции в свой плагин.
Итак, я выпустил первую версию - Smart Modeling v.1. Мне нужно было помимо функциональности кнопок, как-то выделить кнопки плагина на фоне других кнопок. Не знаю, возможно мне в тот момент захотелось съесть апельсинов, но я решил, что оранжевый цвет и крупные кнопки точно сделают своё дело. Забавно то, что они сделали. Первая версия прекрасно продавалась на различных площадках, но что я только не слышал в личных сообщениях на счёт огромных оранжевых кнопок. Самое смешное, что когда я выпустил вторую версию и полностью изменил дизайн плагина, первую версию продолжали покупать, моё предположение, это все оранжевые кнопки.
Что умеет делать плагин в его самой первой версии?
Это практически весь змоделлер:
- я создал пресеты для кнопок для удобства,
- умная авторетопология,
- можно контролировать авторетопологию просто рисуя маской на поверхности модели,
- пресеты для дайнамеша,
- умный дивайд, сглаживает, но сохраняет форму,
- умная детализация позволяет усилить детали всего одной кнопкой,
- пресеты для симуляции одежды,
- создание vdm кистей 1 кнопкой,
- умное скрытие сабтулов, достаточно поставить кнопку на горячую клавишу и при наведении курсора на сабтул нажимать, он скрывается,
- быстрая развёртка всего 1 кнопкой для нанесения шума или текстуры на юви,
- ну и конечно умный экстракт, который позволяет делать очень хорошую сетку для моделирования,
- умный динамический булеан, позволяет делать идеальные вырезы.
Над чем работал дальше?
После успеха первой версии, я поспешил улучшить плагин, переработал дизайн, хоть это конечно громко сказано, Zbrush сильно ограничивает в этом отношении разработчиков количеством допустимых пикселей, но главное дополнил многие функции и после первой версии я стал получать сообщения о том, что плагин классный, но очень сильно не хватает туториала. У меня не самый лучший английский, поэтому я решил использовать Google переводчик, в который напечатал текст и для озвучки использовал женский голос бота из Telegram, который был похож на настоящий, хотя моментами проскакивала роботизированная составляющая. Затем я записал видеоролик и наложил озвучку. В целом, получился более или менее понятный туториал.
Разработка на этом не прекращалась. У меня уже был по сути полноценный плагин. Нужно было лишь систематизировать все ещё больше и многие функции дополнить. Я выпустил 3 версию, быстро замоделил логотип и пользуюсь им до сих пор. Людям он уже как-то запомнился и я решил его больше не менять. Третья версия была просто ударной, потому что аналогов моему плагину не было в мире. Он так много всего умел и все эти функции были в одном плагине. Я чистил код снова и снова, тестировал умные кнопки сотни раз в различных проектах и они показывали себя превосходно.
Тем временем я все продолжал улучшать плагин, дополнять его и осознал, что нужен новый туториал. В этот раз я пошёл по тому же пути, но голос взял уже мужской, он не звучал как робот, поэтому выбор пал на него. Так вышла 4 версия.
По сути, 4 версия уже была близка к завершению моих идей, я пересматривал десятки разных плагинов, брал у них все самое лучшее, реализовывал эти функции в своём плагине.
Наткнувшись на один плагин, связанный с созданием low poly волос, тех что делаются плашками, я решил добавить и эту функцию, но на отдельную версию это не тянуло, поэтому я выпустил версию 4+. Выпустил новый ролик с описанием только этой добавленной функции.
Всего я создал 5 версий плагина, последнюю, 5 версию плагина выпустил совсем недавно. Она получилась действительно потрясающая, я создал мини Zbrush внутри самого Zbrush.
Ни одна из версий так сильно меня не радовала, как последняя. Мне удалось охватить практически все: скульптинг, полигональное моделирование, а также множество различных фишек Zbrush, таких как авторетопология, создание кривых где угодно и как угодно, пресеты для Zmodeller, скульптинг, полностью основанный на морфах, различные кисточки с морфами, работа с созданием игровых волос, пресеты для симуляции одежды, и работа со всеми сабтулами одновременно и множество других функций.
Больше не нужно тратить время на запоминание сотен алгоритмов действий и настроек, плагин делает всю техническую работу за художника, оставляя время на творчество. Нажал умную кнопку, получил результат после автоматически выполненных десятков действий и настроек и продолжаешь творить дальше.
Smart Modeling - это плагин, который помимо уникальных функций, придуманных лично мной, включает в себя также лучшие функции других плагинов, которые были изменены и доработаны. Конечно, я могу часами рассказывать о его достоинствах, но лучше один раз увидеть и попробовать, чем сто раз услышать. Я вложил душу в этот плагин и всегда очень рад любой поддержке.