3D Studio MAX: первые шаги. Урок 27. Использование модуля Video Post (часть 2)

Светлана Шляхтина

Теоретические аспекты

Примеры сцен с композитингом

Ткань с рисунком

Сцена с анимированным логотопом

Анимация с переключением камер

Ролик с заставкой

Как мы выяснили на прошлом уроке, полученные при визуализации статичные изображения либо анимации могут быть подвергнуты дополнительной обработке модулем Video Post (Видеомонтаж). С одной стороны, это позволяет накладывать на отдельные объекты либо сразу на всю сцену визуальные эффекты (простые примеры получения таких эффектов мы рассмотрели на прошлом уроке), а с другой — осуществлять композитинг сцены (compositing), то есть комбинировать статичные изображения и анимации для достижения определенной цели, например для получения многослойных статичных композиций. С некоторыми приемами композитинга средствами Video Post мы ознакомимся в этом уроке.

Теоретические аспекты

Под композитингом (от англ. compositing — компоновка) понимают получение целостного изображения путем совмещения двух и более слоев отснятых на видеопленку объектов. Данный метод широко применяется в кино и на телевидении, когда требуется собрать в один визуальный ряд несколько слоев графики, видео и титров — нередко это бывает необходимо при создании рекламных роликов и видеоклипов, оформлении заставок, получении некоторых спецэффектов и т.п. Полноценный композитинг проводится в специализированных программных решениях, таких как Adobe After Effects, Combustion, Nuke и пр. Что касается пакета 3D Studio MAX, то возможности композитинга в нем весьма ограниченны, но, тем не менее, вполне достаточны, например, для получения многослойных статичных композиций.

Реализуется объединение слоев (на языке Video Post — событий) путем назначения им события ImageLayerEvent (Событие слоя изображения), позволяющего комбинировать между собой определенным образом (например, с подключением альфа-канала1 либо маски) готовые изображения и анимации, а также результаты визуализации сцены. Одним событием ImageLayerEvent можно скомпоновать только два слоя (например, изображение и результат визуализации), поэтому при необходимости компоновки множества слоев смешивание их производится поэтапно и требует подключения целого ряда событий ImageLayerEvent, а полученная в итоге очередь будет представлять собой очень сложную структуру глубоко вложенных иерархий событий Layer. Слой, расположенный в очереди событий вторым (то есть ниже первого), должен иметь прозрачные или полупрозрачные области — в противном случае лежащий над ним слой окажется полностью невидимым.

В Video Post предусмотрены следующие методы композитинга слоев:

  • Adobe Premiere Transition Filter — позволяет использовать для смешивания событий переходы Adobe Premiere;
  • Alpha Compositor — смешивает два события с учетом альфа-канала второго из них;
  • Cross Fade Transition — задает смену одного события другим через постепенное проявление (применение данного метода имеет смысл только при проигрывании нескольких кадров);
  • Pseudo Alpha — создает альфа-канал для изображения, указанного в нижнем событии, таким образом, что в нем окажутся полностью прозрачными все те пикселы, цвет которых совпадает с цветом левого верхнего пиксела исходного RGB-файла; данный метод применяется для удаления фонового цвета;
  • Simple Additive Compositor — смешивает слои, используя для определения уровня прозрачности значение интенсивности (HSV) изображения переднего плана, при этом области полной интенсивности (255) будут абсолютно непрозрачны, области нулевой и промежуточной интенсивности полностью прозрачны;
  • Simple Wipe — задает смену одного события другим путем его постепенного выдвигания в нужном направлении (применение данного метода имеет смысл только при проигрывании нескольких кадров).

