Секреты и приемы использования компьютерной графики в кино и на телевидении

В этой статье речь пойдет о компьютерной графике (в основном 3-мерной) и профессиональном ее применении для создания реалистичных спецэффектов, по возможности неотличимых или трудноотличимых от реального видео. Для начала хотелось бы совершить небольшой экскурс по нескольким основным 3-мерным программам, используемым сегодня профессионалами по всему миру. Сразу оговорюсь, что данные материалы не являются учебным пособием по тому или иному пакету, т.к. для этого есть специализированная литература.

Целью данной статьи является ознакомление несведущей в данных вопросах части аудитории, но интересующейся ими. Профессионалы также могут почерпнуть из этого материала массу полезной информации в виде идей и способов применения отдельных функций программ для своих нужд.

На данный момент существует множество пакетов для создания 3-мерной компьютерной графики и анимации, имеющих свои достоинства и недостатки. Не буду развивать полемику на тему, какой пакет круче, т.к. приверженцев того или иного программного обеспечения имеется великое множество, и у каждого пакета есть свои положительные и отрицательные моменты, могу лишь выразить собственное мнение и привязанности к конкретному набору программ, основанные на логических измышлениях и личном опыте.

Из существующего обилия графических программ, присутствующих на рынке графических технологий, сразу можно выделить нескольких фаворитов: это такие пакеты, как MAYA, 3Dstudio Max, SoftImage, Light Wave. Помимо этих пакетов, конечно, существует еще огромное количество графических программ, таких, как: Rhino, NUGraphRenderer, BMRT, RenderMan, Houdini, и прочие., но о них, я думаю, говорить не стоит, т.к. эти программы, в основе своей, не получили широкого применения пользователями в нашей стране в силу своей узкой специализации, хотя эти и некоторые другие программы нередко используются специалистами, работающими на телевидении.

Итак, давайте по порядку

Конечно, MAYA — это бесспорный лидер, программный пакет, обладающий огромными возможностями, первый доступный для PC-пользователей, профессиональный графический набор инструментов, позволяющий достичь нового уровня качества анимации и визуализации сцен. MAYA имеет огромную историю, объединяя в себе возможности таких монстров, как POWER ANIMATOR, SOFTIMAGE и множества других графических пакетов, ее возможности практически безграничны, и говорить о ней можно очень долго. К сожалению, MAYA имеет ряд отрицательных сторон, которые не позволяют ей на данный момент занять лидирующее положение в линейке популярных 3-мерных программ в России. Во-первых, ее системные требования: min128MB RAM и хотя бы PII400 — это для нормальной работы и создания сцен весьма средненькой (по голливудским меркам) сложности. Во-вторых, возможность работы только под Windows NT на PC также никак не может положительно сказаться на росте объема продаж. Ну и самое главное, пожалуй, (по крайней мере для России) это ПОЛНОЕ отсутствие какой-либо русской литературы. Исколесив пол-Москвы и побывав во множестве книжных магазинов, мне так и не удалось найти ни одной книги по данному пакету. И это притом, что пакет является одним из самых сложных (если не самым сложным) из тех, что мне когда-либо приходилось встречать. Дело даже не в понимании каких-то функций, а просто-напросто в их обилии. Несмотря на сказанное выше, хочу отметить, что все большее количество пытливых умов у нас в России пытается методом научного тыка овладеть функциями этого замечательного пакета, в чем хочется искренне пожелать им успеха. Хотя я все-таки надеюсь на появление в скором времени необходимой технической литературы.

Хотелось бы особенно выделить один из пакетов, являющийся на сегодняшний день первым по уровню популярности не только в России, но и во всем мире:

3D Studio MAX

История 3DSMAX достаточно молода и берет свое начало где-то в конце 80-х. Несколько талантливых программистов из разных городов США, именующих себя Yost Group, объединили свои усилия с целью создания первого профессионального 3-х мерного графического пакета на платформе PC. 1-я версия 3Dstudio для MS-DOS… Тогда это был прорыв, и все компьютерные журналы взахлеб писали о новых возможностях, открывающихся для платформы PC. Потом были 2-я, 3-я и 4-я версии 3Dstudio для системы MS-DOS, пакет имел большую популярность и даже стал понемногу использоваться на телевидении и в кино-видеопроизводстве, сначала робко, но с течением времени все более и более закрепляя свои позиции на рынке программ создания компьютерной графики для кино-видео индустрии. Возможности пакета постоянно расширялись за счет написания специальных дополнительных процессов, добавляющих различные, новые функции (они назывались IPAS Process). Для платформы PC это было просто сногсшибательным результатом. К сожалению, 3Dstudio для DOS имела ряд существенных недостатков, не позволяющих этому пакету в то время тягаться с продуктами Alias/Wavefront для компьютеров SGI. В числе этих недостатков выделю, в первую очередь, ограничение на объем используемой памяти (до 64-х Мбайт). Помимо этого, пакет был не очень производителен в работе с точки зрения интерфейса. Я думаю, каждый профессионал, работавший когда-то с 3DS для DOS, с ужасом вспоминает эти длинные, иерархические контекстные меню, которые приходилось колесить вдоль и поперек для выполнения тривиальных, на сегодняшний взгляд, операций.

Наконец, в середине 90-х я прочитал статью в одном из компьютерных журналов о появлении уникальной программы для платформы PC под управлением Windows NT (тогда 1-я версия 3DS MAX работала только с NT, а впоследствии вышел патч до версии 1.2, позволяющий запускать MAX и под Win95). В статье говорилось о том, что, имея компьютер Pentium 133 и 64 MB памяти, мы получаем машину, равную по мощности рабочей станции SGI. В принципе, это было верно, правда цифра 64 немного смутила меня тогда, т.к. это было время машин уровня 486/4, если не хуже, а память стоила недетские суммы. Правда, потом все оказалось не так страшно: оказывается, капризная программа вполне нормально жила у меня на 486DX4-100 с 24мегами (конечно, о серьезной работе не могло быть и речи, но для изучения возможностей этого было вполне достаточно). Пакет был создан все той же самой, старой доброй Yost Group, правда, немного подросшей числом (имеется в виду количество создателей пакета). Вообще, о MAX могу сказать очень много теплых слов, программа очень скромна в требуемых ресурсах и хороша в производительности на фоне таких монстров, как MAYA, и является, на мой взгляд, наиболее сбалансированной в этом отношении программой для платформы PC. Программистами по всему миру ежегодно пишутся тысячи PLUG-INS для 3DSMAX, многие из которых распространяются совершенно бесплатно. Такого количества софтверной поддержки вы не встретите ни в одном другом пакете. На Российском рынке присутствует масса полезной литературы по 3DSMAX. В отличие от MAYA, здесь вакуума не наблюдается. Все это делает программу невероятно функциональной и привлекательной. Кроме этого, на сегодняшний день, не без помощи PLUG-INS, мы имеем набор инструментов, позволяющий конкурировать с мощными графическими станциями SGI, и главное — доступный практически каждому!

SoftImage — пакет в принципе неплохой, широко используется у нас на телевидении, но только в силу того, что возможности MAYA до сих пор толком не изучены. Пару месяцев назад я имел беседу с арт-директором небезызвестной компании B. S. Graphics г-ном Малашкиным, который хвалил MAYA и сетовал на отсутствие опыта по этому направлению. Правда, его заявление о непригодности 3DSMAX для создания спецэффектов в кино-видеопроизводстве повергло меня в недоумение, но спорить я с ним не стал. Впоследствии, работая над спецэффектами для клипа "Клязьма", о котором пойдет речь ниже, я часто с улыбкой вспоминал его слова и скорбное лицо, выражающее полную убежденность в сказанном.

LightWave — приятный пакет, чем-то напоминает мне 3Dstudio для DOS. Многие говорят о том, что его моделер довольно удобен, но я целиком и полностью убежден, что это просто сила привычки — пакет намного менее интерактивен по сравнению с вышеописанными в плане просмотра сцены (до ее визуализации), а отдельные программы для выполнения анимации и моделинга навевают ностальгию о старых добрых временах. Тем не менее, он и по сей день пользуется большой популярностью из-за своих скромных требований к аппаратному обеспечению (даже по сравнению с 3DSMax), а также в силу каких-то других причин, мне непонятных. Насколько мне известно, в сериале BABYLON-5 этот пакет широко использовался, и результат оказался очень и очень неплох.

Все, что описано выше никоим образом не претендует на аксиому и является исключительно моей точкой зрения.

