Strona głównaArtykułySchrony ryb 3D

Boids: Jak Trzy Lokalne Zasady Budują Szkolę Ryb Bez Wodza

Oddalenie, aligment i cohesion, stosowane przez każdą rybkę tylko do swoich najbliższych sąsiadów, wystarczają, aby wytworzyć efekt fontanny, rozszerzenie błyskotkowe oraz każdy inny rzeczywisty zachód biolodzy opisujący ataki przeciwników.

mysimulator teamZaktualizowano — czerwiec 2026≈ 8 min czytania▶ Otwórz symulację

Trzy zasady, brak lidera

Schoola ryb nie ma lidera, wspólnego mapy ani ryb, które by wiedziały o ogólnej postaci grupy — jednak obracają się, rozkładają dookoła przeszkód i ponownie zgromadzają jako jedno spójne ciało. Craig Reynolds zamodelował to dokładnie w 1986 roku za pomocą Boids, pokazując, że przekonująca flocksing powstaje z trzech prosiennych zasad stosowanych przez każdego osobnika, korzystając tylko z tego, co widzi swoje najbliższe sasiady:

oddalenie: kierować się od sąsiadów, którzy są za blisko (uniknąć zbyt gęstej hordy) synchronizacja: kierować się w stronę średniej kierunkowości bliskich sąsiadów gesjon: kierować się w stronę średniej pozycji bliskich sąsiadów każdy boid tylko obserwuje sąsiadów znajdujących się w swej własnej zasięgu percepncji demonstracja na żywo · oddalenie, synchronizacja i gesjon w grupie ryb● NA ŻYWO Brak ryba liczy formę flocksingu, jego środek ani kierunek — te są właściwymi własnościami, które pojawiają się tylko, gdy obserwujesz całą grupę. Powstają one wyłącznie z niżej-nadwozowych decyzji lokalnych powtarzanych przez każdego osobnika, w każdym klatce. Jest to taka sama klasa zjawisk jak śladowana przez mrówki kolonii mrówkowej lub formacja uliczna tłumu: skomplikowane, wydajne zachowania grupowe bez koordynatora.

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
demo na żywo · powiązana symulacja● LIVE

Ocenianie trzech sił

Każda zasadnicza reguła tworzy wektor kierunku sterowania, a rzeczywista przyspieszenie boida jest sumą ważoną tych trzech wektorów, najczęściej z najbardziej wagi przypisanej oddalaniu się, ponieważ unikanie kolizji stanowi najważniejsze lokalne zagadnienie:

steer = w_sep * separation_vec + w_align * alignment_vec + w_coh * cohesion_vec prędkość += steer * dt prędkość = clamp(prędkość, max_speed) pozycja += prędkość * dt Małe zmiany względnych wag powodują jakościowo różne zachowania grupy: silne oddalanie się z lekko przypisanej kohezji spowoduje skupienie grupy w tight, jostlącym clusterze; silna kohezja rozpraszona jest na rozproszoną, barely-coordinated chmurę; silne aligment z innymi dwiema przyczynami prowadzi do długich, koherentnych, bankujących shape school, najbardziej charakterystycznego dla rzeczywistych ryb i starling murmurations. Rzeczywiste grupy ryb wydaje się oceniać te siły adaptacyjnie, zwiększając kohezję podczas zagrożenia przez przeciwników i zmniejszając ją podczas pożywiania się.

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

Reakcja przeciwnika: rzeczywista biologia, nie tylko estetyka

Biolodgia polna na rybach szkolących odzwierciedla konkretne i powtarzalne grupowe reakcje wobec zbliżającego się przeciwnika, które model lokalny stilijski typu boids reprezentuje nieco zaskakująco dobrze: efekt fontannowy, gdzie szkoła dzieli się na dwa strumienie, które przecinają się za atakującym przeciwnikiem; rozszerzenie błyskotkowe, niespodziewany i natychmiastowy wybuch radialny w chwili, gdy przeciwnik uderza, spowodowany wzrostem reguły odseparowania każdego rybaka na skutek nagle bliższej i szybszej sąsiadki; oraz efekt sztywnego gnieźdka, pierwszy formalizowany przez W.D. Hamiltona w 1971 roku, gdzie najprostszym strategią przetrwania każdego rybaka jest minimalizacja powierzchni wybrukowanej, poruszając się w kierunku środka geometrycznego sąsiadów — co to właściwie jest kohejencja, ale motywowana ryzykiem atakowania zamiast preferencją społeczną, i ona sama wystarcza do tworzenia skupionych grup bez żadnej potrzeby altruizmu ani koordynacji.