Для примера создайте новую сцену с одним или двумя произвольными примитивами — мы остановились на двух растениях из группы встроенных растительных объектов Follage (Create=>Geometry=>AECExtended) — рис. 1. Попробуем применить модуль VideoPost для добавления к данным объектам фонового изображения. Разумеется, внедрить фоновое изображение в сцену можно и через окружение, открыв из меню Rendering (Рендеринг) команду Environment (Окружение), щелкнув вначале на кнопке EnvironmentMap, а затем на строке Bitmap и указав подходящий графический файл в качестве фона. Но мы все-таки воспользуемся модулем VideoPost, поскольку на данном примере будет проще всего понять процесс смешивания событий. Откройте окно VideoPost, воспользовавшись командой Rendering=>VideoPost (Визуализация=>Видеомонтаж). Добавьте в очередь событие ввода изображения, щелкнув на кнопке AddImageInputEvent, и в качестве изображения укажите предполагаемый фон — в данном случае это пейзаж, полученный в программе Terragen (рис. 2 и 3). Добавьте в очередь событие Сцена (кнопка AddSceneEvent), установив для визуализации окно Perspective (рис. 4). Для запуска выполнения событий из очереди щелкните на кнопке ExecuteSequence, включите вариант Single и в качестве визуализируемого кадра укажите нулевой кадр. Пока на итоговом изображении никакого фона не будет (рис. 5), поскольку смешивание не настроено и события лишь меняют друг друга — то есть вначале отобразится фоновое изображение (поскольку оно установлено первым), которое тут же будет заменено изображением, полученным при визуализации сцены.

 

Рис. 1. Исходная сцена

Рис. 1. Исходная сцена

 

Рис. 2. Фоновое изображение

Рис. 2. Фоновое изображение

 

Рис. 3. Окно Video Post с добавленным фоновым изображением

Рис. 3. Окно Video Post с добавленным фоновым изображением

 

Рис. 4. Появление в очереди события SceneEvent

Рис. 4. Появление в очереди события SceneEvent

 

Рис. 5. Результат первоначального выполнения очереди

Рис. 5. Результат первоначального выполнения очереди

 

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

 

Рис. 6. Окно визуализации сцены в режиме альфа-канала

Рис. 6. Окно визуализации сцены в режиме альфа-канала

 

Для смешивания установленных в очереди слоев переключитесь в окно VideoPost, при нажатой клавише Shift выделите оба события, щелкните на кнопке AddImageLayerEvent, в области LayerPlug-In укажите в списке вариант AlphaCompositor и нажмите кнопку Ok (рис. 7). Запустите выполнение событий очереди и убедитесь, что теперь растения вполне гармонично вписались в фон (рис. 8).

 

Рис. 7. Вид окна VideoPost после первого смешивания слоев

Рис. 7. Вид окна VideoPost после первого смешивания слоев

 

Рис. 8. Результат внедрения в сцену фонового изображения

Рис. 8. Результат внедрения в сцену фонового изображения

 

Смешать события столь просто нам удалось лишь потому, что в качестве второго фигурировало событие Сцена. При нахождении на его месте произвольного изображения процесс оказался бы сложнее — данное изображение пришлось бы дополнить альфа-каналом и сохранить в формате TGA с учетом этого альфа-канала. Хотя можно было пойти и иным путем — создать изображение без альфа-канала, но дополнительно подготовить для него черно-белое изображение и подключить последнее в качестве маски слоя. Рассмотрим оба эти варианта на простых примерах.

