Создание ностальгической анимированной сцены с 3D-игрушечным поездом в Maya & Substance 3D
Адиль Фаруки рассказал нам о проекте «Поезд против робота», обсудив создание реалистичной композиции, текстурирование древесины и анимацию сцены с помощью Maya и Substance 3D Painter.

Введение
Привет, меня зовут Адиль Фаруки, я из Мумбаи, Индия. В настоящее время я работаю Lighting TD в DNEG, у меня более семи лет опыта в индустрии VFX, и я до сих пор наслаждаюсь каждым моментом. Моя страсть зажглась благодаря закулисным кадрам из таких фильмов, как «Железный человек», «Трансформеры», «2012», «Ra.One» и «Реальная сталь». После школы я получил степень в области анимации и VFX, и мой первый опыт работы был в студии Prana Studios, где я работал над эпизодами «Игры престолов», фильмами Disney, «Трансформерами» и другими.
С тех пор я работал над более чем 20 фильмами, включая голливудские проекты, такие как «Фуриоса», «Веном 3», «Аквамен 2», «Сотня» и «Для всех». С момента нашего последнего интервью я углубил своё внимание на освещении в DNEG, что подтолкнуло меня к более реалистичным CG-рендерам. В своей личной работе я экспериментирую с DIY VFX, используя бытовые предметы для достижения фотореализма.

Проект «Поезд против робота» был моим первым полноценным CG-рендером, изначально запланированным для интеграции в живое действие, но я решил сделать его автономным в CG.
Идеи для референсов
Моё вдохновение черпается из любви художников к воссозданию реальной механики в CG. Это медитативно и приносит удовлетворение. Личные проекты, подобные этому, помогают мне снять стресс и сохранять мотивацию, особенно благодаря еженедельным задачам на моём сервере Discord CodeVFX, где я сотрудничаю с единомышленниками.
Эта идея возникла из-за мема о проекте «застрял в петле кредита» от Кристиана Шрайбера.
POV: Жизнь от зарплаты до зарплаты выглядит так:
Я хотел воссоздать его как забавный CG-ролик с роботизированной рукой и деревянным игрушечным поездом.
Цели включали достижение реализма в полном CG, экспериментирование с ригом/анимацией и создание ностальгической атмосферы индийского среднего класса с летним освещением, как у бабушки.
Референсы: я использовал оригинальное видео для руки, изображения игрушечного поезда (добавив деревянные стержни для рига), обычные индийские напольные плитки и фотографии детских игровых площадок для разбросанных игрушек.

Моделирование
Для моделей я сосредоточился на основных активах (роботизированная рука, поезд, рельсы) и смоделировал их в Maya, используя плоскости изображений для пропорций.




Рельсы были смоделированы прямыми, продублированы в последовательности, а затем изогнуты с помощью модификатора, чтобы придать им форму дуги.

Остальные активы были загружены, например, LEGO, стул, ведро и т. д., с консоли Sketchfab Red Brick. Ассет консоли был позаимствован у моего друга Винаяка, который является художником-модельером. Это помогло мне сосредоточиться на основных активах и сэкономило значительное количество времени.



Блок-схема, сборка сцены, композиция и разброс деталей
Настройка блок-схемы
Я начал с грубого блок-схемы в Maya, используя простые примитивы для определения масштаба, пропорций и круговой схемы рельсов. Сначала я разместил базовые прокси для роботизированной руки, поезда и рельсов, убедившись, что всё помещается в кадр камеры.
Сборка сцены
После того как основные активы (роботизированная рука, поезд и рельсы) были смоделированы и настроены, я перенёс их в новую мастер-сцену, которая стала моим основным файлом рендеринга и освещения. Этот неразрушающий подход сохранил исходные активы в чистоте и позволил легко вносить обновления. Затем я построил вокруг них окружение.
Композиция
При статической камере я составил кадр так, чтобы в центре было циклическое действие, а глаз зрителя вёл по кругу с помощью разбросанных реквизитов. Мозаичные напольные плитки и тёплое освещение создают ностальгическое ощущение летнего утра в типичном индийском доме среднего класса.
Разброс деталей
Чтобы придать сцене ощущение обжитости, я создал краткий список обычных предметов домашнего обихода: пластиковый стул, корзина для белья, классическая индийская швабра и культовая игровая консоль Red Brick (мечта каждого ребёнка 90-х!). Большинство фоновых предметов, таких как стул, корзина и швабра, были взяты из Sketchfab и из LEGO, которые я повторно использовал из своих предыдущих проектов (LEGO — забавная пасхалка из одного из моих старых личных проектов). Игровая консоль Red Brick — мечта каждого ребёнка, иметь такую. Сначала я расставлял их вручную для контроля, затем экспериментировал с вариациями, перемещая предметы, пока сцена не стала естественно захламлённой, не отвлекая при этом от основного действия. Стены были частично основаны на моей собственной комнате для аутентичности, а плитка на полу была обязательной текстурой, которую я скачал, а затем настроил в lookdev (регулируя диффузное отражение, шероховатость и тонкий шум смещения), чтобы соответствовать реальным индийским домам.

