Making Of: Паровозик из детства
Расскажу о том, как создавалась моя первая самостоятельная работа в 3d и как затея, изначально обречённая, закончилась трагедией художника.
Софт: Cinema 4D.
Рендер: V-Ray.
Железо: i5 2.90GHz, RAM 32ГБ, RTX 3060 Ti
Строго говоря, самостоятельной её можно назвать с большой натяжкой. Как всякий начинающий, я использовал максимум готовых вещей: моделей, материалов и текстур. Но, обо всём по порядку.
Внимание: публикация адресована начинающим, которым она поможет избежать четырёх глобальных ошибок.
Замысел
По комнате должен ездить паровозик, максимально игрушечный, но при этом железный — такой, чтобы ощущалось, какой он тяжёлый. С разных ракурсов в кадр должны попадать разные вещи, имеющие значение для моих близких людей: фото, игрушки, книги, посуда и даже вид из окна. В общем, своего рода семейный музей в миниатюре, визуализация связи трёх поколений.
Принцип работы
Минимум времени, максимум боли — как говорил один мастер единоборств. Над детализацией не парюсь, использую дефолтные библиотеки где возможно, важно достичь результата и успеть к особой дате: дню рождения моей младшей дочери.
Геометрия
К началу работы у меня уже был опыт повторения десятков уроков с YouTube и даже одна завершённая визуализация собственного замысла — где я опробовал множество разного света и наигрался с материалами. Вот одна из версий.
Поэтому, без особых проблем, я смоделировал паровозик за пару недель работы по вечерам (часов за 30, примерно). Мои любимые булевы операции, вычитание и сложение, в общем — ничего особенного. Кроме того, что по итогу вьюпорт начал тормозить так, что дальнейшая работа потеряла смысл. В принципе, я был готов к проблемам, но не ожидал, что они появятся уже на этом этапе.
Разумеется, сразу почитал про ретопологию и приступил к перерисовыванию сетки. Первый вечер рисования показал, что паровозик поедет лет через двадцать. Remesh был невозможен, модель превращалась в тыкву. Оставалось только одно: Connect+Delete. В итоге у меня получились объекты, на сетку которых смотреть было вредно для психики. Кроме того, у некоторых из них было по два десятка материалов.
- Первая ошибка: всё, что можно нарисовать, надо рисовать, особенно если это сравнительно простые модели. Boolean — враг сложных сцен. В моём случае, требовалась ещё и детализация в тех узлах\объектах, которые по замыслу должны были использоваться в крупных планах. Например, ступичные подшипники: в них реальные шарики, по 18 штук в каждом. И, кстати, Cloner не использовал вообще, потому что на тот момент не вполне понимал, как им управлять.
Анимация
Через пару месяцев паровозик встал на рельсы и поехал. Рельсы я нарисовал по промышленному профилю, шпалы решил делать деревянные, но позже. Сейчас меня заняла математическая задачка: как анимировать межколёсные тяги (сцепные дышла).
Ещё на первых анимациях я заметил, что они некорректно проворачиваются, но особо не вникал. А когда вник, работа остановилась на несколько месяцев.
https://render.ru/xen/threads/lomaetsja-prostaja-a...
Я что-то ещё делал по остаточному принципу, но желания двигаться дальше не было. Когда прочёл всё, что можно, включая блог индийского аниматора на Reddit; когда посмотрел все видео с тягами и колёсами; когда надоел всем нормальным людям в интернете, которые знают тебя как «того психа, который полгода делает паровозик» — когда вот это вот всё, а результата нет... тогда опускаются руки. В какой-то момент решил просто убрать дышла. Но, тут выручил render.ru, точнее один человек из комьюнити. Он что-то сказал, я что-то сделал и случилось чудо. Тяги заработали, всё закрутилось как надо.
В знак благодарности, на корпусе появилась табличка с именем специалиста. Андрей, если ты это читаешь — ещё раз спасибо!
- Вторая ошибка: если в проекте предусмотрена сложная анимация (сложная для вашего уровня), разбирайтесь с ней сразу. Делайте простейшую геометрию сцены и добивайтесь правильного движения. Нет смысла заморачиваться с детализацией объекта, если в дальнейшем придётся исключить его крупный план или вообще сам объект.
После решения задачи с тягами, мой локомотив поехал навстречу светлому будущему, которое внезапно оказалось довольно сумрачным. Как собственно и сам гений, который всё это придумал. Оказалось, что для движения по кольцу колёсные оси, которые стоят параллельно друг другу — не годятся. Их надо ставить под углом. На этом этапе мне пришлось скорректировать сценарий: я отказался от сложной траектории движения по комнате и оставил правильную окружность. Оси развёл, чтобы износ рельсов и колёсных пар был минимальным — и где-то на этом месте мне впервые показалось, что я несколько усложняю...
- Третья ошибка: не разменивайтесь на мелочи. Делайте то, что позволяет добиваться видимого прогресса. Сделайте работу, дождитесь хотя бы одного замечания от зрителей, что оси стоят не под углом — и это замечание само по себе будет вам наградой.
Сборка проекта
Дальше я делал параллельно две задачи — подбирал материалы и начал выстраивать комнату.
На этом этапе железо уже откровенно не справлялось с моими хотелками, а впереди была самая сложная динамика; с проездом по гибкому мостику, который держит на спине резиновый мишка; с листочками бумаги, которые взлетают и ложатся на рельсы; с развевающимися шторами. Паровозик обзавёлся передней фарой, радиатором, воздухозаборником, триплексоваными стёклами, над лобовым появился дворник от Майбаха, спуск по ступеням закрывался на цепочку, чтобы машинист не выпал, в состоянии нарушения трудовой дисциплины.
Задняя площадка освещалась отдельным фонарём, для обеспечения безопасности персонала. Цепочка раскачивалась при движении. При загрузке проекта мне хватало времени попить кофе. Перспектива замены железа становилась очевидной.
- Четвертая ошибка: избегайте сложных материалов, света, эффектов. Упрощайте, чтобы дойти до финала. А дальше можно усложнять. В моём случае, новые автомобильные краски V-Ray замедлили работу в разы. До света я даже не дошёл.
Финал
Следует отметить, что работа шла в тепличных условиях. У меня не было дедлайна (кроме дня рождения дочери), никто не ставил мне рамок, меня ограничивала только производительность ПК. Тем не менее, если бы возня продолжалась в прежнем темпе, этот текст сейчас я бы писал из палаты психиатрической лечебницы. Финал проекта отдалялся с каждым днём. На ночь я ставил просчёт анимации, с одной камерой и одним прожектором. V-Ray на GPU забирал ресурсы по нарастающей так, что на первом кадре считал минуту, а на сотом мог рендерить картинку три часа. Из-за этого пришлось перейти на процессорный рендер, он в свою очередь крашил программу примерно на двадцатом кадре. Поэтому, за ночь считал 20-30 кадров. Вечером вносил правки, в следующую ночь ещё 20-30 кадров. Баги с текстурами и отражениями даже не упоминаю.
Закончилось всё просто: однажды, после смены версии Cinema, проект не загрузился. Про танцы с бубном писать не стану, процесс не имеет отношения к творчеству. Но, затея в целом удалась, хотя и была верхом самонадеянности: базовую задачу я выполнил, паровозик поехал, на память остались несколько картинок и тестовый проезд вокруг дивана. А ещё внезапно прилетело несколько заказов на моделирование, чего я никак не ожидал.
Вывод
Не бойтесь сложных задач. Они заставляют осваивать новые инструменты. Соизмеряйте замысел с железом, которое может стать стоп-фактором. И обязательно доводите проект до финала. Даже если он скомканный и его неловко показывать миру.
Как ни странно, неудача с паровозиком дала мне своеобразный импульс к дальнейшей работе. Вероятнее всего, я повторю этот проект, когда обновлю ПК. И он приедет к дочери на следующий день рождения. А пока продолжаю учиться.
P.S. Отдельная благодарность Илье Капустину за один из самых полезных стримов по Cinema, в котором он показал структуру программы и мне впервые открылась (надеюсь) логика её работы.