Откройте в Photoshop (может быть задействован и любой другой графический пакет, в котором предусмотрена возможность сохранения TGA-файлов с внедренным альфа-каналом) подходящее растровое изображение (рис. 9). Попробуем подключить его в Video Post отдельным слоем и так смешать с вышестоящими слоями, чтобы краб с данного изображения оказался в правом нижнем углу сцены. Для этого вначале придется создать на его основе TGA-изображение с альфа-каналом. Получим альфа-канал из выделенной области. Для удобства выделения сделайте фотографию более яркой и контрастной, настроив параметры Brightness/Contrast (меню Image=>Adjustments=>Brightness/Contrast). В режиме быстрой маски выделите фон вокруг краба и сделайте контуры выделения более мягкими, применив к изображению фильтр GaussianBlur с радиусом размытия в 5 пикселов. Вернитесь в обычный режим и сохраните выделенную область командой Select=> Save Selection, назвав ее NewChannel (рис. 10). Это приведет к появлению нового канала с соответствующим именем, в чем несложно будет убедиться, открыв палитру Channels (рис. 11), — данный канал и сыграет роль альфа-канала. Сделайте канал RGB невидимым, щелкнув на иконке с изображением глаза. Как видно из рис. 12, первоначально на альфа-канале краб оказался закрашенным черным цветом, а фон — белым. Однако нам требуется обратное сочетание цветов — ведь видимым должен быть краб, а не фон. Поэтому выделите волшебной палочкой на альфа-канале фон и залейте его черным цветом, потом инвертируйте выделение и залейте выделенную область белым цветом (рис. 13). Теперь требуется удалить фон на RGB-канале. Вновь выделите волшебной палочкой на альфа-канале фон (рис. 14), переключитесь на канал RGB (рис. 15) и нажмите клавишу Del — фон удалится (рис. 16). Верните фотографии естественные яркость и контрастность (команда Image=>Adjustments=>Brightness/Contrast) — рис. 17. Сохраните изображение, воспользовавшись командой File=> Save As, укажите в качестве расширения TGA, обязательно включите флажок AlphaChannels и выберите разрешение 32 bits/pixel (рис. 18) — в нашем случае будет получено изображение Crab.tga.

 

Рис. 9. Растровое изображение

Рис. 9. Растровое изображение

 

Рис. 10. Выделение фона

Рис. 10. Выделение фона

 

Рис. 11. Появление нового канала

Рис. 11. Появление нового канала

 

Рис. 12. Вид изображения на альфа-канале

Рис. 12. Вид изображения на альфа-канале

 

Рис. 13. Результат перекраски цветов на альфа-канале

Рис. 13. Результат перекраски цветов на альфа-канале

 

Рис. 14. Выделение фона на альфа-канале

Рис. 14. Выделение фона на альфа-канале

 

Рис. 15. Активирование канала RGB при выделенном на альфа-канале фоне

Рис. 15. Активирование канала RGB при выделенном на альфа-канале фоне

 

Рис. 16. Результат удаления фона на канале RGB

Рис. 16. Результат удаления фона на канале RGB

 

Рис. 17. Вид фотографии после повторной корректировки яркости и контрастности

Рис. 17. Вид фотографии после повторной корректировки яркости и контрастности

 

Рис. 18. Сохранение изображения в формате TGA с внедренным альфа-каналом

Рис. 18. Сохранение изображения в формате TGA с внедренным альфа-каналом

 

Переключитесь в 3D Studio MAX. Добавьте в очередь событие ввода изображения (кнопка AddImageInputEvent) и укажите только что сохраненную фотографию (рис. 19). Щелкните на кнопке ExecuteSequence — пока видно лишь изображение последнего слоя (рис. 20). Вначале уменьшим размеры изображения и отрегулируем его положение. По замыслу краб должен располагаться в правой нижней части изображения. Для достижения этого дважды щелкните на строке с соответствующим событием, а затем на кнопке Options (рис. 21). В открывшемся окне ImageInput Options в области Aligment щелкните на правом нижнем квадратике, а в области Size установите переключатель Custom Size и введите предполагаемые размеры краба (рис. 22). Теперь краб станет меньше и действительно окажется в нужном углу (рис. 23).

 

Рис. 19. Появление в очереди второго события ImageLayerEvent

Рис. 19. Появление в очереди второго события ImageLayerEvent

 

Рис. 20. Результат выполнения очереди после внедрения второго события ImageLayerEvent

Рис. 20. Результат выполнения очереди после внедрения второго события ImageLayerEvent

 

Рис. 21. Кнопка Options

Рис. 21. Кнопка Options

 

Рис. 22. Корректировка размеров и положения изображения

Рис. 22. Корректировка размеров и положения изображения

 

Рис. 23. Вид результирующего изображения после настройки параметров изображения

Рис. 23. Вид результирующего изображения после настройки параметров изображения

 