Текстурирование
Как художник по свету, прежде всего, текстурирование не является моей основной областью, но я подошёл к нему с чёткой целью: сохранить игрушки и рельсы относительно новыми и чистыми, как заветные детские вещи, добавив при этом достаточно тонкой изношенности, чтобы выглядеть аутентично. Я выполнил всё текстурирование в Substance 3D Painter, а затем доработал окончательный вид с помощью детальной проработки в Arnold.
Для деревянного поезда и рельсов, сердце проекта, я внимательно следовал урокам по деревянным материалам Джаведа Раджабзаде. Я использовал встроенные текстуры Substance 3D Painter для базового материала альбедо, добавил тонкие детали зерна через карты нормалей и сохранил шероховатость довольно однородной, но со слегка различимыми вариациями, чтобы свет отражался естественно.

Единственным преднамеренно добавленным износом были следы шин на рельсах и слабые следы захвата роботизированной рукой, где она поднимает каждую деталь. Эти небольшие контактные точки помогли продать взаимодействие, не делая игрушки старыми или потрёпанными.

Плитка на полу имела решающее значение для атмосферы индийского дома. Я нашёл в интернете идеальную текстуру мозаичной плитки, затем внёс небольшие коррективы в lookdev: настроил диффузное отражение для теплоты, отрегулировал шероховатость, чтобы получить те самые удовлетворительные глянцевые отражения под солнечным светом, и добавил тонкий процедурный шум в канале смещения, чтобы разбить повторяющуюся гладкость и избежать слишком идеального CG-вида.
Другие предметы были сделаны простыми, поскольку они были фоновыми элементами:
- Роботизированная рука была простой. Я просто подобрал металлический/пластиковый вид из справочного видео, используя базовые материалы PBR.
- Для швабры (pochha) я схитрил: скачал простой ассет упавшей ткани из Sketchfab, наложил сверху текстуру швабры и добавил тканевый узор. Поскольку она была размыта на заднем плане, всё выглядело идеально без дополнительных усилий по моделированию.
- Для LEGO кирпичей я переделал текстуры с нуля: плоские основные цвета со светлым граунджем, шум в зеркальных и нормальных картах для тонких перерывов и немного износа по краям, чтобы они выглядели обработанными, но не грязными.
Честно говоря, в этом проекте не было по-настоящему сложных поверхностей, ничего вроде кожи, органических существ или замысловатого металла. Моя специализация как TD по освещению означала, что я сильно полагался на lookdev после экспорта из Substance 3D Painter, чтобы материалы красиво выглядели при освещении. Настоящее волшебство происходило, когда текстуры взаимодействовали с тёплым солнечным светом и тенями; вот где для меня ожил реализм.