Теперь, когда читатель в общих чертах разобрался в ассортименте 3D-программ, имеющихся на сегодняшний день на рынке графических технологий, хочется сказать несколько слов о пакетах для ретуширования, композинга, цветокоррекции и монтажа изображений. Без них вся работа, проделанная в 3D, имела бы малый смысл с точки зрения фотореалистичности спецэффектов, вживляемых в реальное видео.

Я знавал множество людей максималистов, пытающихся сделать всю работу по созданию какого-либо материала в одном пакете. В большинстве своем эти люди, конечно, не являются профессионалами, т.к. такой подход, в основе своей, непрофессионален и встречается редко на западе (в основном, от бедности :)). Поясню. Дело в том, что такие полифункциональные пакеты, как 3DSMAX, обладают достаточно широкими возможностями, включая монтаж, цветокоррекцию, видеофильтры и пр., вообще при желании можно все делать в MAX, не прибегая к продуктам сторонних производителей. Другой вопрос — насколько удобен и оправдан такой подход с точки зрения времени и качества конечного продукта: всем известно, что утка может очень многое, но вот как она это может… Нельзя объять необъятное, и модуль монтажа в 3Dstudio MAX никогда не будет удобнее, функциональнее и качественнее чем, скажем, Adobe AfterEffect или Adobe Premiere (пакеты, предназначенные для работы с растровыми форматами.).

Итак, после более-менее общего знакомства с предметом перейдем непосредственно к описанию применения этих и других инструментов для создания профессионального видео с использованием компьютерной графики. В качестве примера по данной тематике я взял работу, выполненную мной для видеоклипа "Клязьма" группы "Ногу свело". Это хороший пример вживления компьютерных анимированных моделей в живое видео, а также применения компьютерной графики для увеличения зрелищности видеофрагментов и клипа в целом. Статья иллюстрирована небольшими пояснительными картинками и анимацией, сразу хочу принести извинения за невысокое качество и разрешение изображений (исходные кадры были просчитаны в разрешении 720х576 для последующей записи в формат BETACAM SP). Это связано как с желанием сделать материал более компактным для загрузки через сеть, так и с некоторыми техническими проблемами с моей стороны. В любом случае, если вас более подробно заинтересуют детали изображения, вы всегда можете включить телевизор (клип совсем свежий, так что его транслируют по МУЗ-ТВ и MTV), либо связаться со мной по e-mail.

Итак, начнем

На картинке вы видите общий план группы, не напрягайте глаза — никакой компьютерной графики вы здесь не увидите: ее здесь просто нет ;) Зато на этой картинке хорошо заметна общая цветовая направленность видео, выполненная в грязно-зеленовато-болотных цветах, что было сделано намеренно, так как клип в процессе создания приобрел экологическую направленность, и было необходимо показать зрителю, как плохо бывает, когда загрязнены речки, воздух, и пр. Общая цветокоррекция была произведена в Adobe Premiere. Эта программа, кроме всего прочего, обладает одной полезной функцией — поддержкой формата PVD (формат, используемый некоторыми платами ввода/вывода видеоинформации). Для оцифровки видеоинформации использовалась видеоплата Perception, которая позволяет оцифровывать изображения в формате BETACAM, т.е. с разрешением 720х576, и записывать их обратно на видео. Я немного отвлекусь от темы и вкратце расскажу об этом замечательном устройстве.

Видеоплата Perception — это устройство для ввода/вывода информации в стандартах VHS, SVHS и BETACAM. Понятно, что для чтения или записи растровых изображений разрешением 720x576 и глубиной цвета 24 бита при кадровой частоте 25fps потоки данных достигают огромных значений, простая арифметика: 1кадр несжатого растра при таких параметрах занимает порядка 1.2Mb. Умножим его размер на количество fps и получаем поток данных около 30 Mбайт/с. Такой поток данных не под силу переварить IDE-винчестерам, мало того, не каждый жесткий диск со SCSI-интерфейсом может производить чтение/запись с такой скоростью. В Perception на аппаратном уровне реализовано устройство кодирования информации в реальном масштабе времени с помощью алгоритма Motion JPEG, при этом поток данных, в основном, уменьшается на 40-60% Компрессия реализована очень качественно, так что визуально ее выявить практически невозможно. Фактически, только после 3-х раз прогонки видеоинформации с видео на жесткий диск и обратно на экране телевизора будет заметен легкий шум, но такими вещами, конечно, никто не занимается. Кроме аппаратного устройства компрессии видеоинформации, на видеоплате имеется встроенный SCSI контроллер, который работает с видеоплатой напрямую, исключая, таким образом, потери в скорости чтения/записи, связанные с промежуточными обращениями операционной системы к жесткому диску, конфликтами прерываний, каналов DMA и пр. Кроме того, на плате имеется какое-то количество памяти, использующееся в качестве Cash.Кроме всего прочего, для Perception за отдельную плату поставляется модуль работы со звуком, который, фактически, представляет собой высококачественный АЦП/ЦАП, интегрированный с видеоплатой на аппаратном и программном уровне для осуществления возможности синхронизации звука с видео, плюс аппаратный компрессор, уменьшающий объем потока данных.

Поспешу разочаровать тех, кто в данный момент уже судорожно пересчитывает монетки, сидя на груде осколков своей разбитой копилки :) Такая плата без модуля работы со звуком стоит в районе $3500, а вместе с оным — на $1500 дороже. Кроме того, для бытовых условий такую видеоплату покупать не имеет смысла, т.к. для использования ее возможностей необходим, как минимум, видеомагнитофон с возможностью покадровой записи, работающий с видеокассетами стандарта BETACAM, а такая аппаратура, поверьте моему слову, стоит очень дорого.

Итак, вернемся к нашим баранам. На этой картинке изображен первый эпизод с применением компьютерной графики (это — не 3D). Дело в том, что при съемках клипа у режиссера не было соответствующего оборудования для проведения съемок ландшафта с больших высот, но в клипе обязательно было необходимо как-то показать масштабность происходящего. Было принято решение создать компьютерный вариант ландшафта, чтобы потом, масштабируя его добиться эффекта взлета видеокамеры на большую высоту. Растр высокого разрешения был выполнен в программе Photoshop из кусочков ландшафтов, оцифрованных из существующего видеоматериала. Мы сделали несколько растровых изображений облаков, и затем выполнили анимацию из готовых компонентов в After Effect. Для увеличения эффекта реалистичности облака положили в несколько отдельных слоев и задали разную скорость передвижения для каждого слоя, этим мы добились получения эффекта объема.

На следующей картинке вы можете наблюдать появление кукол-мутантов, зародившихся в недрах загрязненной реки Клязьма и выползших из-под воды, чтобы уничтожать и рвать на части все и вся! (И не смотрите, что они такие маленькие :)).

3-мерные модели кукол были воссозданы мной в 3Dstudio MAX по образу и подобию настоящих кукол, отснятых в видеоклипе, затем были специально отсняты на камеру и оцифрованы крупные части тел у кукол для последующего использования этих материалов в качестве текстур. Для кукол была создана гордая и страшная походка типа "Zomby", которой они и прошли через весь клип :). На картинке видно, что куклы наполовину скрыты травой и постепенно выходят на вершину холма, на видео в этот момент трава на переднем плане колышется под действием порывов ветра, и загораживает кукол стебельками. Создание такого эффекта в данном кадре было выполнено даже проще, чем может показаться — если вы обратили внимание, в кадре свет падает таким образом, что небо имеет ярко выраженный светлый оттенок, в то время, как земля и трава, напротив очень темны. Я просто использовал ту же последовательность кадров в качестве маски прозрачности для кукол, просто немного увеличив контрастность видеоряда, а затем использовав эту анимированную маску в AfterEffect для получения необходимого результата.

На следующем кадре я поступил примерно таким же образом, здесь, правда, пришлось немного поработать и ручками в Photoshop. Это момент выхода кукол из темной трубы. Для получения наиболее приближенного к реальности эффекта игры света в сцене, я воссоздал геометрию трубы в 3DstudioMAX, синхронизировал ее по положению с видео, расставил источники освещения в сцене необходимым образом и назначил трубе материал Mate Shadow — это специальный материал, позволяющий выгружать тени объектов в виде Alpha Channel. Т.е. самого объекта в просчитанной сцене не видно, но его параметры, такие, как Receive Shadow(принимать тень) и Cast Shadow(отбрасывать тень), накладывают свое влияние на другие объекты сцены и на себя в том числе в виде отбрасывания и приема теней. Кроме того, при отсутствии флажка Opaque Alpha, несмотря на отсутствие в визуализированной сцене Alpha канала от такого объекта, сам объект будет непрозрачен (сразу оговорюсь, что перечисленные функции меняются в настройках материала). Затем в сцену были добавлены куклы. После просчета анимации я получил кадры с моделью анимированной куклы, выходящей из тени и, собственно, сами тени в виде Alpha Channel. Далее работа над кадром продолжалась в After Effect. Положив в нижний слой анимированное видео как Background, я наложил на него мою 3D-сцену с тенями, а затем еще раз положил видео по анимированной маске прозрачности для того, чтобы качающиеся травинки на переднем плане загораживали кукол. Кроме того, я немного увеличил всю сцену и задал небольшое движение для самого кадра слева направо, т. к. в исходном видео камера была статична для облегчения совмещения компьютерной графики с видео.

