ВИДЕОМОНТАЖЁРDAVINCI RESOLVE · ВИДЕО · AI
Обработка частицFUSION

pBounce

Отскок частиц

pBounce заставляет существующие частицы сталкиваться с Region и отражаться от неё. Elasticity управляет сохранением скорости после удара, Variance/Roughness — разбросом отражения, Spin — вращением, а Surface Motion позволяет поверхности передавать частицам дополнительное движение.

Нода в работе
Иллюстрация нодыpBounce
РезультатЧастицы

pBounce

Обзор

Что делает pBounce

pBounce ставится внутри particle-цепочки между источником/другими particle-нодами и pRender. Он не создаёт частицы и не рендерит их: нода получает уже существующий particle-stream, проверяет столкновение с выбранной Region и пересчитывает движение подходящих частиц после контакта.

Главный параметр — Elasticity. Значение 1.0 сохраняет после столкновения примерно ту же величину скорости, с которой частица вошла в Region. При 0.1 остаётся около 10% исходной скорости. Ползунок обычно ограничен 0–1, но значения выше 1 можно вводить вручную — тогда частица получает дополнительный импульс после удара. Отрицательные значения принимаются, но руководство прямо отмечает, что полезного результата они не дают.

Variance и Roughness оба разрушают слишком идеальное отражение, но их удобнее мыслить по-разному. Variance добавляет разброс к углу отражения относительно поверхности. Roughness дополнительно слегка рандомизирует направление bounce, имитируя менее гладкую поверхность. Для естественного результата начинайте с малых значений и меняйте их по одному.

Spin влияет на ориентацию/вращение частицы при столкновении. Положительные значения добавляют forward spin, отрицательные — backward spin; больший модуль увеличивает скорость вращения. Эффект особенно заметен на частицах, у которых форма имеет читаемое направление: осколках, листьях, вытянутых sprite-элементах.

Surface Motion заставляет Region вести себя так, словно сама поверхность движется и передаёт часть движения частице. Surface Motion Direction задаёт угол этого движения относительно поверхности. Это не отдельная force-нода и не движение самой Region в пространстве: это дополнительная составляющая реакции при bounce.

Conditions решают, какие частицы вообще подпадают под действие pBounce. Probability рассчитывается для каждой частицы на каждом кадре. Поэтому 0.6 означает 60-процентный шанс быть затронутой на конкретном кадре, а не постоянный выбор одной группы из 60% частиц на весь lifespan.

Start/End Age ограничивают pBounce нормализованной долей жизни частицы от 0 до 1. Например, 0.8–1.0 оставляет collision-поведение только на последних 20% lifespan. Это полезно, когда одна и та же частица должна сначала свободно лететь, а позже начать взаимодействовать с препятствием.

Set Mode работает только с Sets, уже назначенными upstream-нодами, которые создают или меняют particles. Ignore Sets игнорирует Set-чекбоксы, Affect Specified Sets оставляет pBounce только для выбранных Sets, Ignore Specified Sets — исключает выбранные Sets. Сами чекбоксы pBounce новые группы не создают.

Region определяет поверхность столкновения. Встроенные All, Bezier, Cube, Line, Rectangle и Sphere формируются параметрами самой ноды и не требуют дополнительного data-cable. Line удобно использовать как пол/стену, Rectangle — как плоскость, Cube/Sphere — как объёмную поверхность, Bezier — как пользовательский контур.

У pBounce нет постоянного синего Region/Mask-входа. По умолчанию физически существует только оранжевый particle-input. При Region = Bitmap появляется динамический Region socket для 2D image/selectable channel; при Region = Mesh этот же логический socket принимает 3D mesh. Его цвет может быть зелёным или magenta в зависимости от режима/порядка появления.

Bitmap и Mesh поэтому нельзя объяснять как обычный Effect Mask. Они задают саму геометрию поверхности, от которой частицы отскакивают. Встроенные Line/Rectangle/Sphere работают без внешнего Region-источника, а Bitmap/Mesh требуют отдельную ветку Flow соответствующего типа.

Для эффекта смены внешнего вида именно в момент удара полезен порядок вычисления particle-нод. Официальный пример Blackmagic ставит pChangeStyle перед pBounce и даёт им одну и ту же Region: pChangeStyle успевает изменить частицу на пересечении области до того, как pBounce отразит её от поверхности. Если поставить pChangeStyle после bounce, частица уже может не пересечь Region этой ноды.

pBounce отличается от pAvoid принципиально: pAvoid создаёт steering/desire до контакта и может быть преодолён большим momentum, а pBounce предназначен именно для collision/rebound при контакте с Region. Финальную физику всегда проверяйте в playback через pRender, поскольку скорость, возраст, Probability и соседние particle-forces развиваются во времени.

Когда применять

  • Сделать искры или капли, которые отскакивают от пола/стены.

  • Создать столкновение particle-потока со Sphere, Cube, Rectangle или Line.

  • Использовать Bitmap-силуэт как 2D collision Region.

  • Заставить частицы взаимодействовать со сложной 3D mesh-геометрией.

  • Разделить collision-поведение по Age, Probability или particle Sets.

  • Передать частицам движение поверхности через Surface Motion.

  • Изменить вид частицы перед bounce через pChangeStyle, использующий ту же Region.