Чтобы мы могли сосредоточиться на работе с новыми функциями, я подготовил файл проекта в пакете сопутствующих материалов: PSD_R21_VektorVolumen_start.c4d. Он содержит параметрический шар-объект и два эмиттера частиц, направленные сверху или снизу на шар. Цель этого учебника - чтобы выпускаемые частицы попадали на шар и распределялись оттуда во все стороны.
Давайте кратко рассмотрим составляющие сцены. Оба эмиттера частиц имеют одинаковые настройки: они выбрасывают 500 частиц до кадра 300, при этом время жизни частиц составляет 1000 кадров, что достаточно до конца длины анимации.
Нажатие кнопки воспроизведения показывает, что частицы обоих эмиттеров пока еще безразлично пролетают через шар. Давайте сейчас это исправим.
Структура первого векторного поля
Мы начнем с того, чтобы с помощью предоставленной шаром геометрии сгенерировать первое векторное поле. Оно должно направлять падающие частицы вокруг шара в соответствии с случайным узором.
Сначала возьмем генератор объема из меню Объем.
Затем перетащим шар-объект внутрь генератора объема через Менеджер объектов в качестве подобъекта. В настоящее время в качестве типа объема указано поле расстояний, поэтому генератор объема в настоящее время создает наш шар из вокселей.
Чтобы превратить шар в векторное поле, мы просто меняем тип объема в соответствующем меню на тип вектор.
Теперь, для более точного деления векторного поля, нам нужно изменить размер вокселя. Значение в 5 см полностью удовлетворит наши цели.
Таким образом, из нашего изначального шар-объекта теперь, благодаря мешеру объема, стало радиальное поле из бесчисленных векторов.
Если мы приблизимся к векторному полю, мы увидим отдельные векторы, все они перпендикулярны позиции на поверхности шара. Следовательно, возникающие силы направлены от шара. Это далеко не то, что нам нужно для перенаправления частиц вокруг шара.
Итак, нам нужно заняться двумя вещами: векторы должны лежать параллельно поверхности шара и должны иметь случайный узор, чтобы частицы на поверхности были направлены в разные стороны.
За случайный узор отвечает поле случайных величин, которое мы добавляем в сцену через меню Создать>Поле.
Перетащим поле случайных величин через Менеджер объектов внутрь генератора объема в качестве подобъекта. В диалоге настроек генератора объема поле случайных величин отображается как слой выше нашего шара.
В трехмерном виде видно, что оба векторных поля пока не работают так, как нам нужно. Поле случайных величин должно действовать на векторы-шар, указанные в списке ниже.
Для этого выберем запись поля случайных величин в списке объектов в генераторе объема и в настройках поля случайных величин внизу установим пространство генерации на объекты перед ним.
Теперь поле случайных величин действует как задумано на все предоставленные шаром векторы. Нам осталось только добиться того, чтобы хаотично повернутые векторы указывали вдоль поверхности шара.
Режим смешивания между полем случайных величин и шаром, видимо, еще не соответствует. В списке объектов выберем для поля случайных величин метод смешивания крест. Этот метод именно для того, чтобы определить перпендикуляр двух перемешанных векторов через векторное произведение.
Как показывает наш обзор в 3D, векторы в этом шаге проходят вдоль нашей сферы, как задумано.
Использование поля силы
Теперь мы подготовили первое векторное поле для перемещения частиц вокруг сферы, но пока частицы еще не отреагировали на наши векторы.
Чтобы векторы нашего собственного созданного поля могли действовать как силы, нам нужен так называемый объект поля силы. Мы найдем его в меню Симуляция>Силы.
Чтобы наше векторное поле действовало как поле силы, мы открываем диалоговое окно настроек поля силы и перетаскиваем развертыватель объема методом Drag-and-drop на Объект-Менеджер в поле объекта объекта-поля силы.
Сразу же при отпускании нас попросят выбрать, должен ли развертыватель объема быть рассмотрен как точечный или объемный объект. Мы, конечно же, выбираем опцию объемный объект.
Теперь наше векторное поле, определенное развертывателем объема, должно отображаться в списке полей силы. Мы видим, что поле силы также работает через слои и режимы смешивания, что позволяет предположить новые возможности с объектом поля силы.
Когда мы запускаем анимацию кнопкой воспроизведения, видим, что частицы теперь влияются наше векторное поле.
Это еще не желаемый результат. В данный момент в поле силы объекта активен тип Добавить к скорости, поэтому частицы просто отклоняются с более высокой скоростью. Однако мы хотим, чтобы частицы меняли свое направление согласно векторам, что мы выбираем в меню тип скорости соответственно.
После этого изменения анимация уже выглядит лучше. Многие частицы уже начинают находить свой путь по поверхности сферы, но другие отклоняются от сферы. Также стоит отметить, что эти отклоненные частицы движутся по очень странным путям.
Это можно исправить очень просто, выбрав в диалоговом окне настроек поля силы объекта развертыватель объема в списке объектов и в его настройках на странице Слои- установив режим Выборка с Следующего на Линейный. Таким образом, вместо округления до ближайшего вокселя будет использоваться линейное среднее значение.
После этого отклоненные от сферы частицы уже движутся гораздо свободнее. Далее мы также будем учитывать, чтобы эти частицы также оставались на поверхности сферы.
Чтобы траектории частиц, движущихся по поверхности сферы, не были слишком сложными, мы увеличиваем в диалоговом окне настроек поля случайности размер базового шума. Конечно, каждому свободно экспериментировать с настройками поля случайности.
Если мы выберем объект поля случайности, мы сможем изменить параметр размер интерактивно в обзоре 3D собственным захватом. Я решила установить размер на 300 %, чтобы шум был отчетливо виден в векторах.
Построение второго векторного поля
Как уже подсказывает название нашего объекта "Внутренняя сфера", помимо недавно завершенного векторного поля для внутренней сферы должно быть еще второе векторное поле для внешней сферы. Эта вторая, немного большая сфера должна гарантировать, что, если частицы отражаются, они снова возвращаются на поверхность внутренней сферы.
Мы дублируем объект сферы, перетаскивая его с зажатой клавишей Ctrl в Менеджере объектов, оставляем его как дочерний объект развертывателя объема и даем ему дополнение "внешний", чтобы можно было отличить обе сферы друг от друга. Кроме того, этой внешней сфере мы даем радиус, больший на 2 см, для перемещения частиц.
Создатель объема уже сгенерировал соответствующее векторное поле из второй внешней капсулы и добавил его к уже существующим объектам.
Теперь в списке объектов в диалоговом окне настроек создателя объема внешняя капсула находится на верхнем месте и будет обработана последней. Но мы хотим, чтобы сначала внешнюю капсулу пронизывали частицы, а затем она не отпускала частицы.
Внесем некоторый порядок в список объектов. Сначала переместим "внешнюю капсулу" в самый нижний ряд. Поскольку поле случайных чисел действует на лежащую ниже "внутреннюю капсулу", но при этом должно обрабатываться сразу после "внешней капсулы", мы просто создаем папку, в которую можем переместить поле случайных чисел и внутреннюю капсулу. Для этого нажмите кнопку "Папка-" под списком объектов.
Теперь перемещаем поле случайных чисел и внутреннюю капсулу из списка объектов создателя объема в эту новую папку путем перетаскивания.
Поскольку внешняя капсула, векторы которой перпендикулярны к поверхности капсулы, действует первой, попадающие на нее частицы в настоящее время полностью отражаются. Чтобы изменить векторное поле внешней капсулы, мы используем векторный фильтр, из которых нам также доступно несколько для работы с векторами. Мы находим меню векторных фильтров под списком объектов и выбираем Фильтр инвертирования вектора-.
Поскольку мы хотим, чтобы векторный фильтр действовал исключительно на векторы внешней капсулы, мы помещаем его путем перетаскивания непосредственно над "внешней капсулой".
Теперь все должно работать как задумано. Нажав на кнопку воспроизведения, мы видим, что все векторные поля настроены правильно. Частицы сталкиваются с капсулой и случайным образом распределяются по поверхности.
Мы можем добавить еще немного жизни в потоки частиц, анимируя шумовой узор поля случайных чисел.
Для этого открываем диалоговое окно настроек поля случайных чисел и устанавливаем начальную скорость, в моем примере 50 %.
Теперь потоки частиц станут короче из-за анимированного шумового узора, они разбиваются на более мелкие участки.
Преобразование частиц в сплайн-пассы
Теперь, как только частицы, мы можем, конечно же, отправить любой - предпочтительно небольшой - объект в путь по поверхности капсулы. Альтернатива - автоматически отслеживать пути частиц и преобразовывать их в сплайн-пассы. Для этого нам понадобится объект трассировщика из меню MoGraph.
Чтобы преобразовать потоки частиц обоих излучателей в сплайн-пассы, перетаскиваем оба объекта излучателей в менеджер объектов в поле Связь трассировщика в диалоговом окне настроек объекта трассировщика.
Поскольку излучатели в конечном итоге выделяют значительное количество частиц, мы ограничиваем длину сплайн-пассов, созданных трассировщиком. В диалоговом окне настроек объекта трассировщика выбираем Конец …
... и через параметр Кадры устанавливаем длину сплайн-пассов. Я выбрал длину в 100 кадров. Меньшие значения дадут соответственно более короткие сплайн-пассы.
После нажатия кнопки воспроизведения мы можем наблюдать, как созданные трассировщиком сплайн-пассы анимированно проходят по поверхности капсулы.
Для открывашки этого учебного пособия я создал дубликат объекта капсулы и окрасил его красным материалом. За исключением трассировщика, можно отключить видимость всех остальных объектов в менеджере объектов.
Чтобы создать трехмерные объекты из путей сплайнов, сгенерированных объектом Tracer, вы можете, например, подчинить объект Tracer вместе с объектом Circle объекту Sweep. Однако в этом случае обратите внимание на количество частиц и их продолжительность жизни, в противном случае компьютер очень быстро сдастся...