Dlaczego 3D flocking wymaga dodatkowej idei: pseudo-głębokości

Dodanie rybaka atakującego z dołu oraz przeprowadzenie całej symulacji przekonująco na płaskim canvasie 2D wymaga techniki pseudo-3D: każda ryba nosi koordynat głębokości (często oznaczany jako z, czyli odległość od kamery), który nie jest renderowany jako prawdziwa geometria perspektywy, ale służy do skalowania wyglądowej wielkości ryb i przesuwnia jej pozycji w pionie. Krytycznie, koordynat głębokości jest uwzględniany jako trzecia dimensja w obliczeniach odległości sąsiadów, więc 'blisko' oznacza blisko w osiach x, y i z, a nie tylko na ekranie. Atak atakującego z dołu wygląda visualnie jak ryby rozprzestrzeniające się zarówno bocznym, jak i powietrzem, dokładnie tak jak widziemy w rzeczywistych nagraniach, bez potrzeby użycia pełnej pipeline renderowania 3D.

Od gwardii ptaków do filmów

Algorytm Boids Reynolds'a zyskał w 1998 roku nagrodę Akademii nauczonych za naukowe i techniczne osiągnięcia — był używany, dostosowywany do dodatkowych zasad, aby aniamować szaradę skrzydlatych w Batman Returns oraz nadmierne biegi wilków w „Król lwów”, gdzie ręczna animacja tysięcy oddzielnego, ale kolektywnie spójnych stworzeń byłaby niemożliwa. Ten sam trójkątny kernel, czasem rozszerzany o unikanie przeszkód i zasady celu, pozostaje standardowym punktem wyjścia dla symulacji crowd w grach i filmach do dziś.

Często zadawane pytania

Czy każda rybka w symulacji wie kształt całościowej schoolsa?

Nie — to cała paraoksja modelu. Każda rybka reaguje tylko na małą grupę sąsiadów w swej lokalnej zasięgu perzeptionalnym, korzystając z trzech zasad (oddalenia, orientacji, kohezji). Ogólny kształt schoolsa, jego obrót i podział, to emergentne zachowanie grupowe bez świadomego zrozumienia ani kontrolera centralnego.

Co to jest 'efekt fontannowy', który można zobaczyć wtedy, gdy przeciwnik atakuje schoolsa ryb?

To dokumentowany reakcja rzeczywistego świata, podczas której schools rozdziela się na dwie krzywe strumienie, które obracają się dwa strony od atakującego przeciwnika i ponownie zjednocza się za nim. W modelu boids emerguje naturalnie ze zasady oddalenia, która sprawia, że ryby bliskie szybko uciekają przed szybko nadchodzącym przeciwnikiem, a orientacja i kohezja utrzymują dwie podzielone grupy wewnątrz spójne.

Dlaczego schools ryb w tej symulacji nadal wygląda 3D na płaskim ekranie?

Model przypisuje każdej rybce wartość głębokości, która nie jest renderowana z prawdziwym perspektywą 3D, ale jest używana do skalowania rozmiaru rybki, offsetu jej pozycji w pionie i uwzględniania jej jako 'blisko' sąsiadów. Ta sztuczna 3D jest wystarczająca, aby zrobić atak koguta z dolnej strony wydawać się przekonujący rozpraszający się na boki bez potrzeby pełnego renderera 3D.

Wypróbuj na żywo

Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz Fish School 3D i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.

▶ Otwórz symulację Fish School 3D

Co znalazłeś?

Dodaj kroki odtworzenia (opcjonalnie)