На данном плане вы видите ту же самую сцену с другого ракурса.

Теперь хотелось бы поподробнее остановиться на процессах вживления компьютерной графики в видео. Известно, что при съемке на видеокамеру отснятое видео:

  1. Всегда будет иметь небольшой уровень зашумления, что естественно.
  2. Картинка никогда не будет четкой на 100%.

При простом просмотре видео эти вещи, как правило, незаметны, но как только мы совмещаем видео с какой-либо компьютерной графикой (например, анимированной 3-х мерной моделью), пусть даже очень хорошо совмещенной с видео по положению, ракурсу и другим параметрам, в глаза сразу бросается синтетический, идеальный вид модели на фоне правды жизни общей сцены. Непрофессионал просто может почувствовать, что здесь что-то не так. Профессионал же сразу видит, какие процессы необходимо проделать с графикой для получения наиболее реалистичного эффекта: надо сказать, что нижеописанные приемы работают практически во всех случаях, а особенно реалистичный результат получается при грамотном совмещении источников света в сцене и на видео. Я проделывал эти операции в AfterEffect, но, в принципе, это не имеет значения, т.к. это можно сделать практически в любой программе видеомонтажа или просто графическом редакторе типа Photoshop.

  1. Сначала разберемся с шумом (Noise). Для более точного подбора уровня шума на модели по отношению к видео я рекомендую в момент его регулировки сильно приблизить некоторый участок изображения, включающий фрагмент модели и фрагмент видео. Так будет легче определить уровень зашумленности видео и сравнивать его с добавляемым шумом на модель. Функция Noise, естественно, должна быть анимирована и меняться от кадра к кадру. Кстати отрадно, что в версии MAX3.0 появились функции цветокоррекции изображения, такие, как: Color Balance; Hue/Saturation; Brightness/Contrast и пр., а также фильтры размывания и зашумления, причем эти функции стали доступны не только из модуля VideoPost, но и в разделе Effects основного модуля программы. Эти новые функции позволяют максимально довести качество визуализированного изображения до желаемого, после чего будет значительно легче и приятнее сводить готовые изображения в программах видеомонтажа. Единственное, что до сих пор удерживает меня от полного перехода на эту версию программы, это отсутствие необходимых PlugIns, достать которые сейчас довольно сложно, по крайней мере в Москве.
  2. Теперь по поводу размывания. В настоящих видеокамерах всегда резок только тот объект, на который в данный момент настроен фокус камеры. Остальное пространство по мере удаления от исходной точки начинает терять четкость. Для создания полного эффекта присутствия необходимо соблюдение этого условия. Встроенные в 3DSMAX2.5 возможности не позволяют добиться нужного эффекта, но здесь на помощь приходят Plug-Ins сторонних производителей. В поставке PlugIn-a RealLenzFlare компании Digimation имеется специальный фильтр, Depth Of Field который позволяет добиться необходимого эффекта. Подробнее о его применении будет сказано ниже, а для данной сцены нам вполне хватило небольшого обычного размывания модели до ее совпадения по четкости с видео, т.к. сцена не имеет большой глубины и перспективы. Вообще, при вживлении компьютерных моделей в видеофрагменты я рекомендую всегда использовать небольшой уровень размывания помимо применения других фильтров, т.к. изображение в кадре никогда не бывает идеально четким.

Теперь мне хотелось бы сказать еще об одном этапе на пути к достижению фотореалистичности вживленного видео.

Атмосфера. Несмотря на кажущуюся незаметность, атмосфера 3-мерной сцены накладывает сильный отпечаток на всю сцену в целом, как для анимации, так и для статичных кадров. Дело в том, что при наложении текстур на объекты мы, как правило, никогда не редактируем текстуры по цвету, забывая о том, что в реальной жизни все объекты сцены (имеются в виду текстуры объектов) всегда более или менее имеют один общий оттенок. Это оттенок основного источника света (например, солнца или, скажем, ультрафиолетовой лампы). По умолчанию источник света в MAX имеет белый или серый цвет, т.е. цвета нейтральные, ничего не меняющие в цветовых компонентах текстур, кроме яркости, а подгонка текстур на уровне материалов в MAX — занятие достаточно кропотливое, кроме того, этим способом мы все равно не достигнем нужного эффекта на 100%. Есть несколько выходов из этой ситуации.

  1. Источники света в сцене никогда не должны быть бесцветными и должны иметь, пусть еле заметный, но все же какой-то оттенок (для совмещения с видео этот оттенок, естественно, должен максимально совпадать с освещением видеофрагмента).
  2. По возможности, необходимо использовать объемный свет для общего освещения таким образом, чтобы он не бросался в глаза, но при этом создавал необходимую атмосферу.
  3. Можно использовать для получения необходимого эффекта самый обычный Fog, имеющийся в стандартной поставке MAX либо Volume Fog, что, в принципе, не имеет особой разницы для данной ситуации, т.к. здесь нам не нужны его дополнительные возможности, такие, как турбулентность или ветер. В данном случае необходимо получить довольно равномерную, чуть заметную атмосферу сцены, накладывающую, естественно, свой отпечаток на все освещение и текстуры сцены.
  4. Можно проделать эту операцию, наложив практически прозрачный монотонный слой в программе композинга или монтажа, но это довольно грубый способ не придающий объема сцене.

Но вот модели вживлены, теперь — последний штрих: добавляем в After Effect небольшое движение кадра сверху вниз для придания кадру эффекта движущейся кинокамеры.

В следующем кадре, за счет специфически подобранного освещения, получилась довольно зловещая картина. Кстати, на этом примере я хотел бы поподробнее рассказать о применении модуля DOF из поставки RealLensFlare. Как было сказано выше, этот модуль предназначен для эмуляции настоящих кино- и видеокамер. Обратите внимание, как сильно размыты элементы изображения на переднем плане, в то время, как фокус камеры приходится примерно на середину идущих кукол. Как видите, применение этого модуля делает сцену намного более похожей на киносъемку. В отличие от старенького, встроенного в VideoPost MAX2.5 LensEffectFocus, который создает подобный эффект, работая с объектом сцены, причем, делая это неправильно, Depth Of Field от Digimation использует в своих алгоритмах реальные физические формулы, что и позволяет добиться подобной реалистичности. DOF от Digimation оказался настолько популярным и необходимым PlugIn-ом, что создателями MAX было решено включить его аналог в стандартную поставку 3DSMAX3.0, как, впрочем, и некоторые другие популярные PlugIns.

На следующих изображениях вы можете наблюдать удачное сочетание использования компьютерной графики с видеовставкой. Для этой сцены специально была отснята часть куклы, нога которой продолжает движение, наступив в грязь. Затем была создана компьютерная сцена с камерой, смотрящей как бы из грязи на огромную куклу, наступающую на эту самую камеру до наступления абсолютной темноты, а затем эта сцена была смикширована с видеовставкой. По-моему результат получился просто замечательным :) Обратите внимание, что в этой сцене также был использован модуль DOF компании Digimation. В этой сцене он очень хорошо подчеркивает перспективу и масштабность происходящего в данном кадре, т.е. как раз то, что нам было необходимо.

Теперь я хотел бы рассказать о применении контроллера Noise в 3DStudio MAX в целом. Noise является универсальной функцией MAX и применяется практически к любому объекту сцены как для деформации самого объекта, так и для случайного управления его движением и характеристиками (не путать с 2D-Noise фильтром, использующимся в двумерных программах в качестве растрового деформатора изображения). Noise доступен как в виде модификатора для работы с геометрией, так и в виде контроллера управления в Track View и на панели Motion в разделе Assign Controller. Что касается источников света, с помощью Noise можно создавать мерцающие блики на стенах от пламени в камине, имитировать работу испорченных ламп дневного света и многое другое. Способов его применения к геометрии также великое множество, вы можете применять этот модификатор как к целому объекту, так и к отдельным его участкам создавая, например, иллюзию действия ветра на отдельный участок объекта (особенно красиво этот способ работает в 3DSMAX3.0, где функция Affect Region переработана в Soft Selection). Также этот модификатор полезен для создания эффекта старения или потрепанности на геометрии, все это, разумеется, будет нормально работать при достаточном количестве полигонов для обеспечения качественных деформаций.

