В этом девятом уроке серии об огне и дыме с использованием симулятора Fluid в Blender 4.5 мы рассмотрим, как использовать Force Fields, такие как Turbulence и Curve Guide, чтобы влиять на поведение и траекторию элементов симуляции.


Этот урок является частью мини-серии из 10 эпизодов об основах огня и дыма в Blender 4.5. Чтобы просмотреть полный список эпизодов, нажмите здесь.

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


Текстовая расшифровка видео

Здравствуйте! В этом девятом уроке серии об огне и дыме с использованием симулятора Fluid в Blender 4.5 мы рассмотрим, как использовать Force Fields, такие как Turbulence и Curve Guide, чтобы влиять на поведение и траекторию элементов симуляции.

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

Добавив в сцену объект Empty, мы можем назначить ему Force Field, чтобы возмущать или направлять элементы симуляции. Force Fields находятся на панели Physics, так же как и симуляции Fluid для объектов Mesh. Я выбрал тип Empty Arrows, поскольку некоторые Force Fields действуют в определённых направлениях, и такой тип Empty позволяет сразу наглядно это видеть.

Затем я добавляю Force Field, который по умолчанию имеет тип Force. Для каждого Force Field всплывающая подсказка сообщает о его действии и направлениях, в которых он работает. Force по умолчанию имеет форму Point и действует радиально от своего центра. Однако при воспроизведении симуляции мы не замечаем никакого эффекта, хотя объект Inflow, похоже, находится в пределах действия Force Field.

В подобных случаях можно использовать следующий способ. После сохранения файла проекта укажите папку для кэша. Затем переключите режим Baking у Domain на All и дайте Blender вычислить симуляцию хотя бы для нескольких кадров.

После завершения процесса нажмите Play, чтобы проверить, была ли симуляция рассчитана корректно. Если всё в порядке, очистите Domain Cache и снова установите режим Baking на Replay.

Настройте длительность анимации проекта и диапазон кадров симуляции в Domain, затем нажмите Play на Timeline.

Если теперь симуляция работает корректно, с этого момента можно тестировать различные эффекты в режиме Replay.

Для управления интенсивностью эффектов Force Fields предоставляют параметр Strength, который применяется к выбранному Force Field и может быть анимирован.

В качестве примечания: вы можете изменить значение параметра сразу для нескольких выделенных объектов, если удерживать клавишу ALT перед тем, как щёлкнуть по полю для редактирования.

Таким образом, Strength позволяет регулировать, в том числе с помощью анимации, интенсивность отдельных Force Fields. Но, как мы узнали в уроках о Domain, можно также управлять влиянием всех Force Fields в сцене или всех Force Fields определённого типа. Эти настройки находятся в разделе Field Weights у Domain и, как и во многих других случаях, могут иметь ключевые кадры, то есть эффект одного или всех Force Fields можно анимировать во времени.

Параметр Strength у Force, как и у многих других Force Fields, может принимать отрицательные значения. В случае Force это приводит к притяжению огня к Force Field.

На экране я показываю пример, созданный анимацией движения Empty в сцене и установкой отрицательного значения для Force. Как вы можете представить, это интересный способ направлять огонь и дым.

Чтобы подробно разобрать все параметры каждого доступного Force Field, потребовалась бы отдельная мини-серия, поэтому здесь я этого делать не буду. Однако есть один раздел, который стоит рассмотреть, это Falloff, позволяющий задать диапазон влияния Force Field.

В данный момент Force Field воздействует на всё виртуальное пространство без ослабления. Чтобы показать более наглядный пример, я меняю Force на Wind, сохраняя отрицательное значение Strength. Несмотря на то что Wind действует только по оси Z и расположен довольно далеко от объекта Inflow, последний всё равно испытывает его влияние.

Чтобы ограничить диапазон влияния Force Field, можно использовать параметр Max Distance в разделе Falloff. По умолчанию этот параметр отключён. При его активации диапазон действия Force Field отображается в виде окружности в 3D Viewport. Как и многие другие параметры, Max Distance может иметь ключевые кадры, что делает его ещё одним способом управления эффектами Force Field в анимации. В данном случае Wind притягивает пламя и дым, потому что я оставил отрицательное значение Strength.