Смешаем слои: в окне VideoPost выделите строки AlphaCompositor и Crab. tga (рис. 24), щелкните на кнопке AddImageLayerEvent и установите вариант AlphaCompositor (рис. 25). Запустите очередь на выполнение — теперь никакого черного фона вокруг краба уже не будет (рис. 26).

 

Рис. 24. Выделение смешиваемых слоев

Рис. 24. Выделение смешиваемых слоев

 

Рис. 25. Вид окна VideoPost после второго смешивания слоев

Рис. 25. Вид окна VideoPost после второго смешивания слоев

 

Рис. 26. Краб на фоне пейзажа с внедренной растительностью

Рис. 26. Краб на фоне пейзажа с внедренной растительностью

 

Как было отмечено выше, смешивание слоев может производиться с применением масок. Попробуем таким способом внедрить в рабочую последовательность VideoPost рамку. Вначале создайте само изображение рамки в любом графическом редакторе, в частности в Photoshop (рис. 27), и сохраните его в файле Frame. png (рис. 28). Обратите внимание, что никакого альфа-канала изображение рамки не содержит, а сама рамка находится на прозрачном фоне. Добавьте в очередь событие ImageInputEvent и укажите файл рамки (рис. 29). Выделите верхнюю строку AlphaCompositor и строку Frame.png, щелкните на кнопке AddImageLayerEvent и установите вариант AlphaCompositor (рис. 30). Щелкните на кнопке ExecuteSequence — вокруг пейзажа появится рамка (рис. 31). Пока она не имеет изменений, а нам бы хотелось смешать ее с пейзажем с применением маски. Переключитесь в Photoshop, выделите волшебной палочкой прозрачную область и сохраните ее, что приведет к появлению альфа-канала. Активируйте палитру каналов и отключите канал RGB (рис. 32), выделите все изображение на альфа-канале, скопируйте его в буфер обмена, создайте новый документ и вставьте изображение из буфера, а затем модифицируйте, добиваясь получения желаемой маски (рис. 33), — мы просто размыли изображение по Гауссу. В окне VideoPost дважды щелкните на верхней строке AlphaCompositor. В открывшемся окне Edit Layer Event в области Mask щелкните на кнопке Files и укажите файл маски, а затем вместо варианта AlphaChannel установите ZBuffer (рис. 34). Запустите очередь на выполнение — рамка окажется размытой в соответствии с маской и данными канала ZBuffer (рис. 35).

 

Рис. 27. Вид созданной рамки в окне графического редактора

Рис. 27. Вид созданной рамки в окне графического редактора

 

Рис. 28. Готовая рамка

Рис. 28. Готовая рамка

 

Рис. 29. Появление в очереди VideoPost рамки

Рис. 29. Появление в очереди VideoPost рамки

 

Рис. 30. Вид окна VideoPost после третьего смешивания слоев

Рис. 30. Вид окна VideoPost после третьего смешивания слоев

 

Рис. 31. Результат первоначального наложения рамки

Рис. 31. Результат первоначального наложения рамки

 

Рис. 32. Вид рамки с отключенным каналом RGB

Рис. 32. Вид рамки с отключенным каналом RGB

 

Рис. 33. Маска

Рис. 33. Маска

 

Рис. 34. Настройка параметров смешивания по маске

Рис. 34. Настройка параметров смешивания по маске

 

Рис. 35. Пейзаж в рамке

Рис. 35. Пейзаж в рамке

Если в сцене имеются анимационные события (то есть AVI-ролики либо слои, смешанные с применением анимационных методов композитинга — Cross Fade Transition или Simple Wipe), то они могут быть зациклены. Чтобы разобраться с этим, создайте новую сцену с произвольным объектом (рис. 36) и откройте окно VideoPost. Последовательно добавьте в сцену события SceneEvent, ImageInputEvent и ImageOutputEvent (рис. 37). Установите для первых двух длительность с 0-го по 30-й кадры, а для третьего — с 0-го по 300-й. Для события Сцена в качестве визуализируемого окна укажите окно перспективы, а для ImageInputEvent подключите специально созданное в графическом редакторе изображение с черным фоном, сохраненное под именем BackBackground.png, — рис. 38. Обратите внимание, что размер данного изображения должен совпадать с размером, который будет указываться при рендеринге в VideoPost (в нашем случае мы ограничились размерами 480х360). Для события вывода изображения укажите AVI-файл, в котором будет сохранена анимация.

 