Анимация
Анимация была одной из самых приятных частей проекта; плавный цикл роботизированной руки, переставляющей рельсы, пока поезд продолжает бесконечно двигаться, имеет медитативное, удовлетворяющее качество.
Я работал в Maya, анимируя со скоростью 24 FPS для плавного ощущения, как у игрушки. Цикл построен вокруг всего четырёх уникальных фрагментов рельсов из восьми возможных: рука непрерывно поднимает один, перемещает на противоположную сторону, поворачивает на 180° (относительно себя), ставит на место и повторяет, создавая иллюзию вечного движения.
Конструкция и анимация роботизированной руки
Я оснастил руку стандартным ограничением для точного контроля. Ключевые особенности:
- Специальный контроллер-клешня для действий открытия/закрытия, чтобы захватывать и отпускать рельсы.
- Гибкие провода были оснащены простыми костями, привязанными к когтю, что позволяло естественно покачиваться с помощью тонких ключевых смещений.
- Чтобы аккуратно обработать захват трека, я добавил небольшую кривую у рта когтя и привязал треки к ней во время захвата. Это значительно упростило и стабилизировало подъём, переворот на 180° и размещение. Основные движения манипулятора были анимированы с помощью ключевых кадров, линейного перемещения по кругу, перекрытого вращениями для механической плавности.
Быстрый разбор движений манипулятора по этапам (для понимания движения)
Анимация поезда
Сам по себе поезд был простым, но продуманным. Я сгруппировал двигатель и вагоны, поместил точку поворота точно в центре круговой дорожки и анимировал постоянную скорость вращения вокруг оси Y. Для колёс я провёл небольшие вычисления: рассчитал длину окружности пути и диаметр колеса, чтобы управлять выражением, связывающим расстояние вперёд с вращением колеса, что обеспечивало идеальное время без проскальзывания.
Короткие соединительные стержни между колёсами были настроены как поршни (вдохновлённые настоящими паровыми локомотивами) с помощью простых ограничений Point and Aim и выражений для создания дополнительной механической детализации, когда поезд двигался.
Общее планирование петли потребовало изучения оригинального эталонного видео покадрово, чтобы точно определить время и интервалы. Сочетание точных приёмов риггинга и немного математики сделало даже эту простую игрушечную установку живой и правдоподобной.
Освещение
Моя цель освещения — передать тёплую сцену раннего летнего утра в помещении, как солнечный свет, струящийся в дом летом. Я хотел создать уютную, но контрастную картинку: мягкие общие тени, тёплые тона, заметные зеркальные блики и разбивки на глянцевых плитках пола, тонкие горячие точки и мягкие, но чёткие тени для добавления глубины.
Я использовал Arnold в качестве рендерера в Autodesk Maya. Базовое освещение было получено с помощью Artist Workshop HDRI от Poly Haven, которое обеспечивало естественный окружающий свет и мягкие глобальные тени. Для ключевого света я добавил большой площадной свет, расположенный так, чтобы имитировать солнечный свет, проникающий через окно слева. Это создало длинные направленные тени и приятный контраст на круговой дорожке. Чтобы сбалансировать его, я разместил более мягкий заполняющий свет справа на экране, чтобы мягко осветить области с жёсткими тенями, не размывая теплоту.
Поскольку камера полностью статична, я оптимизировал свой подход к рендерингу для максимального контроля над композицией, разделив его на эффективные слои:
- Окружающая среда: визуализирована как единый кадр (фоновые реквизиты и пол).
- Основные активы: поезд, рельсы и роботизированная рука вместе как последовательный слой.
- Тень и AO Pass: основные активы, отбрасывающие тень на окружающую среду (последовательность).
- Отражение Pass: отражения основных активов на окружающей среде (последовательность).
Ключевые AOV включали:
- Отдельные проходы света (для точных настроек)
- Specular Direct/Indirect и Albedo Direct/Indirect
- Cryptomatte (для маскировки)
- STMap (для эффектов искажения, таких как следы на рельсах)
- Position, Vector and Z-Depth (для продвинутых настроек композиции, таких как туман на основе глубины или размытие движения, если это необходимо)

Такая многоуровневая настройка позволила сэкономить время рендеринга, при этом обеспечив мне полную гибкость в Nuke для точной настройки контраста, теплоты и взаимодействий.
Время рендеринга (в Arnold):
- Train Beauty pass: 2–3 минуты на кадр × 360 кадров ≈ 15 часов
- Окружающая среда: 45 минут (один кадр) ≈ 1 час
- Train Shadow pass: ≈ 9 часов
Train Reflection pass: ≈ 15 часов. Общий рендеринг занял около 40 часов!


