Making of "Hot Rod"
Всем привет, меня зовут Влад мне 34 года, 3d увлекаюсь как хобби - изучая 3d софт в свободное время, по спецкурсам и по ютубу.
В этом посте я хочу поделиться процессом создания gameready модели хотрода. Создание модели продолжилось созданием окружения для неё - но обо всём по порядку.
Однажды я посетил фестиваль где местные умельцы демонстрировали автомобили собранные по собственным чертежам, и я подумал что непременно тоже хочу сделать что то такое но в 3d. Я решил сделать хотрод.
Первым делом принялся за поиски референсов. Хотроды - это конечно всегда кастомные автомобили, я не ориентировался на какой то один конкретный хотрод который нашёл в интернете, взял от разных вариаций разные элементы. Самое главное (и сложное) - форма кузова. Тут я взял за основу Ford 1932 года - модели этой линейки как раз часто и переделывались в хотроды.
С одной стороны, когда делаешь такой проект - есть много пространства для творчества - так как частично допускается додумывать некоторые детали. С другой стороны - когда где то отсутствуют чёткие рамки, можно обнаружить себя долго залипающим на несущественных мелочах. (Так например я сделал пространство в багажнике, который в итоге на рендерах решил не открывать)
Часть 1 Хотрод
1. Поиск референсов
Для "складирования" референсов - использовал программу Pure Ref
По мере продвижения проекта постоянно дополнял рефлист, и в итоге когда понял что хочу что бы мой хотрод был где то в пустынной местности, возможно с атмосферой постапокалипсиса - добавил варианты грязи/песка на авто и пропсы которые должны присутствовать в сцене, а позже даже и здания
2. Создание high-poly
Работал в Blender 3.4 (в процессе обновился до последней версии)
Самое сложное - это форма кузова с правильной топологией. Моделил под сабдив - затем упрощал и оптимизировал.
Были только схематические чертежи которые помогли разобраться с пропорциями, однако сами нюансы формы пришлось строить уже по фотографиям
После того как расправился с кузовом, особо сложных форм больше не было, но была задача сделать множество мелких деталей двигателя и подвески - что тоже заняло достаточно времени
Ниже завершенный результат моделинга. Получилось 148 453 треугольника
Моделил не только кузов но и салон, сетка прилагается
Вообще делал мид-поли, с кастомными нормалями - а для экономии полигонов запекал некоторые детали салона (сиденье, карты дверей, и кожух переключения передач) и конечно же протекторы шин. С шинами кстати намучился, так как добавил себе сложности когда выбрал не симметричный протектор.
3. Развёртка
После моделирования, принялся за развёртку.
Разворачивал всё в блендере.
Итого:
3 текстурных сета:
- экстерьер 4к - тексель 7.36
- интерьер 4k - тексель 7.42
- стёкла 2k - с альфа-каналом - тексель 15 хватило бы и 1k но я хотел сделать немного грязи на стёклах
Для развертки помимо стандартных инструментов блендера использовал аддоны UV_PackMaster 3, ZevUV. Для того что бы посчитать texel - использовал аддон Texel Density Checker
Много чего отправил в оверлапы для экономии места на развёртке
4. Покраска
Хотелось сделать ржавый и грязный автомобиль, но для начала нужно было сделать основные материалы, а лишь потом уже накладывать ржавчину и грязь.
Сначала запёк модель. А что бы всё правильно запеклось без артефактов, и для того что бы было удобно красить - разобрал модель.
Ниже результат запекания в Substance Painter
Далее будут рендеры с результатами покраски
5. Рендеры
Рендерить решил в blender cycles. Держа в голове что хотрод будет находится в пустыне подобрал соответствующую hdri, с ней же потом рендерил варианты грязного автомобиля
Сначала немного рендеров "чистого" автомобиля
После основной покраски добавил ржавчины а потом грязи. Использовал множество референсов, так как материал многослойный - и требовалось отдельно проанализировать как распространяется ржавчина по металлу, затем как распространяется грязь и песок, и собственно что будет если соединить и ржавчину и грязь.
Получилось вот так, на этом же этапе придумалось название для этого агрегата - "Cobalt Fury" - которое и было нанесено нормальками на переднюю часть капота. Отдельно пришлось лезть в substance designer для того что бы перенести понравившийся шрифт в substance painter - хотя и в данном случае можно было сделать всё фотошопе, но я хотел более гибкого подхода, поиграться с различными вариантами расположений букв.
Вариант без капота
Предварительно поместил свою модель в пустыню, нашёл текстуру песка с дисплейсментом и добавил hdri
Часть 2 Окружение
1. Моделирование зданий
На рендерах в блендере я не остановился. Было решено перенести всё в Unreal Engine
В голове была идея создать историю, будто этот хотрод находится где то возле заброшенных зданий, на земле мусор, и всё это как я и писал выше - в пустынной местности.
И я начал делать здания и создавать пропсы
Так я познакомился с тайловыми и тримовыми текстурами, а так же c принципами создания модульных зданий
Но в момент сбора сцены уже в самом анриле понял что достаточно было сделать и двух сооружений, и возможно даже с меньшим количеством модулей.
Итого получилось 5 паков тримовых текстур для зданий. Некоторые части позже задействовал на двух пропсах
Все текстуры для зданий с разрешением 4к - тексель 10
Конечно же для того что бы разбить тайловость, пришлось делать декали, это были декали подтеков, ржавчины, грязи. Тут хватило двух сетов, делал по тому же принципу что и тримовые текстуры (но с альфа каналом). Когда накладывал - где то их растягивал, где то ужимал, где то накладывал одну на другую
Так же ещё нашёл в интернете несколько рисунков граффити, которые были бы в тему в сцене, немного посидел с ними в фотошопе и в сабстансе и добавил уже непосредственно в сам unreal.
Потом в финальном варианте ещё раскидал пропсы, всякие свисающие провода, а на стены прилепил плакаты и таблички
2. Создание пропсов
Отдельно сделал пропсы, и так же покрасил в Substance Painter'е - получилось 4 сэта
2к тексель 8.12 - 13 639 треугольников - самое большое количество пропсов
2k тексель 4.8 - 9 836 треугольников - пропсы под которые делал хайполи и запекал на лоу поли
2k тексель 5.8 - 1 484 треугольника - сет под протекторы для шин (тоже с запекаением хай на лоу), и большой мусорный контейнер (скульптил в блендере вмятины и царапины)
2k тексель 4.9 - 9 974 треугольника - отдельный сет под прицеп
3. Перенос в unreal engine
И вот начался перенос всего что было сделано - в движок
Сцену собирал на дефолтном landscape, в последствии меняя его под свою сцену и настраивая освещение
Старался следовать принципу "от большего к меньшему" поэтому для начала я перенёс модули здания и собрал их в сцене, попутно приноровился к управлению в unreal
После того как здания уже стояли в сцене - начало вырисовываться понимание как поработать с ландшафтом. Создал несколько материалов для него - это был асфальт, грязный песок, и песок со следами протекторов шин, примерно покрасил, и немного подскульптил ландшафт. Кстати в unreal очень удобно и привычно после блендера работать с материалами - так как тут тоже используется нодовая система
Покопался на ресурсе fab от unreal для того что бы найти какие-нибудь камни на задний план
Собрал сцену, раскидал камеры и сделал небольшие ролики по 5-10 секунд, что бы понять как и что в итоге показывать в сцене. Начал разбираться как делать разные эффекты, типа свечения лучей, пыль от дороги, туманы... где то поправлял те или иные пропсы и т.д. Так же понял что хочу добавить немного динамики не только с помощью движения камеры, и движения вентилятора в салоне автомобиля.
4. Рендеры
Собственно результаты ниже
И видеоролик
Пока делал проект очень многому научился, и для себя в очередной раз понял такую очевидную вещь - чем масштабнее и сложнее берешь себе задачу - тем большему учишься, так как сталкиваешься с тем чем ранее не сталкивался.Вообще делал этот проект примерно месяцев 7 в свободное время. Первую половину проекта делал на ноутбуке, рендеры и создание материалов в сабстансе на котором давались со скрипом. Сами рендеры приходилось ждать несколько часов, а сабстанс не хотел нормально работать в 4к. Однако когда появилось железо получше, работа пошла быстрее, плюс появилась возможность нормально работать с unreal engine - ноутбук его не тянул так как мне было нужно. Ещё ближе к финалу понял что много времени тратил на то что в итоге не пригодилось в итоговой сцене. Это и лишние пропсы, и даже лишние материалы от которых в последствии избавился немного оптимизировав проект - но потрачено время не впустую, всё это неоценимый опыт. Конечно данную сцену конечно можно оптимизировать ещё лучше удалив несколько пропсов - и перераспределив освободившееся место на UV-развёртке. И вообще, глядя на работу не могу сказать что удовлетворён - потому как вижу что на данный момент, где что и как можно сделать лучше и качественнее
Что бы закреплять навыки и не терять выработанные рефлексы - параллельно с этим проектом делал еще несколько менее масштабных проектов (один исключительно в блендере для практики моделирования и текстурирования, второй сразу под анрил для практики работы с окружением. Cейчас в планах уделить чуть больше времени zbrush - созданию различной органики и более сложных форм.