Теперь я отключаю Max Distance, возвращаю Force Field к исходной ориентации и устанавливаю положительное значение Strength, чтобы быстро рассмотреть ещё пару Force Fields.

Очень полезный Force Field для добавления движения пламени, конечно же, Turbulence. Возмущение, которое он создаёт, настолько сильное, что дым делает пламя менее заметным, поэтому я уменьшаю его с помощью опции Dissolve в Domain.

Turbulence можно сделать ещё более случайным, увеличив параметр Noise. Этот шум на самом деле псевдослучайный, поскольку следует определённым шаблонам, и вы можете выбрать шаблон с помощью параметра Noise Seed. Если ваше пламя выглядит слишком однородным даже после настройки Vorticity или добавления Textures, небольшой Force Field Turbulence может быть именно тем, что нужно.

В завершение рассмотрим Force Field Curve Guide, который позволяет заставить элементы симуляции следовать по пути. Для этого примера я заново создал начальную сцену, сохранив новый проект в отдельный файл и настроив новую папку кэша для Domain. Таким образом, начальные параметры Domain и объектов Inflow, размещённых в сцене, соответствуют значениям по умолчанию при их создании.

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

Также я перемещаю объект Inflow в сторону, чтобы освободить место для кривой пути.

После добавления кривой Bezier и её размещения для назначения Force Field Curve Guide результаты оказываются довольно разочаровывающими.

Если вы знакомы с кривыми и модификатором Curve Guide, вы знаете, что хорошей практикой является установка Origin кривой в начало пути и, что особенно важно, проверка правильной ориентации кривой. Это можно проверить в Edit Mode с помощью Curve Overlays, а неверную ориентацию можно исправить с помощью Switch Direction. После перезапуска симуляции результат становится немного лучше, но всё ещё далёк от желаемого.

Я пробовал различные настройки, например отключение гравитации в Domain и увеличение значения Curve Guide в разделе Field Weights. Конечно, я также снижал Vorticity и Reaction Speed, увеличивал разрешение и многое другое. Что-то изменилось, но недостаточно. Поэтому позвольте показать метод, который я обычно использую для получения нужного результата.

Я добавляю Particle System типа Emitter к объекту с Inflow и настраиваю базовые параметры так, чтобы частицы корректно испускались. Обратите внимание, что частицы сразу следуют по траектории кривой, поскольку эмиттер находится в пределах действия Force Field.

Диапазон действия Force Field можно задать в его панели с помощью параметра Minimum Distance. Там же можно установить Clumping равным 1, чтобы все частицы сходились в конечной точке кривой.

На этом этапе я устанавливаю Render для системы частиц эмиттера в значение None, потому что сами частицы не должны отображаться, и затем возвращаюсь к панели Inflow.

В этой панели я меняю Flow Source с Mesh на Particle System, указав только что созданную систему частиц. Таким образом, огонь и дым будут испускаться частицами, которые следуют по пути.

Далее можно настраивать такие параметры, как Fuel, Vorticity и другие, чтобы придать пламени желаемый вид.

Перед завершением урока я также покажу, как связать контрольную точку кривой с внешним объектом с помощью техники Hooking, что позволяет легко анимировать форму кривой. Сначала я выделяю кривую, перехожу в Edit Mode и выбираю последнюю контрольную точку. Затем использую оператор Hook, выбирая опцию Hook To New Object, которая создаёт для этой цели объект Empty.

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

Как вы могли заметить, в определённый момент испускание частиц прекращается. Этот параметр называется Frame End и находится на панели Particle System. В той же панели параметр Lifetime управляет тем, как быстро частицы перемещаются вдоль кривой.

Перед завершением ещё несколько замечаний.

Размер объекта Emitter определяет размер поверхности испускания. Поэтому если вы хотите, чтобы частицы были сосредоточены вдоль более узкой кривой, отрегулируйте размер этого объекта.

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

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

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


РАСШИРЕННАЯ ИНФОРМАЦИЯ О ПОЛИТИКЕ КОНФИДЕНЦИАЛЬНОСТИ И ИСПОЛЬЗОВАНИИ ФАЙЛОВ COOKIE