Создание анимации трансформеров в Blender — ActionAnimation
Приветствую всех кого заинтересовала данная статья, в этом блоге я сделаю обзор как происходило создание данного анимационного ролика, где главным героем выступил робот трансформер, задействованный в экшн сценах локаций города недалеко будущего.
Расскажу коротко о себе. Работаю в основном в сфере анимации для мобильных игр, основная деятельность риггинг персонажей, механизмов. Мой опыт работы около 3 лет, начинал с Blender 3D и по сей день продолжаю работать, учиться и совершенствоваться именно в этом редакторе, "горячо" порицаемом и так же яростно любимым многими людьми в нашей сфере.
Мое железо
Эту работу я в основном выполнял на ноутбуке Legion 5 Pro/ 32озу/AMD Ryzen 7 5800H/ RTX3070. По железу добавлю, что подобные работы требуют большого обьема оперативной памяти, огромное количество обьектов и доменов, эффектов требуют больших ресурсов и памяти вашего жесткого диска. Так же стоит позаботится о хорошем охлаждении, не редко бывают ошибки при рендере анимации именно из за оперативной памяти, я располагал 32гб, (рендерил на GPU cycles) но иногда через час или два рендера анимации вылезали ошибки по поводу оперативы, ее нехватки и все висло(может это блендера фишки, может я криворукий) Рендерить такие большие проекты и объемы лучше частями скажем по 100-200 кадров, ну или по кадрам(в блендере их потом можно удобно собрать в видео при помощи video editor режима) не скажу, что я эксперт в этой теме, есть способ лучше, но я основываюсь на личном опыте, буду рад советам по этой теме.
Цель проекта
Проект начинался с практики для самого себя и создания многосоставных моделей и анимаций, началом послужило создания модели StarscremA для последующей практики в анимации его трансформации из состояния робота в его машинную версию, а точней в воздушно-летательную ипостась военного истребителя, в качестве которого был выбран СУ-47. На приложенном видео вы можете увидеть версию его трансформации, что еще находится в работе. Изначально был вариант сделать трансформацию непосредственно из тех частей робота что имеются в его боевой версии, но при попытке создать из него самолет вышло много проблем в частности это недостающие детали и невозможность их красиво убрать или переделать, а так же необходимость в огромном количестве новых костей и их настройке, в такой ситуации лучше делать сперва модель самолета и потом из нее делать робота пользуясь уже своей фантазией. В первом скрине показана попытка первого варианта.
Убедившись, что такой вариант мне не подходит, я оставил его до лучших времен, когда у меня будет достаточно времени переделать всего робота и добавить в него все части самолета для более качественной и полной трансформации. В общем было решено пойти простым путем, была сделана простая и поверхностая модель самолета, его видимые части, что должны закрыть складывающегося робота как кокон при трансофрмации. На приложенном видео вы можете увидеть обе модели, в последствии оба рига были сшиты в один и риг самолета на момент его действий в режими робота был уменьшенным и спрятанным внутри. На следующем видео уже можно рассмотреть процесс его трансформации в самолет, да может выглядит и примитивно и не так круто как было бы если делать самолет и частей самого робота. По этой ссылке есть анимация из другого проекта где присутствует полная трансформация, тот проект еще все находится в работе и улучшается.
Создание рига модели и работа со свойствами костей
На этом этапе и начались первые сложности, в сети и на просторах ютуб я не нашел нужных уроков по тому как сделать подобную трансформацию, так сказать практичным и правильным методом. Путем мозгового штурма был разработан план, по которому я начал делать модель и риг к ней. Делая отдельные части его "головы" я заранее планировал как они будут вести себя в процессе анимации и сборки его в единое целое, конечно тут не полная трансформация робота из самолета, а только часть акцентированная на голове.
В процессе вышло пару десятков отдельных частей на каждую их которых была создана отдельная кость, накиданы веса, костям были приданы свойства по ограничению их движения по осям с использованием инструментов "ограничения поворота по осям", "ограничения движения по осям", это было сделано дабы в последствии облегчить процесс анимации, на приложенном видео вы можете наблюдать подробно как это выглядело и какие настройки были применены к костям.
Сделано все было довольно поверхностно, так как планировалось, что анимация будет с расстояния и не будут видны подробности и детали, а только общая частичная трансформация после приземления. Весь остальной риг робота был довольно простым и стандартным с инструментами инверсной кинематики.
Сразу скажу, что не считаю данный способ единственно верным, вполне допуская что есть и более совершенные и удобные методы, коих я к сожалению не знаю, практически весь проект я делал исключительно своим умом пробами и ошибками, в процессе осваивая для себя что то новое.
Начало создание анимации
Идея заключалось в том, чтобы сделать приземление робота с частичной трансформацией, в дыму, пламени и пыли (которые бы скрыли отдельные косяки трансформации и добавили экшена общей сцене), но практических знаний, как это реализовать, не хватало, поэтому все делалось путем проб и ошибок, по ходу придумывалось что-то дополнительно. Например раскаленный бетон при приземлении или накалившееся от температуры сопло робота.
В приложенном видео и скрине вы сможете увидеть как это выглядело изнутри, для имитации пыли и мусора, что разлетаются при приземлении, был просто выбран кусок пола и на него уже накидывались свойства expload.
Работа с частицами, симуляция дыма и огня
Все эффекты дыма и взрывов так же были созданы в blender, симуляция дыма была отдельной и очень большой проблемой, так как blender имеет еще достаточно проблем с этим и как мне уже сказали потом, тот же houdini справился бы гораздо лучше и быстрей.
В добавок скажу сразу, что если делать что-то подобное в blender, нужно довольно мощное железо, так как на полностью собранной первой сцене анимация во вьюпорте, даже с выключенными доменами, начинала страшно зависать. Поэтому я создал отдельный файл для домена дыма "при приземлении", куда я перетащил робота, все эффекторы и работал уже с ним отдельно, в дальнейшем уже просто добавив домен в финальную сцену.
К слову доменов было около 7 штук с 1 до 15 секунду. В общем объеме они занимали около 150гб памяти (поэтому стоит учитывать этот фактор при симуляции и запекании). Сперва я пытался как-то объединять эффекты и симуляции в меньшее количество доменов, к примеру пустить все ракеты по одному домену, но пришел к выводу, что гораздо удобней делать все отдельно и менять каждый, если что-то не устраивает в симуляции (повторюсь это только мое мнение, что так удобно) также и симуляции дыма при приземлении, отдельно домен на сопло, отдельно на дым и пыль, от приземления его ног на бетон.
Эффекты разрушений cell fracture, explode
Далее было решено добавить какие-то разрушения, чтобы наполнить сцену, изначально постройка не пострадала и планировалось только содрать с нее краску после взрыва. Планировалось использовать тот же метод, каким были подняты ошметки с пола при приземлении, но потом я случайно увидел в интернете отличный аддон для blender, cell fracture (подробнее о нем вы можете найти информацию на ютуб, а так же полный видео урок), позже был добавлен дым и пыль на отдельные части разрушаемой модели, вот как это выглядело у меня.
Ролик условно был разбит на три части, вторая его часть начинается с прыжка и приземления его на стену дома, в данной анимации я широко и много применял эффекты разрушения, на каждую руку и ногу робота были сделанные отдельные слои с фрагментами и кусками стены, что обваливаются в моменты его приземления (на стену), также был сделан эффект пыли, путем создания обычного дыма, добавлены искры, когда он съезжается по металлической части обшивки здания.
В последствии для общей картины было показано как он задевает кабель и искры разрыва кабеля, добавлю что такие мелкие детали довольно хорошо дополняют сцены, придают ей более живой вид, больше мелких деталей анимации в общей картине смотрятся достаточно хорошо, главное с этим не перемудрить. Пересматривая этот момент думаю, что еще можно было добавить мигание подсветки здания или как она совсем тухнет после обрыва кабеля, в общем такие вещи выглядят, как мне кажется, довольно круто и реалистично.
В приложенном видео вы можете рассмотреть как это выглядело за кадром, а так же настройки explode (кадр начала разрушения, физические свойства, сила притяжения, направления разрушений по осям).
Анимация боя роботов
В моменты создания подобной анимации, я начина жалеть, что у меня нет никаких приспособлений для захвата движения, которые бы облегчили создание подобных анимаций в разы, над этим боем я упорно работал по несколько часов и не один день, постоянно пересматривая и доделывая, переделывая и все же не угадал со скоростью, глаз "замылился" и уже пересматривая готовую работу появились мысли, что можно было и света добавить и дым сделать более динамичным от их движений, скорость исправить, искры сделать чуть иначе.
Также в создании подобной анимации можно воспользоваться записанным видео, снять свои движения с нужного ракурса и залить это видео в программу, а далее как с референсом накладывать анимацию. Создание искр при ударе не вышло идеальным, blender не желает хорошо отображать отскоки множества частиц от поверхности и требует на это много ресурсов вашего железа, поэтому я выбрал только основные части роботов, перенес их на другой слой и уже в таком режиме запекал частицы отдельным слоем.
Скажу еще про работу с камерой, которая могла быть лучше и улучшить общее впечатление от ролика, если бы я уделил этому достаточно времени, на критику с работой камеры и переходами могу только ответить "я художник, я так вижу" и конечно же буду стараться совершенствоваться в этом деле, как и во всем остальном.
Заключение
В заключении хотелось бы отметить, что есть моменты которые могли быть улучшены, как к примеру можно сделать ролик более динамичным, увеличив скорость, но возможно тут ошибка была в том, что я старался передать вес роботов и увлекся. Поработать с камерой, сделать динамику движения дыма на движения роботов (что требует много ресурсов вашего железа, во всяком случае в blender).
В такие моменты хорошо бы иметь людей с опытом, которым можно показать свой проект на стадии разработки, которые бы подсказали вам мнение со стороны с не "замыленным" взглядом, тут важен момент именно дельного совета с путем решения проблем или вопросов возникающий по ходу работы и очень хорошо если такие люди у вас будут. Спасибо, что прочли эту статью. Надеюсь кто-то, возможно, подчерпнули для себя какую-то новую или полезную информацию, также благодарю всех за ваши советы, критику и отзывы.