Спецэффекты в Cinema 4D. Работа с клонированными объектами MoGraph
В этой и следующей частях материала мы рассмотрим серию спецэффектов, которые делаются за счет создания множества клонированных анимированных объектов. Данный метод используется для различных спецэффектов, а также в ряде случаев может заменить некоторые стандартные техники, в том числе и работу с частицами.
Общие вопросы
Для начала ответим на общие вопросы. Первое, о чем стоит сказать, — версии 9, 10, 11 и 12 довольно сильно отличаются. Особенно это выражено во внутренних инструментах. Разработчики от Maxon в последних продуктах пытаются значительно усилить анимационную часть, поэтому основные изменения происходят в данной сфере. Некоторые инструменты, которые используются в видеоуроках (читатели нередко спрашивают, почему у них не получается так, как показано где-то), а также книгах актуальны только для конкретной версии, в которой все и делается. Это вносит довольно много путаницы, поскольку использование того или иного инструмента на профессиональном уровне можно представить и в виде определенной техники. В целом общая рекомендация такова: скачивая уроки или книги, всегда обращайте внимание на номер версии Cinema4D. К примеру, начиная с 11-й версии используются абсолютно новые инструменты динамики, в 9-й фактически отсутствовал Morph.
Приведенный ниже пример-урок выполним на Cinema 4D 10, 11 и 12.
Второй момент, который стоит отметить. Сегодня мы будем работать с клонированными объектами, которые не стоит путать с копиями. Разница существенна, особенно при расчетах сложных сцен. Скопированный объект путем вставки Ctrl+C/Ctrl+V является самостоятельным и обсчитывается отдельно. Клонированный — это один и тот же объект, только расставленный в различных областях пространства. Вообще, все современные расчеты в 3D и анимации очень часто связаны с работой с множествами, любыми — частиц, вершин, полигонов, объектов. Инструменты для работы с ними во многом идентичны. Например, для объектов вы можете использовать гравитацию, подобный по действию модуль есть и для частиц, и для вершин в рамках Cloth (см. материал об анимации водной поверхности). В общем, чаще всего вполне достаточно понять основной принцип работы и профессионально освоить какое-нибудь конкретное направление. Нередкая ошибка — человек хватается сразу за все, в результате чего получает поверхностные знания.
Заставка — ТЗ
В качестве сегодняшнего примера давайте сделаем простейшую видеозаставку. В ее рамках продемонстрируем один из вариантов наиболее часто применимых современных техник работы с клонированными объектами и другими элементами от такого мощного инструмента, как MoGraph.
Итак, приступим. Для начала опишем некоторый сценарий заставки, составим небольшое ТЗ (техническое задание). Допустим, сама телепрограмма, для которой мы это делаем, агрессивная и мужская, посвящена технике. Следовательно, при формировании мы выбираем такие ассоциативные атрибуты, как огонь и металл. Причем сами буквы мы сформируем из металлических элементов — стержней, которые выплывают не одновременно, а с некоторыми задержками один за другим.
В объяснении все довольно просто.
После выделения полигонов, описывающих символы, подносим курсор мыши к одному из них и нажимаем клавишу U, после чего появится специальное меню, в рамках которого выбираем вариант I (Invert)
Создаем символы
В принципе, для нашего метода мы могли бы использовать буквы из стандартного набора шрифтов с использованием примитива Text. Как это сделать в рамках нашего метода, мы расскажем чуть позже. Давайте рассмотрим другой случай — буквы, а точнее, символы, мы нарисуем сами.
Открываем Cinema 4D, запускаем новый проект. В рабочую область помещаем примитив Plane. По умолчанию в его настройках стоят параметры 400х400 м с разбиением на 20 сегментов как по горизонтали, так и по вертикали. Это нам подходит. Устанавливаем плоскость проекции как XZ и переходим на просмотр сверху (Top).
Переводим панель Plane в полигональное представление (клавиша С). И этот вариант мы используем как рабочую сетку, из которой необходимо выделить те полигоны, которые нам необходимы для отображения букв. Допустим, нам нужно сделать какую-нибудь небольшую надпись, давайте возьмем, к примеру, «T7». Переходим в режим выделения полигонов, и, удерживая Shift, выделяем все те, которые образуют символы.
Примечание: при работе с выделениями множества объектов довольно часто мешают оси, их можно включать/отключать с помощью горячих клавиш Alt+G. Теперь подносим курсор мыши к одному из выделенных полигонов и нажимаем клавишу U, после чего появится специальное меню, в рамках которого выбираем вариант I (Invert). После этой операции выделяются полигоны, которые не относятся к символам, удаляем их с помощью клавиши Del. Теперь у нас остались только необходимые полигоны. Затем выделяем все, что осталось, нажимаем правую кнопку мыши и в контекстном меню выбираем вариант Disconnect (либо же опять воспользуемся меню по нажатии U). В появившемся окне с запросом убираем указатель для параметра Preserve Group. Нажимаем ОК. Теперь заходим в опцию главного меню Functions и выбираем там операцию Explode Segments.
Теперь смотрим, что мы получили в итоге... Каждый полигон стал отдельным объектом, что и требовалось.
Оставляем только нужные полигоны и переводим их в вид множества отдельных объектов
Анимационный объект
В рамках постановки ТЗ мы описали простейший вариант анимационного объекта, который станет основным кирпичиком для вывода символов. Напомним, что это появляющийся и удлиняющийся со временем металлический стержень.
Сделать его довольно просто. Для этого из сплайновых примитивов выбираем вариант Circle. Указываем для него радиус, равный 10 м, плоскость проекции — XZ.
Затем среди модификаторов выбираем вариант Extrude. Помещаем в него окружность в качестве дочернего объекта, а само выдавливание в рамках параметра Movement будет производиться только по оси Y (то, что стоит по умолчанию Z=20 м, обнуляем). Итак, находясь на нулевом кадре, указываем параметр выдавливания Movement по Y для Extrude. равным нулю. Делаем этот кадр ключевым (Add Keyframe в контекстном меню, которое появляется по нажатии правой кнопки мыши над названием самого параметра, либо делаем клик мышью на кружочке возле него при нажатой клавише Ctrl). Затем переходим к 15 или 20 кадру (на ваш выбор, от этого зависит скорость анимации), где указываем Movement по Y, равный, например, 300. Проверяем анимацию. Далее в настройках модификатора Extrude редактируем шапки-колпачки для обеих сторон по собственному усмотрению, и при желании, чтобы все было идеально, отключаем нашу окружность в нулевом кадре и включаем в первом (параметр Enable, включение/отключение делается так же, как и в случае с ключевыми кадрами для Movement).
Все, основные исходные блоки у нас есть, теперь осталось их собрать воедино.
С помощью Circle и Extrude создаем ключевой анимационный объект — стержень
Объединение исходных блоков
Массив полигонов, который у нас ассоциируется с символами, мы помещаем в объект Connect Object, который доступен в панели инструментов Modeling (там, где массивы, булевы и т.п.).
После этого выделяем в менеджере объектов наш анимационный блок Extrude, а затем при нажатой клавише Alt входим в пункт главного меню MoGraph и выбираем там Clone Object. В результате наш Extrude автоматически станет дочерним к Clone.
Теперь имеет смысл произвести настройку Clone Object. В первую очередь нужно изменить настройку по умолчанию в параметре Mode (режим). Там стоит Linear -> меняем на Object. Окно свойств преобразилось, и появилось пустое поле Object. Туда из менеджера объектов мы помещаем Connect Object, а в поле Mode, появившемся ниже, оно относится уже непосредственно к режиму привязки, меняем Vertex на Polygon Center. В результате, передвинув анимацию на 15 или 20 кадр, мы увидим в рабочей области произошедшие изменения, а именно, множество стержней, привязанных к центрам каждого из полигонов. Если они направлены не так, как нужно, следует внести коррективы в закладке Transform в свойствах Clone Object, а если говорить конкретно, то изменить угол P.
Все, теперь запускаем анимацию, наши буквы формируются из выплывающих стержней.
«Подключаем» стержень к массиву клонов
Добавление динамики
Для улучшения динамики нам необходимо сделать так, чтобы стержни выезжали не одновременно, а по очереди. Каким образом? На самом деле, очень просто. Достаточно выделить наш Clone Object в менеджере объектов, затем зайти в опцию главного меню MoGraph и выбрать инструмент Step Effector (очень часто вы можете услышать термины «стэп-анимация» или же «пошаговая анимация»). В его настройках следует отключить опцию Scale, иначе объекты начнут масштабироваться, а регулировкой значений параметра Time Offset мы регулируем время задержки. Нажимаем на анимацию, проверяем. Теперь обратите внимание на порядок выезда стержней. При внимательном просмотре вы обнаружите, что пошаговая анимация производится согласно списку в Connect Object. Первый полигон активизируется, соответственно, первым и так далее. Чтобы изменять порядок следования по своему усмотрению, нужно просто сделать перестановку в списке объектов в Connect Object.
Использование Step Effector позволяет сделать пошаговую анимацию
Добавление спецэффектов — огонь и дым
Огонь и дым, как, собственно, и облака, в Maxon Cinema 4D делаются с помощью модульных инструментов PyroClaster. Раньше они выпускались в качестве отдельного модуля, а в новых версиях включены в состав Advanced Renderer.
В рамках нашего примера мы покажем самый простой вариант использования.
Итак, первым делом в меню File панели материалов (!) находим Shader -> Shader PyroClaster и Shader -> PyroClaster – Volume Tracer. Добавляем их. Затем нам нужны объекты, но какие? На самом деле, для того, чтобы показать дым, облака и огонь, нужен генератор частиц (Emitter). Вставляем его. Ему предназначается первый материал, то есть PyroClaster. Затем нам нужно создать окружение, для чего мы вставляем в проект объект Environment. В его материалы подгружаем PyroClaster – Volume Tracer. Все, теперь можно наблюдать спецэффект, который, если вы все устанавливали по умолчанию, будет дымом. Далее имеет смысл поработать с настройками обоих материалов для достижения нужного эффекта.
Готовый вариант с использованием PyroClaster
Примечания к примеру
В принципе, в варианте с использованием массива полигонов мы несколько усложнили задачу, то есть показали метод не совсем начального уровня. Вместе с тем, стоит сказать, что в качестве объекта для Clone Object может послужить любая кривая (сплайн), в том числе и текст, переведенный к полигональному представлению.
Другой момент, на котором стоит заострить внимание, касается самих анимационных объектов, помещаемых в Clone. Дело в том, что анимации могут быть абсолютно любые, и даже очень сложные с перетеканием объектов по множеству форм, использованием деформаторов и так далее.
Помимо этого, в рамках нашего примера вы можете поэкспериментировать. Например, удлинить анимацию, добавив несколько новых фаз движения для стержня, чтобы надпись была активной и вела себя волнообразно.
Продолжение следует...
Кристофер
Общие вопросы
Для начала ответим на общие вопросы. Первое, о чем стоит сказать, — версии 9, 10, 11 и 12 довольно сильно отличаются. Особенно это выражено во внутренних инструментах. Разработчики от Maxon в последних продуктах пытаются значительно усилить анимационную часть, поэтому основные изменения происходят в данной сфере. Некоторые инструменты, которые используются в видеоуроках (читатели нередко спрашивают, почему у них не получается так, как показано где-то), а также книгах актуальны только для конкретной версии, в которой все и делается. Это вносит довольно много путаницы, поскольку использование того или иного инструмента на профессиональном уровне можно представить и в виде определенной техники. В целом общая рекомендация такова: скачивая уроки или книги, всегда обращайте внимание на номер версии Cinema4D. К примеру, начиная с 11-й версии используются абсолютно новые инструменты динамики, в 9-й фактически отсутствовал Morph.
Приведенный ниже пример-урок выполним на Cinema 4D 10, 11 и 12.
Второй момент, который стоит отметить. Сегодня мы будем работать с клонированными объектами, которые не стоит путать с копиями. Разница существенна, особенно при расчетах сложных сцен. Скопированный объект путем вставки Ctrl+C/Ctrl+V является самостоятельным и обсчитывается отдельно. Клонированный — это один и тот же объект, только расставленный в различных областях пространства. Вообще, все современные расчеты в 3D и анимации очень часто связаны с работой с множествами, любыми — частиц, вершин, полигонов, объектов. Инструменты для работы с ними во многом идентичны. Например, для объектов вы можете использовать гравитацию, подобный по действию модуль есть и для частиц, и для вершин в рамках Cloth (см. материал об анимации водной поверхности). В общем, чаще всего вполне достаточно понять основной принцип работы и профессионально освоить какое-нибудь конкретное направление. Нередкая ошибка — человек хватается сразу за все, в результате чего получает поверхностные знания.
Заставка — ТЗ
В качестве сегодняшнего примера давайте сделаем простейшую видеозаставку. В ее рамках продемонстрируем один из вариантов наиболее часто применимых современных техник работы с клонированными объектами и другими элементами от такого мощного инструмента, как MoGraph.
Итак, приступим. Для начала опишем некоторый сценарий заставки, составим небольшое ТЗ (техническое задание). Допустим, сама телепрограмма, для которой мы это делаем, агрессивная и мужская, посвящена технике. Следовательно, при формировании мы выбираем такие ассоциативные атрибуты, как огонь и металл. Причем сами буквы мы сформируем из металлических элементов — стержней, которые выплывают не одновременно, а с некоторыми задержками один за другим.
В объяснении все довольно просто.
После выделения полигонов, описывающих символы, подносим курсор мыши к одному из них и нажимаем клавишу U, после чего появится специальное меню, в рамках которого выбираем вариант I (Invert)
Создаем символы
В принципе, для нашего метода мы могли бы использовать буквы из стандартного набора шрифтов с использованием примитива Text. Как это сделать в рамках нашего метода, мы расскажем чуть позже. Давайте рассмотрим другой случай — буквы, а точнее, символы, мы нарисуем сами.
Открываем Cinema 4D, запускаем новый проект. В рабочую область помещаем примитив Plane. По умолчанию в его настройках стоят параметры 400х400 м с разбиением на 20 сегментов как по горизонтали, так и по вертикали. Это нам подходит. Устанавливаем плоскость проекции как XZ и переходим на просмотр сверху (Top).
Переводим панель Plane в полигональное представление (клавиша С). И этот вариант мы используем как рабочую сетку, из которой необходимо выделить те полигоны, которые нам необходимы для отображения букв. Допустим, нам нужно сделать какую-нибудь небольшую надпись, давайте возьмем, к примеру, «T7». Переходим в режим выделения полигонов, и, удерживая Shift, выделяем все те, которые образуют символы.
Примечание: при работе с выделениями множества объектов довольно часто мешают оси, их можно включать/отключать с помощью горячих клавиш Alt+G. Теперь подносим курсор мыши к одному из выделенных полигонов и нажимаем клавишу U, после чего появится специальное меню, в рамках которого выбираем вариант I (Invert). После этой операции выделяются полигоны, которые не относятся к символам, удаляем их с помощью клавиши Del. Теперь у нас остались только необходимые полигоны. Затем выделяем все, что осталось, нажимаем правую кнопку мыши и в контекстном меню выбираем вариант Disconnect (либо же опять воспользуемся меню по нажатии U). В появившемся окне с запросом убираем указатель для параметра Preserve Group. Нажимаем ОК. Теперь заходим в опцию главного меню Functions и выбираем там операцию Explode Segments.
Теперь смотрим, что мы получили в итоге... Каждый полигон стал отдельным объектом, что и требовалось.
Оставляем только нужные полигоны и переводим их в вид множества отдельных объектов
Анимационный объект
В рамках постановки ТЗ мы описали простейший вариант анимационного объекта, который станет основным кирпичиком для вывода символов. Напомним, что это появляющийся и удлиняющийся со временем металлический стержень.
Сделать его довольно просто. Для этого из сплайновых примитивов выбираем вариант Circle. Указываем для него радиус, равный 10 м, плоскость проекции — XZ.
Затем среди модификаторов выбираем вариант Extrude. Помещаем в него окружность в качестве дочернего объекта, а само выдавливание в рамках параметра Movement будет производиться только по оси Y (то, что стоит по умолчанию Z=20 м, обнуляем). Итак, находясь на нулевом кадре, указываем параметр выдавливания Movement по Y для Extrude. равным нулю. Делаем этот кадр ключевым (Add Keyframe в контекстном меню, которое появляется по нажатии правой кнопки мыши над названием самого параметра, либо делаем клик мышью на кружочке возле него при нажатой клавише Ctrl). Затем переходим к 15 или 20 кадру (на ваш выбор, от этого зависит скорость анимации), где указываем Movement по Y, равный, например, 300. Проверяем анимацию. Далее в настройках модификатора Extrude редактируем шапки-колпачки для обеих сторон по собственному усмотрению, и при желании, чтобы все было идеально, отключаем нашу окружность в нулевом кадре и включаем в первом (параметр Enable, включение/отключение делается так же, как и в случае с ключевыми кадрами для Movement).
Все, основные исходные блоки у нас есть, теперь осталось их собрать воедино.
С помощью Circle и Extrude создаем ключевой анимационный объект — стержень
Объединение исходных блоков
Массив полигонов, который у нас ассоциируется с символами, мы помещаем в объект Connect Object, который доступен в панели инструментов Modeling (там, где массивы, булевы и т.п.).
После этого выделяем в менеджере объектов наш анимационный блок Extrude, а затем при нажатой клавише Alt входим в пункт главного меню MoGraph и выбираем там Clone Object. В результате наш Extrude автоматически станет дочерним к Clone.
Теперь имеет смысл произвести настройку Clone Object. В первую очередь нужно изменить настройку по умолчанию в параметре Mode (режим). Там стоит Linear -> меняем на Object. Окно свойств преобразилось, и появилось пустое поле Object. Туда из менеджера объектов мы помещаем Connect Object, а в поле Mode, появившемся ниже, оно относится уже непосредственно к режиму привязки, меняем Vertex на Polygon Center. В результате, передвинув анимацию на 15 или 20 кадр, мы увидим в рабочей области произошедшие изменения, а именно, множество стержней, привязанных к центрам каждого из полигонов. Если они направлены не так, как нужно, следует внести коррективы в закладке Transform в свойствах Clone Object, а если говорить конкретно, то изменить угол P.
Все, теперь запускаем анимацию, наши буквы формируются из выплывающих стержней.
«Подключаем» стержень к массиву клонов
Добавление динамики
Для улучшения динамики нам необходимо сделать так, чтобы стержни выезжали не одновременно, а по очереди. Каким образом? На самом деле, очень просто. Достаточно выделить наш Clone Object в менеджере объектов, затем зайти в опцию главного меню MoGraph и выбрать инструмент Step Effector (очень часто вы можете услышать термины «стэп-анимация» или же «пошаговая анимация»). В его настройках следует отключить опцию Scale, иначе объекты начнут масштабироваться, а регулировкой значений параметра Time Offset мы регулируем время задержки. Нажимаем на анимацию, проверяем. Теперь обратите внимание на порядок выезда стержней. При внимательном просмотре вы обнаружите, что пошаговая анимация производится согласно списку в Connect Object. Первый полигон активизируется, соответственно, первым и так далее. Чтобы изменять порядок следования по своему усмотрению, нужно просто сделать перестановку в списке объектов в Connect Object.
Использование Step Effector позволяет сделать пошаговую анимацию
Добавление спецэффектов — огонь и дым
Огонь и дым, как, собственно, и облака, в Maxon Cinema 4D делаются с помощью модульных инструментов PyroClaster. Раньше они выпускались в качестве отдельного модуля, а в новых версиях включены в состав Advanced Renderer.
В рамках нашего примера мы покажем самый простой вариант использования.
Итак, первым делом в меню File панели материалов (!) находим Shader -> Shader PyroClaster и Shader -> PyroClaster – Volume Tracer. Добавляем их. Затем нам нужны объекты, но какие? На самом деле, для того, чтобы показать дым, облака и огонь, нужен генератор частиц (Emitter). Вставляем его. Ему предназначается первый материал, то есть PyroClaster. Затем нам нужно создать окружение, для чего мы вставляем в проект объект Environment. В его материалы подгружаем PyroClaster – Volume Tracer. Все, теперь можно наблюдать спецэффект, который, если вы все устанавливали по умолчанию, будет дымом. Далее имеет смысл поработать с настройками обоих материалов для достижения нужного эффекта.
Готовый вариант с использованием PyroClaster
Примечания к примеру
В принципе, в варианте с использованием массива полигонов мы несколько усложнили задачу, то есть показали метод не совсем начального уровня. Вместе с тем, стоит сказать, что в качестве объекта для Clone Object может послужить любая кривая (сплайн), в том числе и текст, переведенный к полигональному представлению.
Другой момент, на котором стоит заострить внимание, касается самих анимационных объектов, помещаемых в Clone. Дело в том, что анимации могут быть абсолютно любые, и даже очень сложные с перетеканием объектов по множеству форм, использованием деформаторов и так далее.
Помимо этого, в рамках нашего примера вы можете поэкспериментировать. Например, удлинить анимацию, добавив несколько новых фаз движения для стержня, чтобы надпись была активной и вела себя волнообразно.
Продолжение следует...
Кристофер
Компьютерная газета. Статья была опубликована в номере 41 за 2010 год в рубрике soft