В данном примере контроллер Noise был применен к объекту Camera посредством иерархии через Dummy-объект. Это было сделано для того, чтобы придать положению камеры случайный характер в определенных пределах, не теряя в тоже время ее способности к самостоятельной анимации. Случайный характер движения камеры был выполнен по двум осям, т.е. вверх/вниз-влево/вправо, для создания эффекта встряски камеры при передвижении по ухабистой поверхности, а также вибрации под действием ударов ног кукол (т.к. эти удары имели довольно беспорядочный характер, синхронизировать их по положению с анимацией не было необходимости).

Вообще, эта сцена на редкость богата эффектами, полученными с помощью PlugIns сторонних производителей. Кроме всех вышеупомянутых эффектов, в этой сцене ко всему прочему присутствует еще и компьютерная трава, выполненная с помощью PlugIn-ов Shag- Fur и Shag-Hair. Shag-Fur — это PlugIn предназначенный для создания меха, волос, травы и других ворсистых поверхностей путем добавления в геометрию сцены сгенерированных специальным образом сплайнов. Причем эти самые сплайны обладают возможностью принимать и отбрасывать тени. Кроме того, с помощью Shag-Hair можно управлять положением этих сплайнов, используя специальные пространственные деформаторы. Также можно настроить длину, толщину, направление роста, цвет и прочие параметры ворсинок или придать параметрам случайный характер. Единственный недостаток, на который я обратил внимание, - это отсутствие возможности изменения толщины сплайна по его длине, что очень обидно, т.к. при создании, например, травянистых поверхностей, при использовании Shag Fur в чистом виде покров получается недостаточно фотореалистичным. Однако я надеюсь, что впоследствии специалисты компании Digimation (Станислав Евстатьев и Иван Колев) исправят это досадное недоразумение.

Для создания травы, максимально приближенной к уровню фотореализма, цвет и плотность травы на участках геометрии задавались с помощью текстур, имитирующих реальные участки ландшафтов, затем для сглаживания недостатка, о котором было сказано выше, трава просто была немного размыта с помощью модуля Depth Of Field. Результат вы можете наблюдать на картинке, а более детально — в видеоклипе.

На последних двух кадрах вы можете наблюдать финальную сцену с куклами. Это момент отлета камеры со среднего плана на общий. Обратите внимание на гигантское количество кукол в завершающем сцену кадре. Несмотря на использовании в этой сцене упрощенных моделей кукол и текстур низкого разрешения, один кадр анимации считался около 40 минут, притом, что было необходимо визуализировать около 250 кадров. Все это происходило на машине PII400/128MB под управлением WinNT, и торможение рендеринга происходило в основном из за недостатка физической памяти. В этой сцене были использованы все эффекты из предыдущего кадра, и, кроме того, для придания сцене дополнительного объема была добавлена небольшая облачность и туман.

Как я уже говорил, в сценарии клипа есть две линии использования компьютерной графики. Это сцены с куклами и полеты бумажных самолетиков, что не менее (а с точки зрения динамики и зрелищности — даже более) интересно и познавательно.

В этой небольшой анимации вы видите эффектный момент пролета самолетиков над камерой. Конечно, по этой маленькой анимации трудно оценить зрелищность кадра, поэтому я настоятельно рекомендую вам посмотреть видеоклип.

Для этой сцены я сделал несколько моделей самолетиков и наложил на них текстуры нескольких различных изданий :), для придания наибольшей разнообразности. Затем, при помощи модификатора FDD создал небольшую анимацию деформации крылышек под действием ветра и сдобрил все это применением модификатора Noise для достижения наибольшей реалистичности. Надо сказать, что применение именно в этой сцене данных модификаторов не было заметно в связи со скоростью развертывающихся событий, зато в последней сцене с небольшой редакцией все это принесло свои плоды.

Кроме того, главная изюминка этой сцены в грамотном применении функции Motion Blur, придающей полету самолетиков эффект головокружительной скорости. Без нее невозможно было обойтись еще и потому, что этот эффект несомненно проявил бы себя в реальном видео при такой скорости движения объектов. Для синхронизации компьютерной сцены с видеофоном была сделана анимация в After Effect. Ее суть сводится к увеличению размера видеофона по вертикали за счет микширования с видеофрагментом неба, и затем, естественно, перемещения фона от его нормального состояния к виду чистого неба (в жизни это выглядит так, будто мы просто поднимаем голову вверх и смотрим в небо). Скорость полета каждого самолетика по отношению к другим варьируется в определенных пределах и меняется с течением времени, но с учетом того, что общая форма полета самолетиков должна напоминать сильно растянутый треугольник.

На этой последовательности изображений вы можете наблюдать полет бумажных самолетиков над водой. Надо сказать, что по уровню реалистичности эта сцена удалась на все 100%, я опрашивал большое количество народа с мнениями по поводу этого фрагмента: те немногие люди, которые сумели распознать компьютерную графику объясняли свою догадку странной динамикой полета самолетиков (оно и понятно, бумажные самолетики, конечно, так летать не могут) :) Реалистичность этого видеофрагмента обусловлена применением отражений на основе алгоритмов Ray Tracing-а, доступных в 3DStudio MAX. Я совместил анимацию полета видеокамеры c камерой в MAX, а затем создал небольшую отражающую поверхность, содержащую большое количество полигонов, которая сопровождала самолетики на всем пути их следования в конечную точку. Помимо этого, отражающая плоскость по мере движения деформировалась посредством одной из функций раздела SpaceWarps 3DStudio MAX, именуемой Wave, в совокупности с применением модификатора Noise. Это было сделано для создания эффекта волны на отражающей поверхности, что как нельзя более кстати подошло к структуре и динамике поверхности воды на видео. Надо сказать, что по своей реалистичности версия материала Ray Tracing в 3DSMAX2.5 уступает ее реализации в MAX3.0, поэтому для просчета этой сцены была использована именно версия 3.0.

На следующих кадрах вы видите заключительную часть клипа: самолетики летят высоко над землей, а внизу проплывают облака на фоне зеленых лесов, полей и, собственно, реки Клязьмы. Сцена очень интересна, прежде всего тем, что это 100% — компьютерная графика. Нижний фон был нарисован мной в Photoshop; точнее говоря, я взял картинку высокого разрешения, подходящую по ракурсу, затем немного подретушировал ее и нарисовал речку. Затем, были созданы несколько огромных текстур облаков. Огромная текстура Background-а была наложена на плоскость перед камерой и медленно проплывала в анимации из верхнего левого угла в правый нижний. Облака, также наложенные на соответствующие плоскости между Background и камерой, проплывали несколько быстрее, причем, чем ближе слой находился к камере, тем быстрее была скорость перемещения плоскости. Я использовал 4 слоя облаков, это было сделано для создания эффекта объема. Последний атмосферный штрих. Я создал Box Gizmo и поместил туда Combustion, придав трем его цветам оттенки облаков, затем сильно растянул его вдоль траектории полета самолетиков и, поместив самолетики в эту среду, создал анимацию, в процессе которой этот Gizmo очень быстро перемещался, создавая таким образом ощущение скорости самолетиков на фоне медленно проплывающих огромных облаков. Затем я сделал анимацию крылышек самолетов с помощью FDD, чтобы создать эффект их деформации под действием порывов ветра.

В заключительном кадре вы видите действие эффекта Motion Blur примененного к самолетику в то время, когда он как бы ныряет в пучину облаков, приближаясь к земле. Движение в кадре продолжается еще некоторое время, позволяя зрителю наблюдать огромное пространство вокруг, после чего экран темнеет.

Вот, собственно, и все о чем я хотел рассказать. Кому-то может показаться, что некоторые моменты освещены слабо, но поймите меня правильно: невозможно в одной статье уместить пару-тройку учебников. Я намеренно не углублялся в детали, т.к. писал статью, а не книгу. Но в любом случае, если у вас появились какие-либо вопросы, или вы хотите поподробнее узнать о том или ином процессе, пишите мне на e-mail, и я с удовольствием отвечу.




7 июля 2000 Г.

