Making Of "Одинокий странник"
Приветствую любителей пост-апокалипсиса, а в частности серии игр Fallout. В данной статье поговорим о создании композиции "Одинокий странник / The Lone wanderer (Fallout 4)".
Изначально было желание сделать довоенный мотоцикл по концепт-арту мотоцикла "Одинокий странник" из артбука "Искусство Fallout 4". (Рис.1)
Рис.1
По "лору" игры в довоенное время, когда мир ещё не знал о "Великой войне", по дорогам Америки колесили самые разные транспортные средства. Одним из них был мотоцикл "The Lone wanderer" "ОДИНОКИЙ СТРАННИК". Он был не просто средством передвижения, а настоящим символом свободы и независимости.
Мотоцикл "ОДИНОКИЙ СТРАННИК" был создан для тех, кто любил скорость и приключения. Его мощный двигатель позволял разгоняться до высоких скоростей, а надёжная конструкция обеспечивала безопасность на дороге.
Время шло, и довоенная Америка постепенно забывала его, но легенда о нём продолжала жить в сердцах тех, кто ценит свободу и независимость. И кто знает, может быть, где-то в постапокалиптическом мире Fallout, «ОДИНОКИЙ СТРАННИК» всё ещё ждёт своего нового хозяина, чтобы снова покорять дороги.
И так...
Первое что делаем собираем рефы в программе PureRefe (Рис.2).
Рис. 2
Процесс создания мотоцикла разделён на следующие этапы :
1. Создание средне-полигональной модели (middle-poly)
2. Создание UV-развёртки на middle-poly модели (UV-mapping)
3. Создание высоко-полигональной детализированной модели (high-poly) методом sub-division.
4. Запекание текстурных карт. (Bake)
5. Создание PBR текстур. (Texturing)
6. Создание композиции и рендер.
На первом этапе была создана средне-полигональная (middle-poly) модель мотоцикла в программе Cinema 4D.
Раньше для начала моделирования я добавлял референс-изображение на фон, чтобы попасть в пропорции модели и расположение элементов относительно друг друга.
С появлением нейросетей и возможности генерации по изображению можно сгенерировать мэш на который можно опираться по пропорциям. Для генерации такого мэша я использовал нейросеть "Hunyuan" от компании "Тенсент". Для создания сложных технических моделей c хорошим качеством сетки и UV-развёртки, генеративные нейросети не совсем подходят, но для генерации опорных референсов вполне пригодны. (Рис.3)
Рис. 3
Конечно опираться во всём на такую модель нельзя (например ручки руля явно не такие как надо), но на расположение и пропорции основных элементов вполне возможно опираться, плюс собранные фото-референсы помогут уточнить детали.
Уже на этом этапе становиться заметна проблема самого концепта мотоцикла. Рулить таким мотоциклом не получиться руль не повернуть из-за лишнего элемента под фарой, которое мешают повернуть колесо. Так же к передней вилке крепиться защитная дуга фиксирующая её. Ну и по мелочи на мотоцикле нет зеркал. Поэтому в игре мотоцикл используется только как статический объект окружения и его руль всегда прямо. Оставим это на совесть автора концепта.
Используя инструменты полигонального моделирования программы Cinema 4D, начинаю создавать модель. Начинаю с построения базовой формы мотоцикла с помощью примитивов (кубы, цилиндры) для передачи пропорций и общего силуэта. Добавляю ключевые детали: рама, колёса, топливный бак, руль, фары, а так же элементы, которых нет на концепте (зеркала, поворотники, датчики и крышки на бак). Прорабатываю основные соединения и стыки элементов, соблюдая пропорции референса. Для левого и правого бока использую симметрию. Практически все части смоделированы, как отдельные объекты для удобства запекания и текстурирования.
По основным инструментам полигонального моделирования в программе Cinema 4D, которые я использую записал видео. Посмотреть можно здесь.
В итоге получилась такая вот middle-poly модель 69300 полигонов. (Рис.4)
Рис. 4
После создания middle-poly модели приступаю к UV-развёртке. Разбиваю мотоцикл на 2 материала примерно с одинаковым количеством деталей + 1 материал на колёса и 1 материал элементов с прозрачностью (фары, поворотники).
Импортирую в Rizom UV с помощью плагина из Cinema 4D, делаю развёртку. Швы (seams) - места разрезов, стараюсь скрыть там где это возможно и располагаю так чтобы минимизировать деформации текстур + учитываю жёсткие рёбра (hard edges). Оптимизирую оверлэи (наложение для симметричных и повторяющихся объектов) и плотность UV-карт - обеспечена равномерность распределения UV-пространства. Проверяю искажения (stretching) - минимизированы области с сильными искажениями для сохранения качества текстур. Сохраняю UV-развёртку "Ctr+S" и автоматически возвращаюсь в Cinema 4D. (Рис.5)
Рис. 5
Далее создаём высоко-полигональную модель (high-poly) методом sub-division surface (подразделение поверхности) в программе Cinema 4D. Дорабатываю middle-poly модель меняя геометрию где это необходимо, добавляя деталей под запекание и применяю sub-division. Для резиновой покрышки колеса использую немного другой способ для создания high-poly. Использую инструмент "клон" в радиальном режиме, для создания протектора колеса. После всю покрышку закидываю в модификатор "создание объёма" (воксилизирую сглаживая углы) далее в "каркас объёма". В итоге получаем такую high-poly модель мотоцикла. (Рис.6)
Рис. 6
Далее корректирую модель отодвигая элементы, которые при запекании карты Аmbient Oclusion будут давать ненужную тень. В основном это стекло на фарах, так как под стеклом есть лампочки. Импортирую middle-poly и high-poly модели в Marmoset Toolbag 5.
Примерный процесс работы в Marmoset Toolbag 5 для запекания текстурных карт:
1. Жмём на иконку создать "Bake Project"
2. Появляется группа "Bake Project 1"
3. Закидываем high-poly модель в группу "High". middle-poly закидываем в группу "Low"
4. Указываем путь куда будут сохраняться текстуры на диске и формат текстур.
5. Если у вас несколько материалов, в данном случае три, выбираем "Multiple Texture Set"
6. Выбираем разрешение текстур.
7. В "Configure" выбираем карты которые нам понадобятся для дальнейшего текстурирования в Substance Painter для работы генераторов.
Normals (карта нормалей) - для имитации мелких деталей;
Normals (Object) (World map) - для добавления слоя пыли на верхнюю часть объекта;
Position - создание эффектов, привязанных к пространственному положению объекта (загрязнение, потёки, скопление пыли/ржавчины в нижних частях модели);
Curvature(карта кривизны) - для выделения краёв и изгибов;
Thickness (карта толщины) - для стимуляция износа и старения (ржавчина чаще появляется на тонких краях, а не на толстых плоскостях);
Ambient Occlusion (AO) - для теней в углублениях;
Material ID (Color ID) - для быстрого создания масок в Substance Painter по окрашенным цветам. Ну это если вы захотите окрасить high-poly в разные материалы (например, металл — зелёный, дерево - оранжевый, ткань - розовый).
8. Нажимаем "Low" и настраиваем зону сканирования регулируя ползунки "Min" и "Max". Cage - виртуальная «оболочка», проецирующая детали с High‑Poly на Low‑Poly. Так же в этом разделе если есть искажениях запекания карт нормалей, можно поправить нормали для перпендикулярного запекания включив привью просмотр.
9. Запекаем карты нажав "Start"
Рис. 7
Далее полученные текстуры прикрепляем при импорте модели в Substance 3D Painter. При желании если устраивает результат текстурные карты можно запечь и в ней. Далее идёт процесс текстурирования.(Рис.8) Как работать в программах для PBR текстурирования, в том числе и Adobe Substance 3D Painter я записал небольшое видео.
Рис. 8
Финальный этап включал сборку сцены в Cinema 4D (Рис.9) используя ассеты для создания окружения из библиотеки Quixel Megascans через приложение Bridge. Затем импортирую финальную сцену в Marmoset Toolbag. Настраиваю материалы с PBR-текстурами. Выбираю из библиотеки HDRI-карты для реалистичного отражения. Добавляю источники света - настраиваю мягкие тени, глобальное освещение (GI). В параметрах рендера: настраиваю разрешение, антиалиасинг. В настройках камеры регулирую глубину резкости, пост-процессы(цветокоррекция, виньетирование, блум, и др.).
Рис. 9
И финальный рендер изображения в формате PNG с высоким разрешением. (Рис.10)
Рис. 10
После того как я сделал довоенный вариант мотоцикла мне захотелось сделать его постапокалиптическую версию, для этого пришлось доработать текстуры самого мотоцикл. (Рис.11)
Рис. 11
Но этого оказалось мало и нужно было сделать его "живым" добавив дополнительных деталей. Первое что сделал добавил поверх металлический каркас, с дополнительной защитой, которая не повредит в суровом мире пост-апокалипсиса. (Рис.12) Процесс моделирования такой же как и самого мотоцикла но с доработкой high-poly модели в 3DCoat (добавление вмятин, сварных швов, следов от пуль, царапин и т.д).
Рис. 12
Так же водителю потребуется оружие для защиты от рейдеров и мутантов. Сумки и ящик где он перевозит свой скарб. Так же захотелось добавить мешок с отрубленной лапой когтя смерти отсылающая к моей предыдущей работе, а так же спальник и характерный ланчбок. (Рис.13)
Этапы создания этих моделей несильно отличаются от производства самого мотоцикла, за исключением спальника, вещь-мешка и кожаной сумки. Генерирую модели по изображению в нейросети «Hunyuan». В программе 3DCoat правлю от артефактов и дорабатываю скульптинг добавляя детали. Ну и делаю там же ретопологию. Разворачиваю модельки в Rizom UV и текстурирую их в Substance 3D Painter.
Рис. 13
Раскладываю модели на свои места и получаю готовый вариант пост-апокалиптического мотоцикла "Одинокий странник". Готовую модельку можно покрутить на "skechfab" по ссылке. (Рис.14)
Рис. 14
Теперь надо погрузить мотоцикл в соответствующее ему окружение мира Fallout. Делаю небольшой навес в котором будет стоять мотоцикл. (Рис.15).
Рис. 15
Далее заполняю его объектами. (Рис.16) Некоторые из них я делал для предыдущей работы "Коготь смерти". Так же часть ассетов беру с Quixel Megascans. (ящики, бочки, инструменты и д.р.).
Рис. 16
В последний момент решил добавить охранника в лице робота "Протектрона"(Рис.17), который уже не функционирует, но когда то охранял мотоцикл.
Протектрон - это довоенный робот из вселенной Fallout, разработанный компанией "РобКо". Его основная задача заключалась в защите объектов, но модель также адаптировали для выполнения разнообразных гражданских и промышленных функций.
Его делаю в программе 3DCoat (скульптинг, ретопология, UV-развертка) запекание и текстурирование в Substance 3D Painter. По работе инструментов в программе 3DCoat есть куча видео тут. Более подробно как создавать персонажей в программе 3DCoat читайте мою статью.
Рис. 17
Формирую композицию в программе Cinema 4D. (Рис.18) Так как место давно заброшено, добавил паутины по углам. Паутина представляет из себя плашки с текстурой паутины и прозрачностью. Добавляю сухой травы и деревья на задний план всё из той же библиотеки мегаскан.
Рис. 18
И далее подобрав подходящую HDRI-карту для пустоши, выставляю свет и настраиваю рендер и постпроцессы в Marmoset. В итоге получилась вот такая композиция.(Рис.19) В конце делаю анимацию пролётов камеры, Marmoset toolbag, позволяет делать анимации прямо внутри программы, но при желании можно анимировать камеры в 3D-редакторе и экспортировать в fbx файле, а в Marmoset уже выбрать камеру из списка камер. Далее делаю рендер видео и монтирую в Adobe premier небольшой ролик. Ну и на этом всё.
Рис. 19
Спасибо за прочтение. Надеюсь статья кому-нибудь окажется полезной. Занимайтесь компьютерной графикой и мирного неба вам над головой.
Алексей Воронин (Pro100voron), 2025г.