ГоловнаСтаттіРиб'яча школа 3D

Бході: Як Три Локальних Правила Створюють Скупчення Риб Без Лідерів

Розділення, вирівнювання та згуртування, які застосовуються до кожного риба, лише до найближчих сусідів, достатньо для створення ефекту фонтану, розширення блискавки та будь-якої іншої реальної поведінки, яку задокументували біологи у нападах хижаків.

mysimulator teamОновлено — червень 2026≈ 8 хв читання▶ Відкрити симуляцію

Три правила, без лідера

Швидкість у групі риб не має лідера, спільного планування або знання загальної форми групи — проте вона обертається, розбігається навколо перешкод і знову збирається в єдине цілісне тіло. Крейг Рейнольдс моделював саме це у 1986 році з Boids, показавши, що переконливе зграйне поведінка виникає лише з трьох локальних правил, застосованих до кожного окремого індивіда, використовуючи лише те, що він бачить від своїх найближчих сусідів:

роз’єднання: повертайтеся, щоб уникнути надмірного наближення до сусідів (уникайте переповнення) вирівнювання: повертайтеся до середнього напрямку голови сусідніх сусідів зв’язність: повертайтеся до середньої позиції сусідніх сусідів кожен бойд дивиться лише на сусідів у межах його власного радіусу сприйняття онлайн демо · роз’єднання, вирівнювання та зв’язність у групі риб● LIVE Жоден риба не обчислює форму групи, її центр або напрямок безпосередньо — це емерджентні властивості, які з'являються лише тоді, коли ви спостерігаєте всю групу, побудовану виключно на основі локальних рішень знизу вгору, повторених у кожному індивіді, кадр за кадром. Це той самий клас явищ, що й маршрути пошуку для мурашиної колонії або формування смуг натовпу: складна, здавалося б скоординована групова поведінка без координатора.

separation: steer away from neighbours that are too close (avoid crowding)
alignment:  steer toward the average heading of nearby neighbours
cohesion:   steer toward the average position of nearby neighbours

each boid only looks at neighbours within its own perception radius
жива демонстрація · пов'язана симуляція● LIVE

Оцінка трьох сил

Кожна з правил генерує вектор повороту, і фактичне прискорення боїда є сумою ваг трьох, зазвичай з переважною вагою розділення, оскільки уникнення зіткнень є найважливішою локальною проблемою:

поворот = w_розділ * вектор_розділення + w_вирівнювання * вектор_вирівнювання + w_зв’язність * вектор_зв’язування швидкість += поворот * dt швидкість = clamp(швидкість, максимальна_швидкість) положення += швидкість * dt Невеликі зміни в вагових коефіцієнтах призводять до суттєво різних груп поведінок: сильне з’єднання з легким розділенням перетворює групу на щільний, хаотичний кластер; сильне розділення розсіює її у розріджений, малокоординований хмарний стан; сильне вирівнювання з двома іншими помірними дає форму довгої, узгодженої школи, яка слідує за формою справжніх риб та мурликань зірочок. Справжні рибні групи адаптивно вагують ці сили, посилюючи з’єднання, коли поруч присутні хижаки, і послаблюючи його під час пошуку їжі.

steer = w_sep * separation_vec + w_align * alignment_vec + w_coh * cohesion_vec
velocity += steer * dt
velocity = clamp(velocity, max_speed)
position += velocity * dt

Реакція хижака: реальна біологія, а не просто естетика

Фундаментальна біологія польових риб, що вивчають конкретні та повторювані відповіді групи на підхідного хижака, яку відтворює стилізована модель птахів, ефект фонтану: школа розгалужується на два потоки, які обходять атакувального хижака і знову з'єднуються позаду нього; миттєве розширення блискавки: майже миттєвий радіальний вибух у момент нападу хижака, що викликаний стрибком правил відокремлення кожного рибака у відповідь на раптово близького і швидкоруханого сусіда; та ефект самозакористовуваної зграї, вперше формалізований W.D. Hamilton у 1971 році, де найпростіша виживальна стратегія кожної риби полягає в мінімізації її власної експонованої поверхні шляхом переміщення до геометричного центру сусідів — це сумісність, але мотивована ризиком полювання, а не соціальним уподобанням, і це само по собі достатньо для створення компактних, щільно згрупованих груп без потреби в альтруїзмі чи координації.

Чому потрібен додатковий ідеї для 3D зграю: псевдоглибина

Додавання хижака, що полює знизу, та перетворення всього цього переконливо на плоску 2D-зображення потребує псевдо-3D трюку: кожен риб несе координату глибини (зазвичай z, або відстань від камери), яка не відображається як справжня перспектива, але використовується для масштабування видимості кожного риба та зміщення її вертикального положення на малюнку, а також включається як третє вимірне значення у розрахунок відстані до сусідів. Це означає «близько» не лише в x і y, але й в z, а не просто близько на екрані. Таким чином, атака хижаком знизу візуально здається розбійним розповсюдженням риб як у сторони, так і вгору, точно таким же, що спостерігається в реальних записах, без необхідності повної 3D-графічної трупи.

Від зграй до фільмів

Алгоритм Бходів Різнальда, розроблений Рейнольдсом, отримав престижну нагороду від Американської академії наук та техніки (Scientific and Technical Academy Award) у 1998 році за вплив на комп’ютерну анімацію – його використовували, адаптуючи з додатковими правилами, для анімації роїв левів у фільмі «Батман: Повернення» та стікаючихся стада жирафів у фільмі «Король Лев». Ручне створення тисяч окремих істот, які б були правдоподібними, але водночас узгодженими, було б непрактичним. Однак основні три правила алгоритму, іноді розширені з урахуванням об’єктів-перешкод та цілей, залишаються базою для симуляції натовпу в іграх та кінематографі досі.

The same three-rule core, sometimes extended with obstacle avoidance and goal-seeking terms, remains the standard starting point for crowd simulation in games and film to this day.

Frequently asked questions

Чи знає кожна риба в симуляції форму всієї школи?

Ні — це і є суть моделі. Кожна риба реагує лише на невелику кількість сусідів у межах її власного радіусу локального сприйняття, використовуючи три правила (розділення, збіжність, згуртованість). Загальна форма школи, її повороти та розриви — це емерджентна групова поведінка, яка не залежить від окремих риб і від будь-якого центрального контролера, який би її усвідомлював.

Що таке 'ефект фонтану', коли хижак атакує школу?

Це задокументована реальна відповідь, де школа ділиться на дві вигнуті струмки, що обпливають хижака з обох боків і реформуються позаду нього. У моделі типу 'boids' це природно виникає завдяки правилу розділення, яке змушує сусідніх риб відхилятися від швидко наближаючогося хижака, а правила збіжності та згуртованості підтримують внутрішню узгодженість двох розбитих груп.

Чому рибна школа в цій симуляції все ще виглядає 3D на плоскому полотні?

Модель надає кожній рибі значення глибини, яке не рендериться з використанням справжнього 3D перспективи, але використовується для масштабування розміру риби, зміщення її вертикального положення та враховується при визначенні того, наскільки 'близько' знаходяться сусіди. Цей хитрий трюк 'псевдо-3D' достатньо ефективний, щоб атакуючий акула знизу створювала переконливу розбіжність вправо та вгору без повноцінного 3D движка рендерингу.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте Fish School 3D і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію Fish School 3D

Що ви знайшли?

Додати кроки відтворення (опційно)