Секреты и приемы использования компьютерной графики в кино и на телевидении

Секреты и приемы использования компьютерной графики в кино и на телевидении

В этой статье речь пойдет о компьютерной графике (в основном 3-мерной) и профессиональном ее применении для создания реалистичных спецэффектов, по возможности неотличимых или трудноотличимых от реального видео. Для начала хотелось бы совершить небольшой экскурс по нескольким основным 3-мерным программам, используемым сегодня профессионалами по всему миру. Сразу оговорюсь, что данные материалы не являются учебным пособием по тому или иному пакету, т.к. для этого есть специализированная литература.

Целью данной статьи является ознакомление несведущей в данных вопросах части аудитории, но интересующейся ими. Профессионалы также могут почерпнуть из этого материала массу полезной информации в виде идей и способов применения отдельных функций программ для своих нужд.

На данный момент существует множество пакетов для создания 3-мерной компьютерной графики и анимации, имеющих свои достоинства и недостатки. Не буду развивать полемику на тему, какой пакет круче, т.к. приверженцев того или иного программного обеспечения имеется великое множество, и у каждого пакета есть свои положительные и отрицательные моменты, могу лишь выразить собственное мнение и привязанности к конкретному набору программ, основанные на логических измышлениях и личном опыте.

Из существующего обилия графических программ, присутствующих на рынке графических технологий, сразу можно выделить нескольких фаворитов: это такие пакеты, как MAYA, 3Dstudio Max, SoftImage, Light Wave. Помимо этих пакетов, конечно, существует еще огромное количество графических программ, таких, как: Rhino, NUGraphRenderer, BMRT, RenderMan, Houdini, и прочие., но о них, я думаю, говорить не стоит, т.к. эти программы, в основе своей, не получили широкого применения пользователями в нашей стране в силу своей узкой специализации, хотя эти и некоторые другие программы нередко используются специалистами, работающими на телевидении.

Итак, давайте по порядку

Конечно, MAYA — это бесспорный лидер, программный пакет, обладающий огромными возможностями, первый доступный для PC-пользователей, профессиональный графический набор инструментов, позволяющий достичь нового уровня качества анимации и визуализации сцен. MAYA имеет огромную историю, объединяя в себе возможности таких монстров, как POWER ANIMATOR, SOFTIMAGE и множества других графических пакетов, ее возможности практически безграничны, и говорить о ней можно очень долго. К сожалению, MAYA имеет ряд отрицательных сторон, которые не позволяют ей на данный момент занять лидирующее положение в линейке популярных 3-мерных программ в России. Во-первых, ее системные требования: min128MB RAM и хотя бы PII400 — это для нормальной работы и создания сцен весьма средненькой (по голливудским меркам) сложности. Во-вторых, возможность работы только под Windows NT на PC также никак не может положительно сказаться на росте объема продаж. Ну и самое главное, пожалуй, (по крайней мере для России) это ПОЛНОЕ отсутствие какой-либо русской литературы. Исколесив пол-Москвы и побывав во множестве книжных магазинов, мне так и не удалось найти ни одной книги по данному пакету. И это притом, что пакет является одним из самых сложных (если не самым сложным) из тех, что мне когда-либо приходилось встречать. Дело даже не в понимании каких-то функций, а просто-напросто в их обилии. Несмотря на сказанное выше, хочу отметить, что все большее количество пытливых умов у нас в России пытается методом научного тыка овладеть функциями этого замечательного пакета, в чем хочется искренне пожелать им успеха. Хотя я все-таки надеюсь на появление в скором времени необходимой технической литературы.

Хотелось бы особенно выделить один из пакетов, являющийся на сегодняшний день первым по уровню популярности не только в России, но и во всем мире:

3D Studio MAX

История 3DSMAX достаточно молода и берет свое начало где-то в конце 80-х. Несколько талантливых программистов из разных городов США, именующих себя Yost Group, объединили свои усилия с целью создания первого профессионального 3-х мерного графического пакета на платформе PC. 1-я версия 3Dstudio для MS-DOS… Тогда это был прорыв, и все компьютерные журналы взахлеб писали о новых возможностях, открывающихся для платформы PC. Потом были 2-я, 3-я и 4-я версии 3Dstudio для системы MS-DOS, пакет имел большую популярность и даже стал понемногу использоваться на телевидении и в кино-видеопроизводстве, сначала робко, но с течением времени все более и более закрепляя свои позиции на рынке программ создания компьютерной графики для кино-видео индустрии. Возможности пакета постоянно расширялись за счет написания специальных дополнительных процессов, добавляющих различные, новые функции (они назывались IPAS Process). Для платформы PC это было просто сногсшибательным результатом. К сожалению, 3Dstudio для DOS имела ряд существенных недостатков, не позволяющих этому пакету в то время тягаться с продуктами Alias/Wavefront для компьютеров SGI. В числе этих недостатков выделю, в первую очередь, ограничение на объем используемой памяти (до 64-х Мбайт). Помимо этого, пакет был не очень производителен в работе с точки зрения интерфейса. Я думаю, каждый профессионал, работавший когда-то с 3DS для DOS, с ужасом вспоминает эти длинные, иерархические контекстные меню, которые приходилось колесить вдоль и поперек для выполнения тривиальных, на сегодняшний взгляд, операций.

Наконец, в середине 90-х я прочитал статью в одном из компьютерных журналов о появлении уникальной программы для платформы PC под управлением Windows NT (тогда 1-я версия 3DS MAX работала только с NT, а впоследствии вышел патч до версии 1.2, позволяющий запускать MAX и под Win95). В статье говорилось о том, что, имея компьютер Pentium 133 и 64 MB памяти, мы получаем машину, равную по мощности рабочей станции SGI. В принципе, это было верно, правда цифра 64 немного смутила меня тогда, т.к. это было время машин уровня 486/4, если не хуже, а память стоила недетские суммы. Правда, потом все оказалось не так страшно: оказывается, капризная программа вполне нормально жила у меня на 486DX4-100 с 24мегами (конечно, о серьезной работе не могло быть и речи, но для изучения возможностей этого было вполне достаточно). Пакет был создан все той же самой, старой доброй Yost Group, правда, немного подросшей числом (имеется в виду количество создателей пакета). Вообще, о MAX могу сказать очень много теплых слов, программа очень скромна в требуемых ресурсах и хороша в производительности на фоне таких монстров, как MAYA, и является, на мой взгляд, наиболее сбалансированной в этом отношении программой для платформы PC. Программистами по всему миру ежегодно пишутся тысячи PLUG-INS для 3DSMAX, многие из которых распространяются совершенно бесплатно. Такого количества софтверной поддержки вы не встретите ни в одном другом пакете. На Российском рынке присутствует масса полезной литературы по 3DSMAX. В отличие от MAYA, здесь вакуума не наблюдается. Все это делает программу невероятно функциональной и привлекательной. Кроме этого, на сегодняшний день, не без помощи PLUG-INS, мы имеем набор инструментов, позволяющий конкурировать с мощными графическими станциями SGI, и главное — доступный практически каждому!

SoftImage — пакет в принципе неплохой, широко используется у нас на телевидении, но только в силу того, что возможности MAYA до сих пор толком не изучены. Пару месяцев назад я имел беседу с арт-директором небезызвестной компании B. S. Graphics г-ном Малашкиным, который хвалил MAYA и сетовал на отсутствие опыта по этому направлению. Правда, его заявление о непригодности 3DSMAX для создания спецэффектов в кино-видеопроизводстве повергло меня в недоумение, но спорить я с ним не стал. Впоследствии, работая над спецэффектами для клипа "Клязьма", о котором пойдет речь ниже, я часто с улыбкой вспоминал его слова и скорбное лицо, выражающее полную убежденность в сказанном.

LightWave — приятный пакет, чем-то напоминает мне 3Dstudio для DOS. Многие говорят о том, что его моделер довольно удобен, но я целиком и полностью убежден, что это просто сила привычки — пакет намного менее интерактивен по сравнению с вышеописанными в плане просмотра сцены (до ее визуализации), а отдельные программы для выполнения анимации и моделинга навевают ностальгию о старых добрых временах. Тем не менее, он и по сей день пользуется большой популярностью из-за своих скромных требований к аппаратному обеспечению (даже по сравнению с 3DSMax), а также в силу каких-то других причин, мне непонятных. Насколько мне известно, в сериале BABYLON-5 этот пакет широко использовался, и результат оказался очень и очень неплох.

Все, что описано выше никоим образом не претендует на аксиому и является исключительно моей точкой зрения.