Рис. 36. Исходная сцена

Рис. 36. Исходная сцена

 

Рис. 37. Появление трех событий в окне VideoPost

Рис. 37. Появление трех событий в окне VideoPost

 

Рис. 38. Черный фон

Рис. 38. Черный фон

 

Сделаем так, чтобы объект сцены в ходе анимации постепенно исчезал, затем проявлялся, затем опять исчезал и т.д. — то есть как бы пульсировал. Вручную получение подобного эффекта потребует многократного повторения событий Perspective и BackBackground. png, объединенных в единую композицию с помощью метода Cross Fade Transition. Гораздо быстрее и проще эти события зациклить, объединив через особое событие Loop Event, которое позволяет прокручивать последовательность действий по методам:

  • Loop (Периодический) — обеспечивает плавное периодическое повторение анимации за счет усреднения значений начала и конца диапазона;
  • Ping-Pong (Циклически зеркальный) — повторяет анимацию, комбинируя прямое и обратное направление ее развития.

Вначале настроим саму смену событий. Выделите строки Perspective и BackBackground.png, щелкните на кнопке AddImageLayerEvent и в области LayerPlug-In укажите вариант Cross Fade Transition (рис. 39). Запустите выполнение событий очереди и убедитесь, что первоначально яркий объект постепенно растворяется в фоне. Теперь требуется организовать зацикливание. Выделите строку Cross Fade Transition, щелкните на кнопке AddLoopEvent и настройте параметры Loop-события в соответствии с рис. 40. В итоге иерархическая структура событий усложнится (рис. 41) и задуманный эффект окажется достигнутым, в чем несложно убедиться, проиграв полученную при выполнении очереди анимацию. Для большего эффекта можно дополнительно назначить событию Сцена эффект свечения: выделите строку Perspective, щелкните на кнопке на кнопке AddImageFilterEvent и установите эффект LensEffectsGlow (рис. 42). Щелкните на кнопке Setup данного эффекта, на вкладке Properties проверьте, стоит ли в поле ObjectID значение 1. На вкладке Preferences увеличьте значение параметра Size (устанавливает размер эффекта) до 30, а в группе Color включите флажок User, установите цвет свечения и уменьшите значение параметра Intensity (управляет яркостью эффекта) до 5% (рис. 43). По окончании выделите объект сцены, откройте окно его свойств, щелкнув на нем правой кнопкой и выбрав команду Object Properties, и установите в группе G-Buffer для параметра Object ID значение 1. Теперь при анимации пульсирование объекта станет гораздо эффектнее (рис. 44).

 

Рис. 39. Вид окна VideoPost после смешивания слоев

Рис. 39. Вид окна VideoPost после смешивания слоев

 

Рис. 40. Настройка параметров события LoopEvent

Рис. 40. Настройка параметров события LoopEvent

 

Рис. 41. Появление в окне VideoPost события LoopEvent

Рис. 41. Появление в окне VideoPost события LoopEvent

 

Рис. 42. Добавление фильтра LensEffectsGlow

Рис. 42. Добавление фильтра LensEffectsGlow

 

Рис. 43. Настройка параметров фильтра LensEffectsGlow

Рис. 43. Настройка параметров фильтра LensEffectsGlow

 

Рис. 44. Пульсирующий светящийся объект

Рис. 44. Пульсирующий светящийся объект


1 Альфа-каналом называют информацию о степени прозрачности пикселов изображения. Возврат

В начало В начало

next

КомпьютерПресс 8'2008


Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует