ГоловнаСтаттіМетелики та квіти

Як метелики мерехтять: Пояснення поведінки кермування

Пошук, блукання і поведінка кермування Крейга Рейnolz — невеликі місцеві правила, що лежать в основі шляху польоту метелика.

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

Керування, а не скриптування

Метелик у цій симуляції не слідує за попередньо намаляваною траєкторією – він регулюється поведінками керування, технікою, яку представив Крейг Рейнольдс у його науковому праці 1999 року "Поведінки керування для автономних персонажів" (той самий дослідник, який створив модель зграї бойдів 1987 року). Замість обчислення повної траєкторії заздалегідь, кожен агент ставить набагато простіший запитання щось одночасно: враховуючи моє поточне положення та те, куди я хочу рухатися, який невеликий силус керування слід застосувати зараз?

Основний будівельний блок – seek: обчислюється вектор від поточної позиції агента до його цілі, цей вектор розглядається як бажана швидкість (масштабована до максимальної швидкості агента), і віднімається поточна швидкість агента для отримання сили керування. Цю силу застосовують, обмежену максимальною міцністю повороту, і агент плавно згинається у напрямку до цілі замість різкого переходу на пряму лінію.

desired = normalize(target - position) * maxSpeed
steer   = desired - velocity
steer   = clamp(steer, maxForce)
velocity += steer
position += velocity
жива демонстрація · пов'язана симуляція● LIVE

Вільний політ: вигляд цілеспрямованості, хоч і без чіткої мети

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

Приваблення до квіток та принцип зграйного руху

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

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

Frequently asked questions

Чи планують метелики маршрут до квітів заздалегідь?

Ні. Кожна метелик перераховує силу повороту що кадр, спираючись лише на своє поточне положення, швидкість і найближчу квітку або ціль для блукання – немає планування маршрутів чи передбачення, тому шляхи виглядають органічно та миттєво адаптуються, коли ви саджаєте нову квітку.

Чому метелики не літають по прямих лініях?

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

Чи це та сама техніка, яка використовується для формування зграй птахів або риб у іграх?

Так – це одна з тих самих груп поведінкових механізмів (пошук, блукання, розділення, узгодження), представлених моделлю boids Крейга Рейнольдса, просто застосована до однієї тремтячої агента, яка приваблюється до квітів замість синхронізованої зграї.

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

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

▶ Відкрити симуляцію Butterflies & Flowers

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

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