Теперь, когда читатель в общих чертах разобрался в ассортименте 3D-программ, имеющихся на сегодняшний день на рынке графических технологий, хочется сказать несколько слов о пакетах для ретуширования, композинга, цветокоррекции и монтажа изображений. Без них вся работа, проделанная в 3D, имела бы малый смысл с точки зрения фотореалистичности спецэффектов, вживляемых в реальное видео.

Я знавал множество людей максималистов, пытающихся сделать всю работу по созданию какого-либо материала в одном пакете. В большинстве своем эти люди, конечно, не являются профессионалами, т.к. такой подход, в основе своей, непрофессионален и встречается редко на западе (в основном, от бедности :)). Поясню. Дело в том, что такие полифункциональные пакеты, как 3DSMAX, обладают достаточно широкими возможностями, включая монтаж, цветокоррекцию, видеофильтры и пр., вообще при желании можно все делать в MAX, не прибегая к продуктам сторонних производителей. Другой вопрос — насколько удобен и оправдан такой подход с точки зрения времени и качества конечного продукта: всем известно, что утка может очень многое, но вот как она это может… Нельзя объять необъятное, и модуль монтажа в 3Dstudio MAX никогда не будет удобнее, функциональнее и качественнее чем, скажем, Adobe AfterEffect или Adobe Premiere (пакеты, предназначенные для работы с растровыми форматами.).

Итак, после более-менее общего знакомства с предметом перейдем непосредственно к описанию применения этих и других инструментов для создания профессионального видео с использованием компьютерной графики. В качестве примера по данной тематике я взял работу, выполненную мной для видеоклипа "Клязьма" группы "Ногу свело". Это хороший пример вживления компьютерных анимированных моделей в живое видео, а также применения компьютерной графики для увеличения зрелищности видеофрагментов и клипа в целом. Статья иллюстрирована небольшими пояснительными картинками и анимацией, сразу хочу принести извинения за невысокое качество и разрешение изображений (исходные кадры были просчитаны в разрешении 720х576 для последующей записи в формат BETACAM SP). Это связано как с желанием сделать материал более компактным для загрузки через сеть, так и с некоторыми техническими проблемами с моей стороны. В любом случае, если вас более подробно заинтересуют детали изображения, вы всегда можете включить телевизор (клип совсем свежий, так что его транслируют по МУЗ-ТВ и MTV), либо связаться со мной по e-mail.

Итак, начнем

На картинке вы видите общий план группы, не напрягайте глаза — никакой компьютерной графики вы здесь не увидите: ее здесь просто нет ;) Зато на этой картинке хорошо заметна общая цветовая направленность видео, выполненная в грязно-зеленовато-болотных цветах, что было сделано намеренно, так как клип в процессе создания приобрел экологическую направленность, и было необходимо показать зрителю, как плохо бывает, когда загрязнены речки, воздух, и пр. Общая цветокоррекция была произведена в Adobe Premiere. Эта программа, кроме всего прочего, обладает одной полезной функцией — поддержкой формата PVD (формат, используемый некоторыми платами ввода/вывода видеоинформации). Для оцифровки видеоинформации использовалась видеоплата Perception, которая позволяет оцифровывать изображения в формате BETACAM, т.е. с разрешением 720х576, и записывать их обратно на видео. Я немного отвлекусь от темы и вкратце расскажу об этом замечательном устройстве.

Видеоплата Perception — это устройство для ввода/вывода информации в стандартах VHS, SVHS и BETACAM. Понятно, что для чтения или записи растровых изображений разрешением 720x576 и глубиной цвета 24 бита при кадровой частоте 25fps потоки данных достигают огромных значений, простая арифметика: 1кадр несжатого растра при таких параметрах занимает порядка 1.2Mb. Умножим его размер на количество fps и получаем поток данных около 30 Mбайт/с. Такой поток данных не под силу переварить IDE-винчестерам, мало того, не каждый жесткий диск со SCSI-интерфейсом может производить чтение/запись с такой скоростью. В Perception на аппаратном уровне реализовано устройство кодирования информации в реальном масштабе времени с помощью алгоритма Motion JPEG, при этом поток данных, в основном, уменьшается на 40-60% Компрессия реализована очень качественно, так что визуально ее выявить практически невозможно. Фактически, только после 3-х раз прогонки видеоинформации с видео на жесткий диск и обратно на экране телевизора будет заметен легкий шум, но такими вещами, конечно, никто не занимается. Кроме аппаратного устройства компрессии видеоинформации, на видеоплате имеется встроенный SCSI контроллер, который работает с видеоплатой напрямую, исключая, таким образом, потери в скорости чтения/записи, связанные с промежуточными обращениями операционной системы к жесткому диску, конфликтами прерываний, каналов DMA и пр. Кроме того, на плате имеется какое-то количество памяти, использующееся в качестве Cash.Кроме всего прочего, для Perception за отдельную плату поставляется модуль работы со звуком, который, фактически, представляет собой высококачественный АЦП/ЦАП, интегрированный с видеоплатой на аппаратном и программном уровне для осуществления возможности синхронизации звука с видео, плюс аппаратный компрессор, уменьшающий объем потока данных.

Поспешу разочаровать тех, кто в данный момент уже судорожно пересчитывает монетки, сидя на груде осколков своей разбитой копилки :) Такая плата без модуля работы со звуком стоит в районе $3500, а вместе с оным — на $1500 дороже. Кроме того, для бытовых условий такую видеоплату покупать не имеет смысла, т.к. для использования ее возможностей необходим, как минимум, видеомагнитофон с возможностью покадровой записи, работающий с видеокассетами стандарта BETACAM, а такая аппаратура, поверьте моему слову, стоит очень дорого.

Итак, вернемся к нашим баранам. На этой картинке изображен первый эпизод с применением компьютерной графики (это — не 3D). Дело в том, что при съемках клипа у режиссера не было соответствующего оборудования для проведения съемок ландшафта с больших высот, но в клипе обязательно было необходимо как-то показать масштабность происходящего. Было принято решение создать компьютерный вариант ландшафта, чтобы потом, масштабируя его добиться эффекта взлета видеокамеры на большую высоту. Растр высокого разрешения был выполнен в программе Photoshop из кусочков ландшафтов, оцифрованных из существующего видеоматериала. Мы сделали несколько растровых изображений облаков, и затем выполнили анимацию из готовых компонентов в After Effect. Для увеличения эффекта реалистичности облака положили в несколько отдельных слоев и задали разную скорость передвижения для каждого слоя, этим мы добились получения эффекта объема.

На следующей картинке вы можете наблюдать появление кукол-мутантов, зародившихся в недрах загрязненной реки Клязьма и выползших из-под воды, чтобы уничтожать и рвать на части все и вся! (И не смотрите, что они такие маленькие :)).

3-мерные модели кукол были воссозданы мной в 3Dstudio MAX по образу и подобию настоящих кукол, отснятых в видеоклипе, затем были специально отсняты на камеру и оцифрованы крупные части тел у кукол для последующего использования этих материалов в качестве текстур. Для кукол была создана гордая и страшная походка типа "Zomby", которой они и прошли через весь клип :). На картинке видно, что куклы наполовину скрыты травой и постепенно выходят на вершину холма, на видео в этот момент трава на переднем плане колышется под действием порывов ветра, и загораживает кукол стебельками. Создание такого эффекта в данном кадре было выполнено даже проще, чем может показаться — если вы обратили внимание, в кадре свет падает таким образом, что небо имеет ярко выраженный светлый оттенок, в то время, как земля и трава, напротив очень темны. Я просто использовал ту же последовательность кадров в качестве маски прозрачности для кукол, просто немного увеличив контрастность видеоряда, а затем использовав эту анимированную маску в AfterEffect для получения необходимого результата.