Композиция и постпродакшн
Я планировал достичь большей части финального вида в композитинге (используя Nuke), что дало мне гибкость для быстрой итерации и повышения реализма без повторного рендеринга всего. Со статической камерой и многослойными рендерами (окружающая среда как статичное изображение, основные объекты как последовательность, плюс выделенные проходы для теней, отражений и взаимодействий) у меня был полный контроль над интеграцией.
Композиция началась просто: слияние статичного изображения окружающей среды с последовательностью основных объектов (поезд, пути, роботизированная рука). Затем я сосредоточился на точных взаимодействиях, чтобы повысить реализм. Тени были особенно важны для меня, поскольку они могут сделать CG-сцену более или менее правдоподобной. Используя выделенные проходы, я тщательно добавил падающие тени, контактное затенение, отражения и едва заметный отражённый свет, чтобы игрушки выглядели по-настоящему обоснованными в пространстве.
Для деталей на земле я использовал проход STMap, чтобы добавить следы от шин и гусениц, а также немного пыли в углах. Для стен я сфотографировал свою комнату и слегка добавил элементы поверх CG-стен, чтобы внести реальную текстуру и несовершенство. Одной из моих любимых настроек было изменение цвета шин поезда: изначально в рендере они были красными, но они не соответствовали тёплой ностальгической палитре. Используя Cryptomatte, я легко выделил и изменил их цвет на голубой, что мгновенно сделало их выделяющимися на фоне пола, соответствуя при этом атмосфере детской игрушки.
Цветокоррекция была ключом к созданию ощущения солнечного летнего утра. Я добавил теплоты в средние тона и светлые участки, слегка увеличил контраст и убедился, что блики на плитках улавливают этот золотистый свет.
Контрольный список пост-процесса (применяется выборочно в зависимости от сцены):
- Резкость (незначительная, для улучшения детализации без искусственного вида)
- Свечение на освещённых участках (мягкий блик на горячих точках пола)
- Виньетку (мягкое затемнение по краям для концентрации внимания)
- Шумы плёнки/зернистость (лёгкие, для ностальгии по аналоговым домашним видео)
- Вспышка объектива (очень тонкая, от предполагаемого источника в окне)
- Хроматическая аберрация (минимальная, по краям)
- Парящие частицы пыли (на переднем плане для глубины и атмосферы)
Одна вещь, которую я бы сделал по-другому в следующий раз: я рендерил векторный проход, чтобы добавить размытие в движении в постпродакшне, но оно никогда не казалось мне правильным. Оглядываясь назад, рендеринг размытия в движении непосредственно в CG (Arnold) интегрировался бы более естественно с движением петли.
В целом, композитинг оживил сцену; небольшие итеративные настройки превратили чистый CG-рендер в нечто живое и ностальгическое.

Заключение
То, что началось как недельный челлендж на моём сервере CodeVFX Discord, быстро превратилось в месячный личный проект; моя одержимость деталями просто не позволила мне спешить! В первую неделю я успел завершить моделирование и основную анимацию, отправив плейбластик для участия в челлендже. Но я знал, что качество, которого я хочу достичь, заслуживает большего времени, поэтому я продлил его, чтобы усовершенствовать каждый аспект.
Основными задачами были разработка анимации R&D, чтобы роботизированная рука выполняла точные циклы захвата и поворота, создавая ощущение механичности и удовлетворённости, а также достижение полного реализма компьютерной графики до уровня, когда кадры можно принять за реальные. Это поддерживало мой интерес на протяжении всего процесса; я прошёл через бесчисленные итерации и микрорешения, особенно в области освещения, текстурирования и композитинга. Как только сцена была завершена, я поделился ею с друзьями, чтобы получить отзывы, и учёл их предложения, чтобы сделать её ещё более правдоподобной.
Извлечённые уроки: Планируйте качество, а не скорость в личной работе; сроки гибкие, когда вами движет страсть. Многослойные рендеры и итеративная обратная связь бесценны для достижения реализма. Кроме того, взгляд со стороны на вашу работу выявляет слепые зоны, которые вы не можете увидеть в одиночку.
Совет начинающим художникам: Никогда не спешите публиковать незаконченное произведение только для того, чтобы уложиться в самостоятельно установленные сроки; оно будет представлять вас в портфолио в течение многих лет. Потратьте дополнительные дни (или недели), чтобы довести его до блеска. Личные проекты — это ваша площадка: относитесь к ним как к медитации, экспериментируйте свободно, ищите отзывы сообщества и всегда отдавайте приоритет качеству, которым вы гордитесь.
Аадиль Фаруки, художник по свету
Автор: Aadil Faruqui
Материал подготовлен на основе статьи 80.lv. Перевод — Skills Up.