p Flock
Поведение стаи
pFlock заставляет частицы учитывать соседей: Flock Number задаёт размер локальной группы, Follow согласует движение, Attract возвращает слишком удалившиеся частицы, Repel раздвигает слишком близкие, а Minimum/Maximum Space формируют рабочий диапазон дистанций.
Particle data от pEmitter, pImageEmitter, pMerge или другой particle modifier/force ноды.
pFlock
Обзор
Что делает pFlock
pFlock — neighbor-aware particle-модификатор Fusion. В отличие от pDirectionalForce, которая добавляет одинаковое поле направления, pFlock для каждой затронутой частицы оценивает другие частицы и формирует поведение группы — стаи, роя, косяка или колонии.
Базовая идея pFlock состоит из двух требований: оставаться достаточно близко к другим частицам и одновременно не подходить к ним слишком близко. Баланс этих желаний создаёт впечатление организованного движения без заранее прописанных индивидуальных траекторий.
Flock Number определяет, сколько других частиц конкретная частица пытается учитывать/следовать за ними. Чем выше значение, тем заметнее clumping и тем крупнее воспринимаемые группы. Это не глобальное число частиц в системе и не Number из pEmitter.
Follow Strength отвечает за стремление следовать другим частицам. Более высокие значения делают движение группы более согласованным и энергичным; низкие увеличивают вероятность, что отдельные частицы будут отрываться от стаи.
Attract Strength вступает в работу, когда частица оказывается дальше от соседей, чем Maximum Space: она начинает стремиться обратно к группе. Увеличение Attract ускоряет исправление слишком большого разрыва между частицами.
Repel Strength действует на противоположной границе. Если частицы оказываются ближе, чем Minimum Space, отталкивание пытается увеличить расстояние. Слишком высокий Repel может буквально выстреливать частицы из группы.
Minimum/Maximum Space — центральная пара pFlock. Она задаёт диапазон расстояний, который частицы стараются поддерживать. Узкий диапазон обычно даёт более организованное движение; широкий диапазон воспринимается более рыхлым и хаотичным.
Follow, Attract и Repel нельзя настраивать изолированно от Space. Например, сильный Attract при слишком малом Maximum Space сжимает стаю, а сильный Repel при завышенном Minimum Space способен разорвать её. Сначала задайте рабочую дистанцию, затем наращивайте силы.
Use Sets for Calculation в Inspector — отдельный блок pFlock, а не тот же Set Mode из Conditions. Его задача — ограничить, какие particle Sets участвуют в расчёте соседей/стадного поведения. Checkbox Limit to Specified Sets включает такое ограничение, а расположенные ниже Set 1–32 задают calculation membership.
Conditions → Set Mode решает другую задачу: какие входящие частицы сама pFlock имеет право затрагивать. Поэтому calculation Sets и Conditions Sets нельзя описывать как один и тот же фильтр. В сложной системе частица может быть затронута pFlock, но при вычислении её соседей учитываться только выбранные calculation Sets.
Probability из Conditions вычисляется для каждой частицы на каждом кадре. Значение 0.6 не создаёт постоянную группу из 60% частиц на весь lifespan — у подходящей частицы снова есть шанс быть затронутой на следующем кадре.
Age Start/End — нормализованная доля lifespan, а не номера кадров. Это позволяет включать flocking только после свободного стартового участка или, наоборот, отключать групповое поведение ближе к концу жизни частиц.
Region Mode и Region пространственно ограничивают работу pFlock. Встроенные All, Bezier, Cube, Line, Rectangle и Sphere создаются внутри ноды и не требуют отдельного кабеля. Bitmap и Mesh получают геометрию извне и поэтому создают dynamic Region input.
По умолчанию физически существует только один оранжевый Particles input. При Region = Bitmap или Mesh добавляется отдельный green/magenta Region socket. Bitmap принимает 2D image/выбранный channel, Mesh — 3D mesh. Это не обычный синий Effect Mask.
Line Region полезна для диагностики пространственного gating: Start/End задают две XYZ-точки и могут быть связаны с Paths/Trackers. Rectangle остаётся плоской областью без Z-depth, а Sphere/Cube дают объёмные Regions.
Mesh Region использует общий particle Region-контур: Region Type может выбирать surface/volume, Winding Rule и Winding Ray Direction помогают с незамкнутой геометрией, а Limit By ObjectID/ObjectID может ограничивать конкретный объект mesh-ветки.
В актуальном руководстве Resolve 21 pFlock прямо рекомендуется сочетать с pFollow: pFollow задаёт движущуюся цель/пружинное стремление, а pFlock добавляет neighbour spacing и стадную логику. Для органики после стабильного flocking также часто добавляют небольшой pTurbulence.
Flocking вычислительно тяжелее простого directional force, потому что частицы должны учитывать соседей. При отладке начинайте с малого Number в pEmitter и умеренного Flock Number, затем повышайте плотность только после того, как базовое поведение стало предсказуемым.
Output pFlock остаётся particle data. Ни Region Bitmap, ни pFlock Controls не превращают её в RGBA. Видимый результат появляется только downstream в pRender, поэтому Viewer-диагностику всегда проводите через pRender или последующую particle-ветку.
Когда применять
Стая птиц, косяк рыб, рой насекомых или абстрактный цифровой swarm.
Согласованное движение светящихся точек без ручной анимации каждой частицы.
Органические скопления вокруг движущейся цели вместе с pFollow.
Рой с естественной неидеальностью вместе с небольшим pTurbulence.
Разделение нескольких flock-групп через calculation Sets и Conditions Sets.
Flocking только на определённой фазе lifespan через Age Start/End.
Локальное стадное поведение внутри Sphere/Cube/Rectangle или внешнего Bitmap/Mesh Region.
Предварительная организация particle cloud перед последующей force/collision обработкой.
pFlock в контексте
Скриншоты из статьи. Откройте изображение, чтобы рассмотреть его крупнее.
Пример для pFlock.
Оригинальное изображениеПример для pFlock.
Оригинальное изображениеПример для pFlock.
Оригинальное изображениеПример для pFlock.
Оригинальное изображение