На следующем кадре я поступил примерно таким же образом, здесь, правда, пришлось немного поработать и ручками в Photoshop. Это момент выхода кукол из темной трубы. Для получения наиболее приближенного к реальности эффекта игры света в сцене, я воссоздал геометрию трубы в 3DstudioMAX, синхронизировал ее по положению с видео, расставил источники освещения в сцене необходимым образом и назначил трубе материал Mate Shadow — это специальный материал, позволяющий выгружать тени объектов в виде Alpha Channel. Т.е. самого объекта в просчитанной сцене не видно, но его параметры, такие, как Receive Shadow(принимать тень) и Cast Shadow(отбрасывать тень), накладывают свое влияние на другие объекты сцены и на себя в том числе в виде отбрасывания и приема теней. Кроме того, при отсутствии флажка Opaque Alpha, несмотря на отсутствие в визуализированной сцене Alpha канала от такого объекта, сам объект будет непрозрачен (сразу оговорюсь, что перечисленные функции меняются в настройках материала). Затем в сцену были добавлены куклы. После просчета анимации я получил кадры с моделью анимированной куклы, выходящей из тени и, собственно, сами тени в виде Alpha Channel. Далее работа над кадром продолжалась в After Effect. Положив в нижний слой анимированное видео как Background, я наложил на него мою 3D-сцену с тенями, а затем еще раз положил видео по анимированной маске прозрачности для того, чтобы качающиеся травинки на переднем плане загораживали кукол. Кроме того, я немного увеличил всю сцену и задал небольшое движение для самого кадра слева направо, т. к. в исходном видео камера была статична для облегчения совмещения компьютерной графики с видео.

На данном плане вы видите ту же самую сцену с другого ракурса.

Теперь хотелось бы поподробнее остановиться на процессах вживления компьютерной графики в видео. Известно, что при съемке на видеокамеру отснятое видео:

  1. Всегда будет иметь небольшой уровень зашумления, что естественно.
  2. Картинка никогда не будет четкой на 100%.

При простом просмотре видео эти вещи, как правило, незаметны, но как только мы совмещаем видео с какой-либо компьютерной графикой (например, анимированной 3-х мерной моделью), пусть даже очень хорошо совмещенной с видео по положению, ракурсу и другим параметрам, в глаза сразу бросается синтетический, идеальный вид модели на фоне правды жизни общей сцены. Непрофессионал просто может почувствовать, что здесь что-то не так. Профессионал же сразу видит, какие процессы необходимо проделать с графикой для получения наиболее реалистичного эффекта: надо сказать, что нижеописанные приемы работают практически во всех случаях, а особенно реалистичный результат получается при грамотном совмещении источников света в сцене и на видео. Я проделывал эти операции в AfterEffect, но, в принципе, это не имеет значения, т.к. это можно сделать практически в любой программе видеомонтажа или просто графическом редакторе типа Photoshop.

  1. Сначала разберемся с шумом (Noise). Для более точного подбора уровня шума на модели по отношению к видео я рекомендую в момент его регулировки сильно приблизить некоторый участок изображения, включающий фрагмент модели и фрагмент видео. Так будет легче определить уровень зашумленности видео и сравнивать его с добавляемым шумом на модель. Функция Noise, естественно, должна быть анимирована и меняться от кадра к кадру. Кстати отрадно, что в версии MAX3.0 появились функции цветокоррекции изображения, такие, как: Color Balance; Hue/Saturation; Brightness/Contrast и пр., а также фильтры размывания и зашумления, причем эти функции стали доступны не только из модуля VideoPost, но и в разделе Effects основного модуля программы. Эти новые функции позволяют максимально довести качество визуализированного изображения до желаемого, после чего будет значительно легче и приятнее сводить готовые изображения в программах видеомонтажа. Единственное, что до сих пор удерживает меня от полного перехода на эту версию программы, это отсутствие необходимых PlugIns, достать которые сейчас довольно сложно, по крайней мере в Москве.
  2. Теперь по поводу размывания. В настоящих видеокамерах всегда резок только тот объект, на который в данный момент настроен фокус камеры. Остальное пространство по мере удаления от исходной точки начинает терять четкость. Для создания полного эффекта присутствия необходимо соблюдение этого условия. Встроенные в 3DSMAX2.5 возможности не позволяют добиться нужного эффекта, но здесь на помощь приходят Plug-Ins сторонних производителей. В поставке PlugIn-a RealLenzFlare компании Digimation имеется специальный фильтр, Depth Of Field который позволяет добиться необходимого эффекта. Подробнее о его применении будет сказано ниже, а для данной сцены нам вполне хватило небольшого обычного размывания модели до ее совпадения по четкости с видео, т.к. сцена не имеет большой глубины и перспективы. Вообще, при вживлении компьютерных моделей в видеофрагменты я рекомендую всегда использовать небольшой уровень размывания помимо применения других фильтров, т.к. изображение в кадре никогда не бывает идеально четким.

Теперь мне хотелось бы сказать еще об одном этапе на пути к достижению фотореалистичности вживленного видео.

Атмосфера. Несмотря на кажущуюся незаметность, атмосфера 3-мерной сцены накладывает сильный отпечаток на всю сцену в целом, как для анимации, так и для статичных кадров. Дело в том, что при наложении текстур на объекты мы, как правило, никогда не редактируем текстуры по цвету, забывая о том, что в реальной жизни все объекты сцены (имеются в виду текстуры объектов) всегда более или менее имеют один общий оттенок. Это оттенок основного источника света (например, солнца или, скажем, ультрафиолетовой лампы). По умолчанию источник света в MAX имеет белый или серый цвет, т.е. цвета нейтральные, ничего не меняющие в цветовых компонентах текстур, кроме яркости, а подгонка текстур на уровне материалов в MAX — занятие достаточно кропотливое, кроме того, этим способом мы все равно не достигнем нужного эффекта на 100%. Есть несколько выходов из этой ситуации.

  1. Источники света в сцене никогда не должны быть бесцветными и должны иметь, пусть еле заметный, но все же какой-то оттенок (для совмещения с видео этот оттенок, естественно, должен максимально совпадать с освещением видеофрагмента).
  2. По возможности, необходимо использовать объемный свет для общего освещения таким образом, чтобы он не бросался в глаза, но при этом создавал необходимую атмосферу.
  3. Можно использовать для получения необходимого эффекта самый обычный Fog, имеющийся в стандартной поставке MAX либо Volume Fog, что, в принципе, не имеет особой разницы для данной ситуации, т.к. здесь нам не нужны его дополнительные возможности, такие, как турбулентность или ветер. В данном случае необходимо получить довольно равномерную, чуть заметную атмосферу сцены, накладывающую, естественно, свой отпечаток на все освещение и текстуры сцены.
  4. Можно проделать эту операцию, наложив практически прозрачный монотонный слой в программе композинга или монтажа, но это довольно грубый способ не придающий объема сцене.

Но вот модели вживлены, теперь — последний штрих: добавляем в After Effect небольшое движение кадра сверху вниз для придания кадру эффекта движущейся кинокамеры.

В следующем кадре, за счет специфически подобранного освещения, получилась довольно зловещая картина. Кстати, на этом примере я хотел бы поподробнее рассказать о применении модуля DOF из поставки RealLensFlare. Как было сказано выше, этот модуль предназначен для эмуляции настоящих кино- и видеокамер. Обратите внимание, как сильно размыты элементы изображения на переднем плане, в то время, как фокус камеры приходится примерно на середину идущих кукол. Как видите, применение этого модуля делает сцену намного более похожей на киносъемку. В отличие от старенького, встроенного в VideoPost MAX2.5 LensEffectFocus, который создает подобный эффект, работая с объектом сцены, причем, делая это неправильно, Depth Of Field от Digimation использует в своих алгоритмах реальные физические формулы, что и позволяет добиться подобной реалистичности. DOF от Digimation оказался настолько популярным и необходимым PlugIn-ом, что создателями MAX было решено включить его аналог в стандартную поставку 3DSMAX3.0, как, впрочем, и некоторые другие популярные PlugIns.

На следующих изображениях вы можете наблюдать удачное сочетание использования компьютерной графики с видеовставкой. Для этой сцены специально была отснята часть куклы, нога которой продолжает движение, наступив в грязь. Затем была создана компьютерная сцена с камерой, смотрящей как бы из грязи на огромную куклу, наступающую на эту самую камеру до наступления абсолютной темноты, а затем эта сцена была смикширована с видеовставкой. По-моему результат получился просто замечательным :) Обратите внимание, что в этой сцене также был использован модуль DOF компании Digimation. В этой сцене он очень хорошо подчеркивает перспективу и масштабность происходящего в данном кадре, т.е. как раз то, что нам было необходимо.

Теперь я хотел бы рассказать о применении контроллера Noise в 3DStudio MAX в целом. Noise является универсальной функцией MAX и применяется практически к любому объекту сцены как для деформации самого объекта, так и для случайного управления его движением и характеристиками (не путать с 2D-Noise фильтром, использующимся в двумерных программах в качестве растрового деформатора изображения). Noise доступен как в виде модификатора для работы с геометрией, так и в виде контроллера управления в Track View и на панели Motion в разделе Assign Controller. Что касается источников света, с помощью Noise можно создавать мерцающие блики на стенах от пламени в камине, имитировать работу испорченных ламп дневного света и многое другое. Способов его применения к геометрии также великое множество, вы можете применять этот модификатор как к целому объекту, так и к отдельным его участкам создавая, например, иллюзию действия ветра на отдельный участок объекта (особенно красиво этот способ работает в 3DSMAX3.0, где функция Affect Region переработана в Soft Selection). Также этот модификатор полезен для создания эффекта старения или потрепанности на геометрии, все это, разумеется, будет нормально работать при достаточном количестве полигонов для обеспечения качественных деформаций.

