8 сезон · выпуск 12 · 8 декабря 2022 · 57 мин
Компьютерная графика. Как на экране создаются объекты, которых нет на самом деле
Слушать · 56:53
Почти в каждом современном кино- или рекламном продукте используется компьютерная графика. Чтобы зритель поразился реалистичности взрыва или тому, как новый BMW собирается на ходу, десятки специалистов месяцами трудятся над каждым кадром. Гость этого эпизода Данил Криворучко делает моушен-дизайн для самых громких проектов индустрии. Данил рассказал, как создаются визуальные эффекты и как на этом можно построить карьеру.
Реклама. Бесплатный курс по основам Go от Яндекс Практикума https://clck.ru/32sq8t
Упомянутые ролики:
Pixar, 1986 https://www.youtube.com/watch?v=6G3O60o5U7w
Терминатор 2, сцена с жидким металлом, 1991 https://www.youtube.com/watch?v=u8h8d2XLWKY
Видеоигра Quake, 1999 https://youtu.be/cyCgMQvG_rc
Second Reality, 1993 https://youtu.be/iw17c70uJes
Сайт Данила: https://myshli.com
Проекты: Foundation, 2021 https://myshli.com/project/foundation-opening-titles и See, 2021 https://myshli.com/project/see2-titles
Софт, который использует Данила в работе: Houdini
Туториалы: https://www.youtube.com/@Entagma и https://www.youtube.com/@nothingifnotcritical
Примеры современных моушенов: https://motionographer.com/ и https://www.stashmedia.tv/archive/
Любимые VFX-студии гостя: раз https://xk.studio/, два https://mvsm.com/, три https://futuredeluxe.com/
Подписаться на «Запуск++» в Телеграме: https://t.me/+N_AopnXC0dBkMGQy
Подписаться на Либо/Либо+ в Телеграме, куда включены эпизоды «Запуск++»: https://t.me/+LXZx5JRqO4o0MjJi
Партнер этого подкаста — Яндекс Практикум. https://practicum.yandex.ru/
Над выпуском работали
- Редакторка
- Маша Агличева
- Продюсерка
- Настя Медведева
- Звукорежиссер
- Юра Шустицкий
- Дизайнер обложки
- Петр Сутупов
Транскрипт
Самат Галимов, Данил Криворучко · расшифровано автоматически, ошибки возможны
-
Всем привет! Меня зовут Самат Галимов, и это подкаст «Запуск завтра».
-
Как технический директор я пытаюсь разобраться, как
-
устроены сложные и интересные штуки. Я зову профессионалов, с которым можно поговорить простым человеческим языком. Сегодняшний эпизод о компьютерной графике. Компьютерная графика— это огромная область человеческого знания, в ней
-
есть тысячи разных профессий.
-
Тем не менее, сегодня мы постараемся понять, как в целом на самом-самом базовом уровне на экране появляются объекты, которых на самом деле нет и быть не может. После этого мы глубоко погрузимся в одну профессию в компьютерной графике— в работу моушн-дизайнера. Разбираться будем вместе с профессионалом мирового уровня. Два последних сериала Apple используют анимации нашего сегодняшнего гостя. Это подкаст студии Либо-Либо, и мы его сделали вместе с сервисом онлайн-образования Яндекс Практикум. У Практикум много разных курсов. Сегодня я хочу вам рассказать о бесплатном курсе по основам языка программирования Go. Он нужен для тех бэкендеров, которые уже умеют программировать, но хотят узнать еще один язык. Там вас научат основам языка. Вы сможете читать программы на Go и переводить на Go программы с других языков программирования. Ссылка на курс в описании к этому эпизоду.
-
Привет, меня зовут Данил Криворучко, я занимаюсь моушен-дизайном, визуальными эффектами, генеративными и процедурными системами, а также я креативный и арт-директор, иногда дизайнер, аниматор и, наверное, что-нибудь еще.
-
Когда люди начали рисовать на компах и как это выглядело?
-
Когда появились компы, люди начали искать для них применение. Я помню, были какие-то проекты, когда еще перфокарты были, и они специально создавали код, который выбивает на перфокартах какие-то рисунки. Естественно, как только у человека появилась каменная стена и уголь, он начал рисовать. Вот тут примерно та же самая история. Давно очень. Ну, 60-е, я думаю.
-
Где это применяется сейчас? Компьютерная графика и генерация картин на компьютере?
-
Почти везде, где мы потребляем изображение в цифровом виде, скорее всего, что-то с ним по дороге происходило, то есть оно было или создано, или обработано. Есть еще шаглограммный класс с всякими сжатие, разжатие, уменьшение шума (noise). То есть это всё равно тоже обработка изображения. Частично она относится к компьютерной графике тоже, как какой-то подкласс. Так что везде, везде. Телефон, компьютер, телевизор, проекции, виртуальная реальность. Всё, что мы глазами смотрим, если оно было в цифровом виде, когда-то что-то с ним происходило.
-
Окей. Можешь, пожалуйста, назвать какие-то исторические знаковые картины, игры, программы в области компьютерной графики? Когда такое, типа, вот что-то новое.
-
Я знаю, что Спилберг со своим Парком Юрского периода двинул как бы очень всё это в массы. потому что это было первое не экспериментальное такое, а ну это блокбастер, да, то есть это максимально массовый adoption, который может быть. И там была использована графика много где, помимо как бы всей этой аниматроники, и они тогда людям мозг подорвали. И под эту штуку, чтобы это все сделать, им приходилось тогда разрабатывать свой софт, по сути, потому что это все еще было в зачаточном состоянии. Опять же, это супер-субъективно, я думаю, там есть какие-нибудь правильные исторические факты. Если бы меня спросили, я бы сказал, да, Парк Юрского периода, второй, наверное, Терминатор 2, где спецэффекты перестали быть каким-то вау-фактором, а стали частью нарратива, то есть без него, без этих эффектов просто невозможно было рассказать историю так, как ее хотел рассказать режиссер.
-
Второй Терминатор— это где он жидкий металл, да?
-
Где он жидкий, да. То есть в первом они справились как бы с аниматроникой, вот этот красивый робот всё ходил, всё делал. А тут был момент, когда он проходит через решётку насквозь, и у него там пистолет ещё красиво застревает. И там был суперизвестный момент, когда он с такого клетчатого пола поднимается и собирается из плоского вот в этого зеркального ртутного человека, который превращается в актёра. И то, и другое было графикой. Она должна была выглядеть так, чтобы Люди не смотрели именно на графику, а верили, что вот это вот жидкий терминатор. И мне кажется, это тоже был суперзнаковый момент, если говорить про кино.
-
Окей, про киношки. Давай про игры. Что там, какие есть культовые важные моменты?
-
Знаковые... Ну вот Quake. был как раз массовым знаковым прорывом, когда первый раз это было действительно 3D, честное 3D, которое прямо вот совсем-совсем 3D, и стало массовым как бы, ну по сути, поп-культурным явлением. То есть после этого уже возвращаться обратно не было смысла, то только вперёд надо было идти. И они это сделали ещё там, если я правильно помню, без всяких графических ускорителей, то есть там гениальнейшие кармаковские всякие истории про все эти бинарные деревья, оптимизацию, бла-бла-бла-бла-бла, всё, что происходит внутри, чтобы слабый компьютер смог нарисовать тебе убедительную картинку в 30 кадров или там 60 кадров в секунду. То есть Quake, да. Для меня лично, если говорить про меня, я с 3D-графикой, то есть когда я вот прямо по-честному всё это полюбил, это было где-то середина 90-х. Мне там было, я не знаю, 11 лет, 10. И у меня старший брат— программист. И в какой-то момент я попал к нему в какой-то офис, где стоял 486 компьютер, который я видел первый раз в жизни, который, наверное, был один в городе. Это Симферополь, чтобы вы понимали, это не Москва совсем. И там была штука, я не знаю, кто-то знаком с такой вещью, как демосцена в 90-х годах. И в начале нулевых был большой пласт программистский, в принципе. То есть это на стыке кода и, не знаю, дизайна, арта. И я посмотрел в этом суперкомпьютере такую штуку, которая называлась Second Reality. Она, наверное, где-то есть на ютюбе.
-
Ссылка на неё будет в описании к этому эпизоду.
-
Вот. Я её в какой-то момент попытался пересмотреть, и, естественно, она выглядит чудовищно. Совершенно не так, как выглядят вещи мои, ну, как бы, как они мне запомнились. Но, тем не менее, тогда для меня это был полнейший взрыв мозга, то есть оно там в 3D, оно с какой-то графикой, там что-то... Понятно, что там было миллион всяких читов, чтобы оно выглядело хоть как-то, но... но я тогда просто сошел с ума от этого, это продержалось довольно долго, а потом постепенно это все слепилось вот в то, что я делаю сейчас, то есть где-то посередине между дизайном и кодом, потому что я и то, и то делаю.
-
Блин, это очень интересно, я тебе потом в конце буду подробно рассказывать про то, что ты конкретно делаешь. А перед этим я хочу сдать какое-то общее представление о механизмах работы. Типа, как получить картинку в компьютере. Потому что вообще-то компьютеры умеют только считать. И теперь я хочу понять, как с помощью этих ноликов и единичек можно получить картинку. Хочу на примере. Многие наверняка видели мультики студии Pixar. и у них есть заставка с прыгающей лампой. Лампа мамы и лампа ребёночек, они, значит, прыгают и что-то с ними происходит. Это 86-ой год. Ссылка будет в описании, вы сможете посмотреть это видео, чтобы понимали, о чём мы говорим. Можешь, пожалуйста, меня провести по шагам, что делает компьютер, чтобы получить один кадр такого мультика?
-
Что происходит? Начнём с того, что хорошая новость. Ты говоришь, что компьютер умеет только считать, что означает, что он в состоянии любую математику за какое-то конечное количество времени сделать. А математика, как универсальный язык нашей вселенной, позволяет сделать всё, что угодно. Поэтому уже как бы всё хорошо. То есть неважно, что тебе нужно сделать, ты это можешь сделать вопрос времени. Что происходит, когда вы смотрите на прыгающую лампу? У вас есть анимация, да? У вас есть кадры, которые... Каждый кадр— это набор пикселов. пиксела есть значение RGB, и вам надо считать для кино 24 кадра таких в секунду. Это минимальное количество кадров, на котором человек комфортно перестает различать их как меняющиеся вещи и воспринимает это как непрерывную вещь. А размер этой картинки разный в разное время, но сейчас что-то все в порядке 4K считается для кино.
-
В высоту 4000 пикселей?
-
В ширину.
-
А в ширину 4000?
-
ширину, а высота у него там 3 с копейками тысячи. То есть вам надо посчитать 12 миллионов этих пикселов, 24 кадра в секунду и умножить эти секунды на довольно большой промежуток времени. Ну, смотря сколько у вас идет ваша эта анимация.
-
Слушай, ты еще сказал, что RGB— это red, green, blue, это красный, синий, зеленый. Этими тремя значениями можно закодировать любой цвет.
-
Да.
-
Значит, типа 4000 в ширину, 3000 в высоту, 12 миллионов пикселей, каждый пиксель какой-то цвет имеет, и вместе получается картинка.
-
Да.
-
24 таких кадра в секунду получается в видео.
-
Да.
-
Как сделать одну картинку?
-
Как сделать одну картинку? У тебя надо каждый пиксел посчитать и узнать, какого он цвета, правильно?
-
Хорошо. В теории понятно. А как посчитать цвет?
-
Вот тут все становится сложнее. Работает всё примерно так же, как настоящее кино. То есть у тебя есть камера со своими свойствами, у тебя есть кадры. Что происходит в реальном мире? У тебя источники света, испускают фотоны света. Естественно, у тебя есть солнце, которые распространяются в этом пространстве, ударяются по разные поверхности. Часть спектра проглощается, часть отражается, часть превращается в тепло. В конце концов, какая-то мизерная часть доходит до пленки через оптику и меняет химические свойства этого носителя так, чтобы потом через какой-то еще другой процесс ты эти цвета смог получить. В принципе, что тут происходит в компьютере, происходит все то же самое, только это симуляция. с какими-то, естественно, упрощениями. У тебя есть источники света, виртуальные, расставленные, с размерами, с интенсивностью, много чего, чтобы они работали как настоящие и спускали к настоящей. У тебя есть сцена, которая, естественно, не настоящая, а 3D-модель. Все эти модели разбиты на треугольнички, потому что так математикам удобнее было.
-
Обычно настольные лампы из скольки кусочков, это называется полигонами еще, по-моему, из скольки полигонов состоит такая лампа.
-
Да, зависит от того, что ты собираешься делать. Если ты на нее с километра смотришь, то там даже 3D не будет. Там будет, скорее всего, 2D плоская штука прыгать, чтобы сэкономить. Ну, то есть, гипотетически, если тебе нужен супербольшой close-up, близко подойти, то тебе нужны эти детали откуда-то взять. Сколько было в лампе полигонов, я без малейшего понятия. Мало, я думаю. Ну, то есть, там, тысяча, две тысячи, три тысячи.
-
Это мало, да?
-
На самом деле, если ты посмотришь, сейчас такой поликаунт, боюсь сейчас соврать, но я думаю, это где-то порядок в тысячах считается в стратегиях на мобильном телефоне у юнитов. Это сколько у тебя полигонов там на каждого.
-
который занимает там типа 10 пикселей.
-
Ну да, может быть там 200, 300, 400, то есть могу врать, но я думаю порядок где-то такой сейчас. Для кино, естественно, на порядки выше.
-
Эту лампу ты задаешь в программе сам, руками, в смысле прям программируешь, или есть какие-то уже инструменты для того, чтобы типа есть готовые модели?
-
Есть, конечно, естественно. Есть и готовые модели, есть и инструменты для моделирования. Естественно, чтобы сделать миллион полигонов, ты не будешь вручную выставлять x, y, z координаты для каждой точки. Ну, никто этого не делает. Есть софт специализированный, который позволяет заниматься 3D-моделированием. Ну, самое простое, где дают кубики, дают возможность из него постепенно эти грани выдавливать. Или делают там для скульптинга штуки, которые у тебя по сути как глина, из которой какая-то цифровая глина, с которой ты можешь что-то там вытягивать, вдавливать, все себя организировать. персонажи делаются так, потому что полигонами все вот эти наши выпуклости очень трудно сделать. Сначала делается супер высокополигональная модель, которую ты просто скульптишь, а потом ее переводят в низкополигональную с всякими своими заморочками.
-
Вот у тебя есть сцена, в которой уже есть 3D-модели, и они превратились в эти треугольнички. Что дальше происходит для того, чтобы получился пиксель на картинке, в кадре?
-
Да, есть часть 3D софта, которая может быть частью там, я не знаю, если ты работаешь в Maya, у нее есть свой встроенный рендер-движок какой-то там, несколько даже. Есть сторонние, которые отдельные компании разрабатывают, которые встраиваются в чужой софт, и они от этого софта получают как раз модель и все-все-все-все-все, а на выход выдают картинку. И их задача сделать, чтобы эти лучи из камеры полетели в сцену, в правильном месте отразились, и в конце концов долетели до какого-то источника света, и интенсивность RGB в этом пикселе, которая, скорее всего, раньше была байтом представлена каждая, то есть от 0 до 255. Сейчас слишком маленький цветовой диапазон. Часто, если вы все тут айтишники, float, 32-битные обычно, которые позволяют гораздо больше, чтобы у тебя и в тени было достаточно света, и солнце могло попасть, и при этом правильную интенсивность могло передать.
-
То есть 256 градаций синего нам уже не хватает, нам нужно теперь 32 миллиона.
-
Категорически не хватает, нет, там гораздо больше. Но это флоутовое, то есть ты там миллиарды можешь, и дроби с миллиардом значений после точки, и наоборот вверх тоже довольно далеко. Потому что интенсивность света в реальном мире довольно большая. Почему все любят кинокамеру, опять же, плёнку, и не любят цифровую? Потому что цифровая матрица, может быть, сейчас какие-то появились камеры, но долгое время она не в состоянии была взять тот же охват интенсивности, что давала плёнка. который еще все равно меньше, чем то, что берет наш глаз. И поэтому у тебя картинка выглядела неубедительно. И с графикой это произошло, когда они позволили мощность считать больше и хранить больше, то стали хранить больше. Потом тебе надо из этих интенсивностей как-то это все как раз таки перевести в RGB, которые есть на экране. И тут вот вся эта колористика начинает адовую математику, потому что там все очень сложно. Вот тебе хороший факт. Недавно столкнулся. У глаза логарифмическая зависимость того, насколько яркий мы видим объект, от его реальной интенсивности. То есть это нелинейно. Ты в два раза увеличиваешь яркость объекта, причём там какая-то сложная кривая, получается глаз реагирует не в два раза его видит более ярким, а в другое количество раз. Но считаешь, что это всё не для глаза, ты считаешь физику настоящую, то есть реальные интенсивности, и тебе надо перевести в то, чтобы твой глаз сумел воспринять так, как она должна быть воспринята. Короче, там ад, реально. Там смесь проблем, которые возникают от устройства, с подарками от нашей природы, и всё это непросто. Вся эта история на самом деле про враньё, потому что никому не важно, сколько у тебя полигонов, никому не важно, какие у тебя алгоритмы, всем всё равно, важна картинка. Есть высказывание, что кино— это ложь 24 раза в секунду. Компьютерная графика— это огромная ложь 24 раза в секунду. Потому что невозможно это всё посчитать по-честному. Это всё на уровне математическом превращается в неподсильную для всех компьютеров мира задачу, чтобы посчитать честно одну секунду. Поэтому это огромное количество оптимизации, где ты всё упрощаешь, упрощаешь, упрощаешь, но у тебя есть критерий, чтобы оно выглядело достоверно. То есть без разницы, какая там математика внутри, если пиксел нужного цвета, то всё хорошо. К примеру, мы говорили о том, что как происходит всё на самом деле, то есть есть источник света, и он распространяется. В графике никто не считает впрямую, считает в обратную сторону, потому что тебе абсолютно без разницы, если луч вышел из источника света, ударился в стену и улетел в бесконечность. То, что не попало в камеру, того не существует, поэтому тебе совершенно не нужно считать. Ты считаешь из камеры, луч направляешь в сцену и смотришь, откуда в эту точку на сцене мог прилететь свет. И это рекурсивно расходится. Ну то есть когда это зеркало, всё клёво, да, у тебя один луч прилетел, один улетел, всё идеально. А таких поверхностей практически нет. У тебя происходит рассеивание света. И луч, который прилетел один, он превращается в бесконечное количество лучей. Ты это, естественно, посчитать не можешь. Ты делаешь, например, 16. Смотришь, куда разлетелись они. Каждый из этих разлетелся еще куда-то.
-
Это для того, чтобы если у меня красный мяч стоит рядом с белой стеной, то мне нужно типа отражение красного-красного мяча сделать.
-
Да-да-да, то есть что происходит, у тебя луч пролетел через кадр, нашел точку, через которую он пошел, долетел до мяча, от мяча разошлось несколько лучей. Один улетел в небо, поэтому там будет голубой как бы вклад, один улетел на соседний объект, который там, например, белый, а один улетел на стену. В этой точке стены, ну сама стена белая, но из этой точки стены разошлись еще куча лучей, и какое-то их количество оказалось снова на красном этом шарике. Поэтому оно по цепочке возвращается обратно. То есть это рекурсивная задача, у которой сложность, естественно, возрастает, это квадратичная зависимость. Короче, там жесть. Поэтому все это надо оптимизировать, и есть огромное количество математических алгоритмов, которые позволяют за конечное количество шагов добиться более-менее правдоподобной картинки. Это сначала на уровне математики упрощается, а потом на уровне оптимизации алгоритмов, вот что еще как бы второй уровень, чтобы у тебя кадр считался там всего сутки, а не миллион лет. Поэтому это все непросто.
-
Хочу зарекапать это все. Значит, мы строим модель объектов сначала в одной программе, дальше собираем всю эту сцену, скорее всего, в другой программе, после этого передаем это в третью программу, которая через пиксель нужный испускает луч, смотрит, куда этот луч ударился, в какой объект, смотрит, какие свойства у этого объекта, в смысле там цвета, интенсивности отражения всего вот этого, и таким образом высчитывает цвет конкретного пикселя.
-
У них есть еще поверхность, и тебе надо задать свойства этой поверхности, что делают то, что называется материалы. Материалы— это тоже отдельная программа. Ты 3D-модель должен обернуть плоской картинкой, и каждый маленький треугольничек знает, какого он материала, а в материале написано свойства, насколько он хорошо отражает, преломляет ли он свет или нет, насколько сильно он это делает. Огромное количество параметров, которые по сути определяют, что происходит с светом в отдельной конкретной точке, когда прилетает вот какой-то кусочек спектра, и после этого что-то с ним должно произойти. Вот у меня от AirPods коробочка лежит, она поцарапана.
-
А-а-а, эти царапины нельзя задать полигонами, ты их не задаешь треугольниками.
-
Ну как, технически можно, но тогда у тебя будут миллиарды, просто тебе на каком-то атомарном уровне надо будет. Естественно, это делается 2D-текстурами, которые показывают, что здесь есть царапина. А что происходит, когда царапина? У тебя, во-первых, поверхность, в ней есть выемка, есть не идеально ровная штука, а в ней начинаются микро... ну, бам, микровсякие шероховатости, которые влияют, естественно, на то, как отражается цвет.
-
Иначе как мы увидели бы эту царапину, если бы не влияло?
-
Да-да, плюс в неё попала грязь, она стала более тёмной, да, потому что в этой части, и она по-другому отражает свет. Интенсивность отражения упала, потому что она уже не полированная, не идеальная. И тебе это всё надо задавать, естественно, потому что иначе у тебя объекты будут, опять же, как графика из 90-х, где были такие красивые ёлочные шарики, и как бы они больше ничего сделать не могли. Это надо или взять из реального мира какие-то готовые ассеты, или отсканировать как-то, или нарисовать вручную, или есть генеративные методы создания всего этого. Это всё разные типы софта, которые это делают. Это половина проблемы. А вторая половина тебе надо на 3D объект объёмный, 2D штуку натянуть. Ну то есть, условно, у тебя есть, я не знаю, любой объект, я не знаю, тедди бир, да, медвежонок. Тебе его надо завернуть в бумагу плоскую так, чтобы у тебя не осталось швов, потому что с любой стороны... О господи,
-
как это вообще делается-то?
-
это отдельный софт делает. Потому что тебе надо, по сути, разрезать его в четко определенных местах, потому что есть люди, которые умеют этим заниматься, и они знают, где эти швы лучше. То есть персонажа его лучше сделать под рукой, под мышкой пропустить.
-
Это реально как одежда.
-
Ну, по сути, ты разворачиваешь его, и сделать, чтобы оно из 3D развернулось в 2D, но при этом не исказилось, потому что если у тебя полигон растянулся, то у тебя там вместо правильной текстуры будет какая-то растянутая текстура, это будет некрасиво.
-
Да-да-да.
-
А потом, да, потом начинается анимация, и все становится еще сложнее, потому что оно все еще двигается, и там отдельная история про то, как сделать, чтобы при движении все эти вещи опять же не растягивались, потому что ты сразу это увидишь, что у тебя там, я не знаю, клетки на рубашке начинают внезапно как бы себя очень странно вести.
-
О, Господи.
-
Вот это самая база, да, это лампа. А теперь представь себе персонажа, который органический, у которого не просто там краска, да, а у нас кожа, которая считается там из четырёх слоёв, потому что от того, сколько у тебя там крови под ней. У тебя есть subsurface scattering, да, например, ухо, если ты смотришь, сзади поставить лампу, оно будет просвечивать, внутри светиться, то Это свет, который попал внутрь твоего уха, и переотразился, и вылетел с другой стороны. есть... Потом у тебя есть всякие штуки с волосами, которые невозможно посчитать просто так, там своя история. У тебя есть анимации органики, тоже чудовищно сложная задача, потому что мы гнемся, и гнемся очень нетривиальным способом. То есть как бы сделать робота гораздо проще, чем сделать человека. У робота все жестко, да, у него есть шарниры, и все детали не меняют форму.
-
Даже про шарниры я как раз хотел спросить. Вот я видел, как в этом ролике лампа прыгает, и у нее сзади электрический провод. Заметно, что он компьютерный, потому что он качается одинаково, там волна как бы не затухает, как обычный провод.
-
Да, потому что волна... я уверен, что они делали это вручную, просто посадили аниматора руками, потому что не было софта. Сейчас есть софт для симуляции, как раз часть, частично чем я занимаюсь, который позволяет все эти сцены 3D, которые ты построил, попытаться посчитать, что бы с ними было. Естественно, с какими-то чудовищными упрощениями, потому что, опять же, ты не можешь все сделать но как бы себя вели реальные объекты с массой, с инерцией, с свойствами шероховатости, отскока и прочими прочими физическими свойствами, как бы себя эта штука вела? То есть аниматор тебе сделал эту лампу, а потом ты говоришь, вот отсюда до сюда идет провод, у него толщина такая, эта поверхность даёт отскок такой, Гнется он вот так вот. Да, то есть у него есть свойства жесткости, растяжения, всего вот этого. И давайте попробуем посчитать 100 кадров, что бы происходило. Получаешь какой-то первый результат, ты его делаешь еще какие-то итерации, пока он не станет более-менее убедительным. А потом режиссёр и говорит, клево, что ты все сделал физически корректно, но на самом деле я хочу, чтобы она сильнее прыгала. И начинается, есть правда, есть киноправда. Ему важно, чтобы она там больше двигалась или меньше. Ты начинаешь строить какие-то костыли, чтобы оно выглядело не настоящим, а убедительным. И это совершенно другая задача. У пленки есть свойство, как бы она инертна. В смысле, ей нужно время, чтобы переместиться, во-первых, с кадра на кадр, во-вторых, чтобы она восприняла нужное количество света. Поэтому у тебя возникает такая штука, как motion blur, да, смазанное движение. Если ты так к этому привык в кино, что если ты считаешь в компьютере и не делаешь эффект вот этого размытия, то это выглядит как мыльная опера, ну, как телевизор, когда слишком большой фреймрейт, и поэтому тебе кажется, что все как-то супер какое-то четкое, и нету ощущения фильма, нету вот этого вот cinematic look. Поэтому все эти вещи в компьютере, они же необязательны. Если по-честному читать, их бы не было. Их добавляют потом специальные алгоритмы, которые позволяют тебе сделать motion blur, добавить зернистость, добавить chromatic aberrations, испорченные радужные края, да, у четких граней. Поэтому куча всякого пост-продакшена, ну уже после того, как ты эту картинку посчитал, происходит еще, чтобы ее фактически испортить, да, но сделать то, к чему привык ты, вот, как человек. Я вначале, когда я начал этим всем заниматься, мне было странно. Ну то есть я вот сижу и делаю там секунду, неделю. И ты думаешь, блин, да почему ж так долго? Ну не должно быть это так долго, даже со всеми этими плюшками, которые для тебя уже сделали, всё равно долго. Потом я в какой-то момент понял, я сейчас делаю то, что делает команда в реальном мире, съёмочная, но они пользуются вещами, которые за них сделала сначала 20 тысяч лет цивилизации, а до этого 5 миллиардов лет развития Земли. То есть они берут камень, и он уже клёвый. Мне надо этот камень с нуля сделать. И так любой объект, который есть в кадре, сделать заново. Ну то есть понятно, что есть какие-то вещи, чтобы это все упростить, разделить между большой командой, они будут использовать какой-то софт, который позволяет что-то там ускорить, но все равно очень много всего. Ты как бы делаешь, по сути, от начала большого взрыва к моменту, когда ты этот кадр снял, всю работу. Вот, поэтому это занимает время.
-
Кайф. Слушай, ты нас сейчас провёл по вот этим шагам, типа 3D-модель, текстуры на него, дальше отправляем луч, смотрим, куда он ударился, посчитали его цвет, и ты сказал, что это работает, типа, не для всего. Ещё сказал, что есть физика, в смысле, есть физические движки, которые пытаются этот мир реально посчитать, как бы он взаимодействовал. Уже дофига шагов, но потом ты сказал, а у людей еще есть волосы. Вот я задумался, волосы же, наверное, тоже нельзя задать полигонами, да? Как их задают?
-
Ну как, читят, как обычно, да, все на читах. Там есть две части проблемы. Одна, как волосы себя ведут, а другая, как они выглядят. Так. Физика и картинка.
-
А, ты имеешь в виду вот этот развивающийся, от ветра, например, Да, движущийся.
-
ну то есть для начала тебе надо волосы посадить куда-то. То есть у человека там, я не помню какое количество, но довольно большое, там сотни тысяч волос. И их мы еще имеем привычку укладывать в какие-то прически, где-то делать короче, где-то делать линейно.
-
Они гнутся же, эти волосы, они же какие-то пружинистые.
-
Всё это надо описать, да, то есть они сами по себе имеют какие-то характеристики, ты с ними что-то ещё сделал, а потом с ними ещё что-то сделал, то, что ты там головой покрутил или, не дай бог, намочил их, что другая совершенно история. Что люди делают в компьютере, когда надо сделать чего-то много, а ресурс у тебя конечный? Ты упрощаешь задачу и, в частности, с волосами ты работаешь там, например, с тысячей волос, расставленных по голове, и управляешь ими, а потом все промежуточные интерполируешь между ними. И чем больше у тебя изначально их, тем, естественно, точнее поведение. То есть в играх это всё... Они делают патчи, то есть они сразу делают пряди, да, потому что они не могут посчитать. Ну то есть сейчас, как бы последние несколько лет всё стало лучше, но тем не менее всё равно как бы есть ограничения, не могут каждый волос по отдельности посчитать. То есть ты делаешь весь этот груминг и всё-всё-всё делаешь на каком-то небольшом количестве волос, которые потом симулируешь, как они себя там развиваются, что с ними происходит. А потом на рендере уже ты даже не хранишь это в... То есть у тебя нет кэша сохранённого 100 тысячами волос. Есть алгоритмы, которые позволяют тебе между этими всеми волосами посчитать тысячу волос между тремя, плавно интерполируя, опять же нелинейно, потому что линейная не работает, там своя главная боль. Вот, посчитать, где эти волосы будут располагаться, а потом тебе надо сделать еще шейдинг, да, то есть материал. Опять же, не те свойства, которые ты ожидаешь, потому что волос спирально, это трубочка, цвет у него на самом деле не просто задается, задается количеством какого-то гормона, не помню, меланин, что-то такое. Ты управляешь цветом на самом деле всего волоса, не RGB, а количеством вот этой хрени, которая в нем находится.
-
Ничего себе.
-
Она описывает все состояние от блондина к брюнетам через рыжих. Или поверх могут еще нанестись краска, которые тоже там свои делают истории. Вот, оно как-то по-своему преломляет, отражает свет, и задаются, и вот эта штука тебе считает волосы. Обычно это отдельный даже паз, то есть это отдельная часть, которая считается отдельно, потом накладывается. Короче, там головняк. Если говорить про такие штуки, кроме волос, есть ещё всё, что описывается волюмами. Огонь, дым, пар, пыль. Огонь полигонами очень трудно сделать, если это не стилизованное.
-
Мы так делали.
-
Ну, можно, конечно, да.
-
В квейке в каком-нибудь первом.
-
В первом квейке, я даже не помню.
-
Там есть взрывы, но они, мне кажется, двухмерные на самом деле все всегда.
-
Взрывы там, по-моему, да, там просто посчитанная какая-то анимация, которая на плоскую штуку, и партиклы какие-то. разлетаются. Кстати, партиклы тоже пример, который не полигональный. Например, дым или облако. Вот облако. Трудное его свойство описать и поведение полигональной...
-
Что-то я вообще не представляю, как его в картинке.
-
Это воксели. То есть есть пикселы, да, вы все знаете, есть пикселы, есть вокзалы, которые ты
-
берешь и говоришь... В точке в трехмерном пространстве.
-
Кубики, не точки, кубики.
-
Кубики.
-
То есть это элементы объема, которые так же, как пикселы в 2D, квадратики, которые собирают картинку, так у тебя некий параллелепипед, поделенный на кубы одинакового размера. Ты говоришь, что это облако, я не знаю, вокселей, что уже миллиард, а на самом деле этого мало. чтобы было достаточно деталей. И в каждом из этих вокзалов у тебя записана плотность, то есть сколько много вещества там. Плюс, если это цветной дым, то у тебя надо еще три таких же штуки, которым в каждом написано, какие у него… R, G и B. Если эта штука движется, каждому вокселю, чтобы следующий кадр посчитать правильно. То есть плотность, density должна перемещаться внутри этого объема. То есть у тебя есть еще три для velocity штуки, которые как бы x, y, z описывают. То есть огромный объем информации, просто чтобы хранить это. А потом очень, опять же, ресурсоемкая штука, потому что облако не зеркальное, оно не отражает свет, когда этот луч в него ударился, он улетел. Он через него проходит с сферой, условно, например, шарик. Все очень легко, ты считаешь луч в точке соприкосновения, и все, если он отразился. прозрачная сфера, окей, он прошел внутрь и отразился от второй стенки сзади. То есть у тебя на самом деле две точки на весь объект, это очень мало. А с вольюмом тебе надо протресить насквозь весь вольюм, каждый воксель, и собрать общую суммарную плотность. Эта как бы часть облака будет темная, а эта будет светлая. И это очень как бы ресурсоемкие штуки, которые трудно делать, поэтому они считаются... Ну как, по-честному они вообще не считаются, а считается какая-то упрощенная картинка, чтобы это выглядело опять же убедительно. И для огня то же самое. Там ещё есть светимость у огня, помимо как бы есть плавает/плывёт, а есть огонь, который симулируется как чёрное тело, которое есть температура, и от этой температуры зависит интенсивность света. Всё это непросто. Опять же, я во всём там говорю очень поверхностно. Я не знаю, как работают эти алгоритмы. То есть я знаю, что там, как оно в принципе устроено, но математики я даже близко не понимаю, оптимизации я не понимаю вообще, потому что это чудовищное, это отдельные как бы специальности. Люди сидят и там защищают свои математические диссертации на там описание поведения воды упрощенное, а потом не менее талантливые программисты берут эту штуку и делают, чтобы она считалась опять же там не столетия, а секунду.
-
Я понял, что каждый из этих шагов, которые ты описываешь, это типа отдельная программа, а скорее всего область вообще знаний, в которой есть свои ученые, свои программисты и свои компании, которые на этом зарабатывают миллионы.
-
Да, да, да.
-
Окей, мы с тобой примерно разобрались, как сделать один кадр. Это реально прямо считается каждый отдельный кадр, а потом они склеиваются один за другим, и это типа и есть видео, или там еще есть какие-то дополнительные фишки для того, чтобы это выглядело как видео? Ну, чтобы это выглядело как движение?
-
Ну я говорил про motion blur, но в принципе классическая анимация, вот у тебя в первом кадре шарик тут, во втором тут, третьем тут, вот тебе все эти кадры надо посчитать. Естественно, ты не делаешь анимацию для каждого кадра, ты делаешь опорные ключи, то есть keyframes, что опять же пришло из классической анимации, потому что слишком дорого было садить крутого аниматора рисовать все промежуточные кадры. Disney это сделал как цеховую работу, где у тебя дорогой человек сидит и делает там каждый 12 кадр, например, а джуниоры сидят и между ними рисуют как бы промежуточные. Сейчас это делает компьютер, но тем не менее все равно это делать нужно. Все промежуточные штуки надо посчитать. То есть у тебя рука была здесь, через секунду она здесь. Ты можешь как бы нарисовать вручную 24 вот этих вот положения руки, а можешь задать первый, последний и кривую скорости, по которой она должна. То есть она начинается медленно, потом опа, резко остановилась.
-
Это про изменение сцены ты имеешь в виду.
-
Да-да-да, вот. Ну, рендеришь ты каждый кадр в отдельности, но, во-первых, есть вещи для ретайма, для замедления, которые optical flow, то есть у тебя было два кадра, например, или больше кадров, анализируется и смотрит, пытается, по крайней мере, в софт разобраться, какой пиксел конкретный, какое место переходит в следующей картинке. Рисует карту направления и скорости движения каждого пиксела в кадре, и ты можешь тогда взять и оставить первый кадр, ну, следующий, а между ними попытаться, например, вставить 10, которые интерполяции делаются. Да-да-да. насколько умный твой алгоритм и насколько вообще реально это сделать вообще физически, он может более-менее достоверно что-то сделать. Сейчас всякие ML-штуки появились, которые тоже пытаются эту задачу решать, и в принципе неплохо. Но опять же, это зависит от того, что происходит. То есть если у тебя движение плавное, то его замедлить легко, потому что найти разница небольшая и понять, что происходит. Если у тебя в кадре машина, у нее только нос въехал в первом кадре, а в следующем кадре к следующим кадрам. Она так быстро ехала, что у тебя только заднее колесо осталось. Никакой ML тебе не поможет. Посередине надо придумать машину. То есть только вручную можно сделать. То есть там есть всякие... Но, чтобы ты понимал, в это все вкладывается много ресурсов, потому что каждый кадр, который ты не рендерил, а посчитал каким-то другим способом, стоит дешевле. Потому что тебе не надо было считать и не нужно было занимать эти мощности. Когда ты делаешь 10-секундный ролик— это без разницы. Когда у тебя production, который считает кино или там анимацию большую, каждый 5% того, что ты сэкономил,— это огромные ресурсы просто, непотраченные. Поэтому все эти R&D-департменты стараются все сделать. То же самое с upscale происходит. То есть зачем считать 4K, если можно посчитать 2K, и у тебя есть суперкрутой алгоритм, который у тебя это растянет в два раза. То есть тебе надо, по собственности, в 4 раза меньше пикселов считать, правильно? И, соответственно, в 4 раза сэкономят время обсчета.
-
Я очень тебе благодарен, что мы столько времени убили на теорию базовую. Мы поняли примерно, как это устроено под капотом. Теперь я хочу поговорить о твоей реальной работе. Чем ты занимаешься? Можешь привести примеры своих проектов?
-
А я в авторемонте. Я просто перед подкастом википедию почитал. Мне трудно, на самом деле, сказать, чем я занимаюсь, потому что я много чем занимаюсь, но все это связано с компьютерной анимацией, я полагаю, и дизайном в 3D. Но если совсем грубо, то за что мне платят студии? То есть последние 10 лет я живу в Нью-Йорке, работаю с местными компаниями, в смысле большая часть Лос-Анджелеса (LA) чуть-чуть из Канады. И я в моушене, я в рекламе и моушене. Моушен— это сокращенно от motion design— это 3D-анимация, которая не пытается быть, во-первых, мультиком, ну, человечком, который что-то делает, и которая не пытается быть спецэффектами, то есть это не горящий огонь.
-
Не пытается сделать вид, что это реально.
-
Да, это где-то посередине. То есть это оживший дизайн всяких разных видов. Ну, естественно, это как суперобщая штука. Сюда попадает очень много всего. И 2D дизайн, когда у тебя там кубик прыгает по экрану, и при этом он там в какой-то момент раскладывается в логотипе. Это все сделано вообще в 2D. Это все равно моушн дизайн, потому что дизайн и моушн. И то, что, я не знаю, там вот последнее делал там для Foundation, например, я делал титры открывающие, где там десятки миллионов партиклов, которые красиво летают, но это все равно нереалистично.
-
Это супер-сериал от Apple, супер-блокбастер для платформы Apple TV. И ты здесь делал для него открывающие титры.
-
Ну, естественно, я не один был, это команда была, я был частью команды, которая это делала. See (сериал See), вот для второго сезона тоже... Джейсон
-
Момо такой, тоже один из флагманских сериалов.
-
Да, тоже Апловский. Для них тоже делал открывающие титры. Причем это разные студии, но как это так совпало? Ничего себе. Это был год, где было много титров. Но в принципе много всего происходит в рекламных роликах, где нужны и спецэффекты, и вот этот мошен дизайн. То есть все эти модные штуки, когда там что-то складывается, раскладывается, летает, собирается, растет.
-
Погоди, пожалуйста, вот Apple очень любит показывать, как у них там ноутбук раскладывается на клавиши и внутри него что-то крутится, это тоже ты?
-
Ну, в смысле, как? Это тоже motion design, естественно, но его лучше сделать руками, потому что, ну, ты
-
просто... Реально фотографируешь эти объекты и двигаешь?
-
Не-не-не, в смысле, оно... Нет, ничего ты не фотографируешь. Естественно, CAD-модели, которые потом пришли от вендора, ну, от производителя, которые на самом деле потом испортили. Есть отдельная профессия внутри этих компаний, потому что отдавать CAD, чтобы они не повторили 3D-конкуренты.
-
Ничего себе!
-
Они их портят, что делают из них полигональные, но немножко неправильные, которые хорошо выглядят, но при этом они из них... Нельзя
-
использовать для обработки машинами, в смысле.
-
Да, для производства. Для них всех делаются материалы, делается свет, делается контроль там всего-всего, чтобы они выглядели суперубедительно. В Apple там сидит свой внутренний отдел, которым этим занимается большая команда. Плюс они что-то заказывают на сторону и выкручивают руки, чтобы оно все выглядело точно так же, как у них, только сделано было 10 раз быстрее. Там много всего происходит. Но если говорить про эффекты, вот такой вот motion design, если бы нужно было этот ноутбук сделать и позвали бы меня, то меня бы, скорее всего, позвали. А вот у нас по плате полетели маленькие источники света, которые собрали в центре и красиво разлетелись, и это вот наш процессор, куда мы залетаем внутрь, и там все собралось из маленьких полигонов, что-нибудь еще. То есть это, скорее всего, вот что бы делал я. То есть это что-то
-
нереалистичное, но при этом такое, что ты смотришь на это с открытым ртом и думаешь, нифига себе, как красиво.
-
Да, и что обычный аниматор руками будет делать вечность. Ну то есть если бы меня посадили анимировать человеком, мне бы примерно столько же потребовалось времени, я бы не смог, потому что это другая специальность. Также и классический аниматор не смог бы все эти там миллионы партиклов правильно сделать и проконтролировать. Я могу прислать какие-то ссылки на ролики, которые характерные. Это, в принципе, называется спецэффекты, то есть FX тоже. Но это не взорвавшийся дом и не летающая тарелка, врезавшаяся в небоскреб. То киношный спецэффект, а это спецэффекты для motion design, скажем так. Есть клиент, я не знаю, BMW. Решил, что ему нужен ролик про машину. В ролике половину времени машина будет есть настоящая, а половину времени она будет не настоящая, и еще что-то с ней происходит такое клевое. Машина едет и собирается из деталей, а каждая деталь собирается из молекул карбона, сплетается это всё в чудесный кузов, как бы она вот у тебя на глазах прямо вырастает, и потом уезжает в закат с Илью за ней, допустим. Они нанимают продакшн, ну если это съёмочный ролик. Большая часть денег идёт на реальные съёмки, потому что там всё очень сложно, там много профессий, у которых есть профсоюзы, они держат стоимость, там своя отдельная, опять же, но продакшн нанимает постпродакшн и говорит, вот у нас минутный ролик, мы уже 40 секунд сняли, а тут 20 секунд надо графики. В конце концов, это все приходит в постпродакшн.
-
Что ты делаешь? В чем ты работаешь? Можешь немножко рассказать?
-
Я работаю в софте, который называется SideFX Houdini, которому уже, наверное, лет 30, и он постепенно становится более человечным, открывается последние лет пять лицом к людям. Про него ходили всякие мемы внутри 3D среды, что это вещь, которую, типа, невозможно освоить, что она бесчеловечная. всё стало гораздо лучше, то есть последние лет 5-7, такой экспоненциальный у них рост и в юзабилити, и в количестве главной информации, туториалов, всего прочего. Вот, это софт, с которым я работаю. Мне приходит storyboard, я разговариваю с... Storyboard—
-
это типа кадры отдельные, нарисованные фломастером, типа...
-
Да-да-да, это отдельная профессия, очень классная на самом деле. Человек, который по текстовому описанию или по очень чудовищному storyboard'у от агентства может сделать красивые storyboard'ы, которые уже понятны всем остальным и дают как бы общее направление.
-
Это типа ключевые кадры ролика или там этих 20 секунд, которые тебе нужно сделать?
-
Да, оно все поделено на шоты. Ну вы знаете, что шот, да, есть единица, то есть есть у тебя кадр один, а есть шот, когда у тебя непрерывная камера, потом склейка, и начинается следующий шот. То есть для каждого рисуется один, или если там он сложный, там какой-нибудь суперотлет, то может быть несколько сторибордов, ну этих картинок, чтобы объяснить все. Режиссер тебе объясняет, что он, собственно, хочет получить. У него есть картинки какие-то из других роликов или чего-то, что он считает визуально как бы важно. Или картина какая-то, ну то есть что-то, что он хочет притащить какие-то свойства оттуда. Говорит, вот на то не смотри, а смотри на вот это. То есть, например, вот у Си было, что режиссер увидел какого-то художника, скульптора, который делал бетонные скульптуры с арматурой внутри, а потом расфигачивал их молотком, и частично оставался бетон, как бы, а частично оставалась арматура внутри. Это была одна картинка там среди многих, которая вот типа, вот мне это нравится. И из этого родилась история про вот эту в ролике кожу и эти нити, которые под ней растут, потому что это не один к одному, естественно, то, что было в референсах, вот, но некое поэтическое переложение. Смотря на какой стадии тебя позвали, если еще ничего нет, то ты просто сам придумаешь себе этот кадр, ну, в смысле, у тебя есть storyboard, ты примерно ставишь, вот тут будет машина, тут вот так вот будет ехать камера, и пробуешь делать какое-то количество итераций, пока не добьешься, чтобы у тебя это выглядело хорошо. промежуточно каждый день показывая все этой цепочки, которая над тобой, которая может быть маленькая, из одного режиссера может быть несколько слоев. Они это все смотрят, тебе как-то дают фидбэк, ты это все вносишь, и в конце концов оно становится в том виде, в котором это можно показать агентству, а потом агентство делает какие-то правки, а потом это можно показать клиенту. Если коммуникация нигде не сломалась посередине, то, в принципе, все идет гладко. А если сломалась, то много всего переделывать надо.
-
Можешь, пожалуйста, привести какой-то конкретный пример, когда условно вот эти там, не знаю, 20 секунд анимации я делал там 3 месяца. То есть это всегда один к одному мапится? Типа сложить описание схемы и сложить ее реализация? Или это совсем нелинейная зависимость? Можешь какие-то примеры привести? Очень интересно.
-
Нелинейно? Нет. Ну, конкретику давайте. Вот фандэйшн титры, я на них проработал, по-моему, два с половиной месяца, если я правильно помню. По-моему, это было порядка шести недель. Из всего фандэйшна там, по-моему, было пятнадцать шотов отдельных сцен, да. Я, так получилось, сделал девять. Еще два других FX-артиста, соответственно, сделали по три. Вот, потому что они делали, с одной стороны, что-то делали более сложное, а с другой стороны, делали существенно медленнее, чем я, потому что они так работают. Ну вот, примерно такой порядок. Всё это вместе, я не знаю, сколько минут занимается, я над этим работал два с половиной месяца. Чтобы вы понимали порядок, никакой линейной связи нету. Может быть простейшая какая-то простая анимация, которую ты можешь, во-первых, сделать за день как бы весь этот pipeline алгоритм, а потом она может тебе там пять минут видео сгенерировать. Я не знаю, если это какая-нибудь в фойе небоскрёба, где должна там вода стечь и течь, и течь, и периодически собираться в слово, название компании. Я глупый пример привожу, но тем не менее.
-
Нормальный. Вполне могу себе какой-то заказ представить.
-
Вот. И ты просто один раз эту штуку настроил, потом она 5 минут генерирует тебе падающую воду, и одну минуту генерирует слово. А слово можно поменять, потому что это по сути одна нода, которая делает геометрию слова. Это один экстремальный пример, где у тебя много времени.
-
И дешево.
-
Да. Может быть, обратный пример, когда там, я не знаю, я помню, не из моей практики, но в каком-то из терминаторов была сцена, где красивая девушка внезапно на середине любовной сцены превращается в робота, раскладывается в какую-то фиготень. И они полгода занимались этим шотом. и это был не один человек, а шот там, я не знаю, 10 секунд. Сдача может быть даже сложностью и не в том, что типа тебе надо сделать что-то сложное, а если чем дальше ты уходишь в сторону чего-то, что еще не было, тем, значит, на меньшее количество вещей ты можешь опереться, значит, тебе больше надо придумывать, как сделать, и больше тратить времени, чтобы то, что ты сделал, выглядело хорошо. То есть как разрушится небоскрёб, уже есть миллион вариантов, все насмотрено, есть тулы готовые, есть туториалы, есть люди, которые специализируются на ломающихся небоскребах. И поэтому, ну я серьёзно, как бы, это RBD-симуляции, они умеют это делать офигенно. Там свои сложности, это непростая задача, но они умеют это делать. Поэтому если посадить меня, я, наверное, через несколько лет смогу сделать то же самое, что человек сделает за там неделю, потому что он уже знает. А есть задачи, которые никто не делал. Ну вот как девушка, которая превращается в трансформера. То есть её сделать можно миллионом разных способов, и неизвестно, какой нужен режиссёру. Он не в состоянии это прокоммуницировать, потому что нечего показать. Он только на пальцах показывает, что у него там шипы вырастают. А артист делает шипы, он говорит, нет, не так вырастают. Нет, это не те ошибки. То есть огромное количество итераций, откуда полгода берется. Вот, поэтому, да, зависимость крайне нелинейная.
-
Скажи, пожалуйста, а это похоже на моё программирование, когда я задал программу и самое сложное— это задать программу, и дальше есть всякие шутки про то, что вот есть языки, которые долго компилируются, есть, которые медленно компилируются. Или ты вот как бы задал всё, а потом ушёл, и оно пошло считаться, там, неделю считается, чтобы эти кадры красивые получились.
-
Это от профессионализма считающего зависит в первую очередь. Ни одну из этих ресурсоёмких задач нельзя решить в лоб. Или можно, но она будет считаться нерациональной количеством времени, то есть ей никто не даст полгода на расчёт кадра. Ты можешь сделать сцену, которая будет выглядеть... результат будет выглядеть одинаково. но если ты умеешь делать это все правильно и хорошо, и ты крутой, и делал миллион раз это, оно будет считаться там 30 секунд на кадр, а придет джуниор, который сделает визуально то же самое, но у него кадр будет считаться в сутки, а потом ты эти два кадра поставишь рядом, и они будут идентичны полностью, потому что он не знает, где можно схитрить, какие части можно отбросить вычислений, как
-
можно... пожалуйста, то есть это не про теоретическое вычисление, а это именно про то, что ты делаешь day-to-day?
-
Это микс того и другого, естественно. То есть самый банальный пример. Вот у меня Foundation, да? У меня в сцене 10 миллионов партиклов, например. В зависимости от того, обрежешь ты партиклы, которые не попали в кадр, перед тем, как отдавать кадр на рендер, или не обрежешь, у тебя скорость на порядок поменяется. То есть это банальный пример, это все делают. Естественно, все обрезают, потому что иначе как бы ты не посчитаешь быстро. Но формально кадр у тебя останется идентичным. Ничего вообще, пиксел-пиксел. Но один считается 10 минут, другой минут. Вот мы сейчас про симуляцию говорим, есть еще рендер, да? То есть ты считаешь стекло там с 64 внутренними переотражениями или с 4. И для разных сцен достаточно 4. То есть 64 будет выглядеть на 1% лучше, никто его не увидит. Или там... замоделить персонажа целиком или только его голову и один кроссовок, который попадает в кадр. Это огромное количество решений, которые влияют на стоимость производства этих должных предметов. Но даже когда ты всё это сделал, даже если ты идеальный человек, он всё равно занимает время, и всё равно это время существенное. То есть даже если ты мега-специалист, всё равно небоскрёб не складывается за секунду об счёт, а он складывается за сутки или за год. И чтобы эти сутки сделать менее болезненными, существует и для рендера есть рендер-фермы, и для симуляции есть фермы, которые умеют быстро как бы считать и не забивать твой компьютер. Более того, ты считаешь с физическими симуляциями обычно кучу вариантов. Вернусь к небоскребу, ты вылетел кирпичик с этой стороны или с этой стороны, он упадет в разные стороны.
-
А, и ты пробуешь разные варианты, выбираешь те, которые более красиво выглядят?
-
Да, ты или делаешь это вручную, или ты смотришь, много ли влияет на прочность, я не знаю, насколько жесткие внутренние конструкции. И ты смотришь, типа давай попробуем условно от единицы до двух, восемь вариантов запускаешь. Проблема в том, что симуляции невозможно считать параллельно, потому что каждый следующий кадр зависит от предыдущего. То есть оно не распараллеливается. Ты можешь сделать восемь отдельных симуляций, Каждая будет считать от начала до конца разваливание всего здания с разными параметрами. Но ты не можешь восемь компьютеров заставить считать одно. Невозможно в этом смысле параллельное сделать, к сожалению. Ну и вот всякие такие штуки происходят. Да, ты все отправляешь, и часть работы хорошего FX-специалиста в том, чтобы этих отправлений было мало, и он очень быстро приходил к нужному решению, что, собственно, опыт и знания тебе позволяют быстрее с точки А в точку Б прийти.
-
А сколько в результате стоит кадр, или секунда, или ролик? Можешь как-то прикинуть?
-
Сколько угодно. Ну, сколько стоит программа.
-
Ну, это можно посчитать.
-
Ну, ты можешь сказать, конкретно у тебя в твоей студии или там, похожей на твою студию, с таким количеством людей, которые нужны для вот конкретно этой задачи, класса задач. Поэтому ролики по-разному стоят. Есть ресурсоемкие задачи, которые ресурсоемкие не железа, а человека. И чем выше стоимость конкретно таких специалистов, тем, естественно, у тебя все становится дороже. То есть обычно 2D-анимация стоит дешевле, чем 3D-анимация, просто потому что 2D может там в одиночку зафигачить. 3D уже, скорее всего, То есть что-то можно сделать, а, скорее всего, у тебя начинается разделение. Если это 3D-анимация со спецэффектами, то это ещё как бы... А если это анимация с 3D-спецэффектами как часть большого многоминутного проекта, то у тебя накладывается большой объём менеджмента всего этого. То есть как бы возрастается количество юнитов, которые работают, начинает строиться эта бюрократия вокруг, которую надо кормить. И оно всё растёт экспоненциально. Ролики, на которых я работаю, ну, обычно это между тремястами тысячами долларов и миллионом. Ну, общий бюджет. Это не мои деньги. Спасибо боже. Вот, но и что вы понимали, маржинальность мизерная в этой индустрии, то есть там 5-7% у студии, если они могут заработать с этих денег, это считается классно. Просто очень много людей, очень много времени, и это очень дорогие люди.
-
Спасибо огромное, прям очень классно рассказал, как это устроено. Мне интересно, как ты начал.
-
Я сначала был графическим дизайнером, потом я ушел в интерактив, веб, и оттуда ушел в motion. При этом параллельно я продолжал делать 3D все время. Пытался, типа, логотип, а давайте в 3D сделаем графику, чего тогда никто не делал. Для MTV делаем сайт, а давайте у нас будет сайт, где будут взрываться и пришельцы прилетят. И мне удавалось это все пропихнуть. Потом я ушел в Motion, а из Motion был знаковый момент. Я увидел софт, который назывался SoftImage, который впоследствии купил Autodesk, это большая компания, которая занимается производством 3D всякого софта. И через пару лет после того, как купил, как любят корпорации, раздербанило все отделы. закрыл. Но я когда увидел, что там можно делать, я влюбился просто, насколько это круто выглядело. Я пересел в этот софт, а потом я приехал в Нью-Йорк и первую работу получил как раз из-за того, что я это умел. То есть на тот момент в Москве я жил, я уже был креативным директором, арт-директором, то есть я в принципе мог из любой студии уйти в любую, меня знали и хотели. Вот приехал я в Нью-Йорк и нашел работу в не джуниора, но синьора, как бы, ну, внизу в пищевой цепочке опять, и не как дизайнер, а как художник по визуальным эффектам как раз. Собственно, вот то, что я знал этот софт, мне помогло получить какие-то вещи. Потом я за четыре года заново рос. Мне первый год надо было убеждать всех вокруг, что я не только могу частицы двигать, я могу вам, типа, гораздо больше сделать. Дайте мне поучаствовать в питче, дайте мне, я хочу делать дизайн, дайте мне рендерить, типа, дайте, дайте, дайте, дайте. Там было достаточно вменяемое руководство, которое меня услышало, начало давать мне постепенно какие-то проекты. К какому-то моменту я уже креативный директор на найковском ролике был, и потом я получил свою green card. Я больше не был привязан к работодателю, и как только я получил green card, в этот же час, на самом деле, я получил письмо и написал, что увольняюсь. Потому что это я уже наелся, я просидел в студии почти пять лет, и для меня это очень много обычно, я каждые два года менял. И я ушел на вольный хлеба заниматься тем, чем сейчас занимаюсь в разной степени как фрилансер. И считаю, что это лучшее, что со мной произошло на самом деле. Потому что когда ты фрилансер, тебя зовут только когда ты нужен, на твоих условиях.
-
с интересными задачами, если ты можешь выбирать.
-
Да-да-да, то есть ты в состоянии, когда ты накопил какую-то подушку, ты не берешь за каждый заказ, ты знаешь, что типа, ну, эти не пришли, через неделю придут другие. Я месяц могу просидеть. Окей, два месяца я просижу, но я буду делать проект, который потом положу в портфолио. Я на нем заработаю на самом деле больше, чем я бы, если бы два месяца делал плохие проекты. И у меня еще будет потом буст какой-то, я там какие-то призы получу или публичность от этого проекта. И фриланс в этом смысле классный.
-
У меня есть три последних вопроса. Представь, я парень в Симферополе, кому-то я послушал и понял, что я очень хочу попробовать это делать 3D с программированием. С чего мне стоит начать?
-
К счастью, если тебе не 43, как мне, а тебе 20, ты, значит, родился в золотой ренессанс диджитала, когда есть суперкрутой софт, с одной стороны, А с другой стороны, безумное количество бесплатных туториалов. Люди рассказывают, делятся, их много. То есть кроме желания и таланта не нужно ничего, даже денег не надо. Просто садишься, открываешь, есть как эти учебные лицензии, тебе не надо покупать лицензию, ты покупаешь как бы себе Ничего себе, то
-
есть даже крякать отцов не надо?
-
Ну, в смысле, у него, естественно, есть ограничения, но там есть, например, если ты полностью не коммерческая, то у тебя там будут какие-то одни ограничения. Если ты инди-студия, которая зарабатывает меньше 100 тысяч долларов в год, а, в принципе, я думаю, все начинающие сюда хорошо ложатся, тебе лицензия будет стоить там что-то под 130 долларов в год. Это 10 долларов в месяц, это может позволить себе любой, и у нее практически нет ограничений.
-
Во-первых, софт. Надо, значит, скачать Houdini себе поставить.
-
Ну, если ты тогда собираешься делать именно то же самое, то да. Но есть огромное количество другого 3D-софта. Есть бесплатный, есть Blender, который там сейчас люди делают, он open source, который суперактивно развивается. То есть этого всего много. То есть Entagma, которая, например, делает курсы, у них есть часть, которая бесплатная, есть, которая по подписке через Patreon. Есть еще отдельные люди, которые по всем, например, таким эффектам, которые вот именно там, rigid body dynamic, вода, взрывы, огонь. Есть чувак, который, по-моему, то ли из ILM, то ли откуда-то ушел, и вот занимается исключительно туториалами. И он делает лучшие, как бы самые понятные, самые крутые, и при этом production-ready, потому что он прошел всю эту школу. Ну и плюс никто, если вам совесть позволяет, всё есть на торрентах. Всё вообще. Всё, что выходит, всё есть на торрентах. Если вы считаете, что вы потом вернёте сторице и сумели с собой договориться, ну качайте. Огромное количество информации доступно. Её даже слишком много, то есть в этом своя сложность.
-
Ссылки на два самых классных ютуба будут в описании к этому эпизоду. Скажи, пожалуйста, мы достигли уже плато в развитии компьютерной графики или стоит ждать прорывов? Вообще, куда развивается компьютерная графика и motion design в частности?
-
Плато, я не уверен, что существует, потому что что происходит? Появляется более мощное железо, появляется более крутой код, мы начинаем делать более сложные, красивые, реалистичные вещи, и синхронно растут запросы продакшенов и зрителей. Раньше достаточно было этой анимационному динозавру пройтись, которого такого размера, перед камерой, и все падали в обморок. Или в самом начале достаточно было поезду просто приехать к камере, и это уже был взрыв мозга. Сейчас средний человек жрет попкорн и говорит, что-то в спайдер-мене эффекты типа не алё, в Марвел что-то уже не тот. Запросы меняются, и это бесконечный, я думаю, процесс. Окей, сейчас начали делать всё убедительно, теперь надо делать вместо одного шота с взрывом, надо делать 100 шотов в фильме, а потом надо будет делать в стерео, а потом надо будет делать в 3D с любой точки, а потом интерактивное, чтобы оно менялось, а потом в реальном времени надо будет, чтобы оно у тебя в VR работало. Ну то есть запросы экспоненциально растут вместе с технологиями, плато нет и не будет. Я вижу, что идет интересный процесс, что игровые движки начинают делать настолько хорошо, что оно, в принципе, начинает быть сопоставимо для некоторых задач с тем, что делает кино. Ну, в смысле кино и реклама. А кино испытывает давление от все более сжимаемых сроков и требований к качеству при этом растущих, что они стараются делать, чтобы итерации были быстрее. То есть идет какая-то конвергенция этих двух сторон, сближение.
-
А есть еще примеры, когда в кино используют движки типа Unreal, вот последнего, вот эти самые красивые?
-
Да-да-да. Ну, во-первых, есть виртуал продакшн, про который мы ничего не говорили, но это когда у тебя актёры живые, а всё, что сзади происходит, это Unreal, например. И он синхронно с тем, как у тебя трекается, как у тебя движется камера, а на этом экране синхронно всё это окружение тоже поворачивается, оно даёт правильное освещение на актёрах.
-
Блики и вот это всё.
-
Да, всё-всё суперкруто. Там есть свои минусы, есть свои плюсы, но это всё равно... То, как Мандалорцу
-
сняли, я так понимаю.
-
Да, но Мандалорец был не первый, но они первые, опять же, двинули это в массовое сознание. В какой-то момент оно всё должно слипнуться в какой-то убер... И будем играть в
-
игры, в которых графика будет как в фильмах?
-
Да, то есть, с одной стороны, это будет игра, но с другой стороны, это будет кино, потому что оно будет выглядеть как кино, но ты можешь задавать поведение, и оно будет вообще сделано, таргетировано только под тебя, потому что ты любишь с Меган Фокс Трансформеров смотреть, а твой друг с Джулией Робертс.
-
А-а-а, вот это страшно, вот это реально страшно.
-
Ну, в смысле, рано или поздно произойдёт вопрос, будет ли оно нужно, но туда всё идёт, то есть кадр будет индивидуальный.
-
Когда Технарея остановила вопрос, кому это нужно, типа, потому что я могу.
-
Да-да-да.
-
Последний мой вопрос. Мы весь разговор обсуждаем компьютерную графику. Я хочу оставить в описании к эпизоду ссылку на любую твою собственную работу, которой ты гордишься. И еще ссылку на видео, которое показывает пределы вообще текущих возможностей motion design.
-
За foundation я получил Emmy, как бы nomination. Не award, но nomination. Первый раз в жизни. Вот телеакадемия признала нашу коллективную работу достойной номинацией. Но уже хорошо.
-
Это первый ролик. Второй. Что показывает пределы текущего motion design? Что классного?
-
Super Bowl. Понимаешь ли, что еще? Огромное количество эффектов ты даже не видишь. То есть это то, что называется invisible VFX, который делает эту картинку картинкой, но ты не в состоянии даже отличить и понять, что это эффект. Как бы там заменили весь город сзади, добавили тут того лицо актера, заменили. Он вообще не умеет поднимать ногу, поэтому это вообще анимация дублера CG, а не его. И как бы там от кадра остаётся съёмочного-то ничего, кроме параметров камеры, которая была использована. И потом оператор получает за лучшую операторскую работу приз.
-
Я слышу твою боль.
-
Нет, это реальная история. Оскара за... Помнишь Life of Pi? Где этот тигр, индийский мальчик, и оператор получил Оскара. Студия визуальных эффектов тоже получила Оскара, но после награждения закрылась, потому что они обанкротились в процессе. А оператора, ну чтобы ты понимал, он снимал как бы мальчика на хромакее большую часть времени. Вот его гениальная операторская работа. Это некрасиво очень было на самом деле. Но да, то есть много всей этой работы не видно. Конкретный ролик, это будет мега субъективно.
-
Ну давай-давай. Я поэтому тебя и хочу.
-
Давай я посмотрю и пришлю тебя.
-
Спасибо тебе огромное. Очень вообще классный разговор.
-
Это подкаст Студии Либо-Либо, и мы его сделали вместе с сервисом онлайн-образований Яндекс Практикум. Над подкастом работали редакторка Маша Агличева, продюсерка Настя Медведева, звукорежиссер Юрий Шустицкий. За джингл спасибо Алексею Зеленскому.
-
Редактор субтитров А.Синецкая Корректор А.Егорова