В данном примере контроллер Noise был применен к объекту Camera посредством иерархии через Dummy-объект. Это было сделано для того, чтобы придать положению камеры случайный характер в определенных пределах, не теряя в тоже время ее способности к самостоятельной анимации. Случайный характер движения камеры был выполнен по двум осям, т.е. вверх/вниз-влево/вправо, для создания эффекта встряски камеры при передвижении по ухабистой поверхности, а также вибрации под действием ударов ног кукол (т.к. эти удары имели довольно беспорядочный характер, синхронизировать их по положению с анимацией не было необходимости).

Вообще, эта сцена на редкость богата эффектами, полученными с помощью PlugIns сторонних производителей. Кроме всех вышеупомянутых эффектов, в этой сцене ко всему прочему присутствует еще и компьютерная трава, выполненная с помощью PlugIn-ов Shag- Fur и Shag-Hair. Shag-Fur — это PlugIn предназначенный для создания меха, волос, травы и других ворсистых поверхностей путем добавления в геометрию сцены сгенерированных специальным образом сплайнов. Причем эти самые сплайны обладают возможностью принимать и отбрасывать тени. Кроме того, с помощью Shag-Hair можно управлять положением этих сплайнов, используя специальные пространственные деформаторы. Также можно настроить длину, толщину, направление роста, цвет и прочие параметры ворсинок или придать параметрам случайный характер. Единственный недостаток, на который я обратил внимание, - это отсутствие возможности изменения толщины сплайна по его длине, что очень обидно, т.к. при создании, например, травянистых поверхностей, при использовании Shag Fur в чистом виде покров получается недостаточно фотореалистичным. Однако я надеюсь, что впоследствии специалисты компании Digimation (Станислав Евстатьев и Иван Колев) исправят это досадное недоразумение.

Для создания травы, максимально приближенной к уровню фотореализма, цвет и плотность травы на участках геометрии задавались с помощью текстур, имитирующих реальные участки ландшафтов, затем для сглаживания недостатка, о котором было сказано выше, трава просто была немного размыта с помощью модуля Depth Of Field. Результат вы можете наблюдать на картинке, а более детально — в видеоклипе.

На последних двух кадрах вы можете наблюдать финальную сцену с куклами. Это момент отлета камеры со среднего плана на общий. Обратите внимание на гигантское количество кукол в завершающем сцену кадре. Несмотря на использовании в этой сцене упрощенных моделей кукол и текстур низкого разрешения, один кадр анимации считался около 40 минут, притом, что было необходимо визуализировать около 250 кадров. Все это происходило на машине PII400/128MB под управлением WinNT, и торможение рендеринга происходило в основном из за недостатка физической памяти. В этой сцене были использованы все эффекты из предыдущего кадра, и, кроме того, для придания сцене дополнительного объема была добавлена небольшая облачность и туман.

Как я уже говорил, в сценарии клипа есть две линии использования компьютерной графики. Это сцены с куклами и полеты бумажных самолетиков, что не менее (а с точки зрения динамики и зрелищности — даже более) интересно и познавательно.

В этой небольшой анимации вы видите эффектный момент пролета самолетиков над камерой. Конечно, по этой маленькой анимации трудно оценить зрелищность кадра, поэтому я настоятельно рекомендую вам посмотреть видеоклип.

Для этой сцены я сделал несколько моделей самолетиков и наложил на них текстуры нескольких различных изданий :), для придания наибольшей разнообразности. Затем, при помощи модификатора FDD создал небольшую анимацию деформации крылышек под действием ветра и сдобрил все это применением модификатора Noise для достижения наибольшей реалистичности. Надо сказать, что применение именно в этой сцене данных модификаторов не было заметно в связи со скоростью развертывающихся событий, зато в последней сцене с небольшой редакцией все это принесло свои плоды.

Кроме того, главная изюминка этой сцены в грамотном применении функции Motion Blur, придающей полету самолетиков эффект головокружительной скорости. Без нее невозможно было обойтись еще и потому, что этот эффект несомненно проявил бы себя в реальном видео при такой скорости движения объектов. Для синхронизации компьютерной сцены с видеофоном была сделана анимация в After Effect. Ее суть сводится к увеличению размера видеофона по вертикали за счет микширования с видеофрагментом неба, и затем, естественно, перемещения фона от его нормального состояния к виду чистого неба (в жизни это выглядит так, будто мы просто поднимаем голову вверх и смотрим в небо). Скорость полета каждого самолетика по отношению к другим варьируется в определенных пределах и меняется с течением времени, но с учетом того, что общая форма полета самолетиков должна напоминать сильно растянутый треугольник.

На этой последовательности изображений вы можете наблюдать полет бумажных самолетиков над водой. Надо сказать, что по уровню реалистичности эта сцена удалась на все 100%, я опрашивал большое количество народа с мнениями по поводу этого фрагмента: те немногие люди, которые сумели распознать компьютерную графику объясняли свою догадку странной динамикой полета самолетиков (оно и понятно, бумажные самолетики, конечно, так летать не могут) :) Реалистичность этого видеофрагмента обусловлена применением отражений на основе алгоритмов Ray Tracing-а, доступных в 3DStudio MAX. Я совместил анимацию полета видеокамеры c камерой в MAX, а затем создал небольшую отражающую поверхность, содержащую большое количество полигонов, которая сопровождала самолетики на всем пути их следования в конечную точку. Помимо этого, отражающая плоскость по мере движения деформировалась посредством одной из функций раздела SpaceWarps 3DStudio MAX, именуемой Wave, в совокупности с применением модификатора Noise. Это было сделано для создания эффекта волны на отражающей поверхности, что как нельзя более кстати подошло к структуре и динамике поверхности воды на видео. Надо сказать, что по своей реалистичности версия материала Ray Tracing в 3DSMAX2.5 уступает ее реализации в MAX3.0, поэтому для просчета этой сцены была использована именно версия 3.0.

На следующих кадрах вы видите заключительную часть клипа: самолетики летят высоко над землей, а внизу проплывают облака на фоне зеленых лесов, полей и, собственно, реки Клязьмы. Сцена очень интересна, прежде всего тем, что это 100% — компьютерная графика. Нижний фон был нарисован мной в Photoshop; точнее говоря, я взял картинку высокого разрешения, подходящую по ракурсу, затем немного подретушировал ее и нарисовал речку. Затем, были созданы несколько огромных текстур облаков. Огромная текстура Background-а была наложена на плоскость перед камерой и медленно проплывала в анимации из верхнего левого угла в правый нижний. Облака, также наложенные на соответствующие плоскости между Background и камерой, проплывали несколько быстрее, причем, чем ближе слой находился к камере, тем быстрее была скорость перемещения плоскости. Я использовал 4 слоя облаков, это было сделано для создания эффекта объема. Последний атмосферный штрих. Я создал Box Gizmo и поместил туда Combustion, придав трем его цветам оттенки облаков, затем сильно растянул его вдоль траектории полета самолетиков и, поместив самолетики в эту среду, создал анимацию, в процессе которой этот Gizmo очень быстро перемещался, создавая таким образом ощущение скорости самолетиков на фоне медленно проплывающих огромных облаков. Затем я сделал анимацию крылышек самолетов с помощью FDD, чтобы создать эффект их деформации под действием порывов ветра.

В заключительном кадре вы видите действие эффекта Motion Blur примененного к самолетику в то время, когда он как бы ныряет в пучину облаков, приближаясь к земле. Движение в кадре продолжается еще некоторое время, позволяя зрителю наблюдать огромное пространство вокруг, после чего экран темнеет.

Вот, собственно, и все о чем я хотел рассказать. Кому-то может показаться, что некоторые моменты освещены слабо, но поймите меня правильно: невозможно в одной статье уместить пару-тройку учебников. Я намеренно не углублялся в детали, т.к. писал статью, а не книгу. Но в любом случае, если у вас появились какие-либо вопросы, или вы хотите поподробнее узнать о том или ином процессе, пишите мне на e-mail, и я с удовольствием отвечу.