Strona główna Tworzenie Gier System cząsteczek — emiter efektów w grach

✨ System cząsteczek — emiter efektów w grach

Dostrój tempo emitera, czas życia, grawitację i gradienty kolorów, by zbudować efekty ognia, dymu i eksplozji, tak jak robią to artyści VFX w grach.

Tworzenie Gier2DŁatwy60 FPS
particle-system ↗ Otwórz osobno
Interfejs samej symulacji jest w języku angielskim.

O systemach cząsteczek

Systemy cząsteczek to fundamentalna technika w grafice VFX gier, wykorzystywana do symulowania ognia, dymu, eksplozji, deszczu, zaklęć magicznych i niezliczonych innych efektów. Każda cząsteczka ma własną pozycję, prędkość, rozmiar, kolor i czas życia. Emiter tworzy cząsteczki w sposób ciągły lub w seriach, a reguły fizyki aktualizują każdą cząsteczkę co klatkę.

🔮 Model fizyki

Co klatkę: prędkość jest modyfikowana przez grawitację i zmniejszana przez opór (v += grawitacja*dt − opór*v*dt), następnie pozycja się przesuwa (pos += v*dt). Krycie zanika, gdy wiek/czas_życia zbliża się do 1. Kolor jest liniowo interpolowany między kolorem początkowym a końcowym w trakcie życia cząsteczki.

🎮 Jak korzystać

Kliknij dowolne miejsce na płótnie, by przenieść tam emiter. Reguluj suwaki tempa emisji, czasu życia, prędkości i rozproszenia. Wybierz preset, by natychmiast wczytać charakterystyczne wartości, a następnie dostrój poszczególne parametry pod pożądany efekt.

💡 Wskazówka dla twórców gier

Systemy cząsteczek napędzają większość wizualnego widowiska we współczesnych grach. Niski opór z wysoką grawitacją tworzy balistyczne łuki (odłamki). Wysoki opór z zerową grawitacją daje powoli unoszący się dym. Emisja w serii z tempem 500 przez 0,2 s, a następnie zero, to klasyczny wzorzec eksplozji.

O tej symulacji

Ta symulacja uruchamia działający w czasie rzeczywistym emiter cząsteczek CPU napisany w Canvas 2D — tę samą technikę, której silniki gier używają do imitowania ognia, dymu, eksplozji i efektów magicznych. Do 5000 cząsteczek jest pobieranych z puli obiektów wielokrotnego użytku; co klatkę ich prędkość jest aktualizowana przez grawitację i opór (v += grawitacja·dt, następnie v −= opór·v·dt), a ich pozycja, rozmiar i kolor są interpolowane w trakcie ich życia. Sześć presetów konfiguruje tempo emitera, rozproszenie, grawitację i gradient kolorów, by odtworzyć rozpoznawalne archetypy VFX, a każdy parametr pozostaje regulowalny, dzięki czemu możesz zbudować własny efekt od zera.

🔬 Co pokazuje

Emiter cząsteczek oparty na puli z trzema kształtami emisji — punktowym, kołowym i liniowym — tworzącymi cząsteczki w konfigurowalnym tempie. Każda cząsteczka starzeje się w kierunku swojego czasu życia, jej prędkość jest ciągnięta przez Gravity Y i spowalniana przez Drag co klatkę, jej rozmiar zmienia się od wartości początkowej do końcowej, a jej kolor jest liniowo interpolowany między kolorem początkowym a końcowym RGB w miarę zanikania.

🎮 Jak korzystać

Kliknij dowolne miejsce na płótnie, by przenieść tam emiter. Reguluj Emission rate, Lifetime, Speed, Spread angle, Gravity Y, Drag oraz rozmiar początkowy/końcowy suwakami, albo od razu przejdź do gotowego wyglądu za pomocą presetów Explosion, Fire, Smoke, Magic, Rain lub Confetti — a następnie dostrój go od tego punktu wyjścia. Liczba aktywnych cząsteczek i FPS są pokazywane na bieżąco u dołu panelu.

💡 Czy wiesz, że?

Preset Explosion to tak naprawdę wybuch: ustawia tempo emisji na 0 i uruchamia tymczasowe tempo 500 cząsteczek na sekundę na zaledwie 0,2 sekundy, co jest klasyczną sztuczką stosowaną przez silniki gier dla pojedynczego, ostrego kłębu zamiast ciągłego strumienia. Confetti idzie dalej i cyklicznie przechodzi każdą nową cząsteczkę przez pięć zakodowanych na stałe kolorów zamiast pojedynczego gradientu.

Najczęściej zadawane pytania

Czym jest system cząsteczek i jak działa ten tutaj?

System cząsteczek to technika symulowania rozmytych, niesztywnych efektów, takich jak ogień, dym, iskry czy deszcz, poprzez rysowanie dużej liczby prostych, niezależnie animowanych sprite'ów. Ta symulacja utrzymuje stałą pulę 5000 slotów cząsteczek; gdy slot jest wolny, nowa cząsteczka jest tworzona przy emiterze z losową prędkością i kierunkiem w obrębie skonfigurowanego kąta rozproszenia, a następnie jest rysowana i aktualizowana co klatkę, aż jej wiek przekroczy czas życia, po czym slot ponownie staje się wolny.

Jak fizyka faktycznie aktualizuje każdą cząsteczkę?

W każdej klatce animacji pionowa prędkość każdej żywej cząsteczki jest zwiększana o Gravity Y pomnożone przez deltę czasu klatki, następnie obie składowe prędkości są zmniejszane o Drag pomnożone przez prędkość i deltę czasu (prosty liniowy model oporu), a na koniec pozycja cząsteczki jest przesuwana o prędkość pomnożoną przez deltę czasu. Rozmiar zmienia się liniowo od Start size do End size, a kolor jest liniowo interpolowany między kolorem początkowym a końcowym w miarę zbliżania się wieku cząsteczki do jej czasu życia, podczas gdy krycie zanika od 1 do 0 w tym samym okresie.

Co właściwie zmienia sześć presetów?

Każdy preset to pakiet wartości stosowanych do wszystkich parametrów naraz: Explosion używa krótkiego wybuchu z wysoką grawitacją i oporem dla balistycznych odłamków; Fire używa ujemnej grawitacji (cząsteczki unoszą się) z gradientem od pomarańczowego do czerwonego; Smoke używa bardzo wysokiego oporu, długiego czasu życia i rosnącego rozmiaru dla powoli unoszących się szarych kłębów; Magic używa pełnego rozproszenia 360° z gradientem od fioletowego do turkusowego; Rain używa emitera liniowego, wysokiej grawitacji i niskiego oporu dla spadających smug; a Confetti cyklicznie przechodzi przez pięć jaskrawych kolorów na cząsteczkę z umiarkowaną grawitacją i oporem.

Jaka jest różnica między kształtami emitera punktowym, kołowym i liniowym?

Emisja punktowa tworzy każdą cząsteczkę z dokładnie tej samej współrzędnej, dając wąski, skupiony strumień — używany przez presety Explosion i Confetti. Emisja kołowa tworzy cząsteczki w losowej pozycji wewnątrz dysku o promieniu 20 pikseli, dając łagodniejszą, szerszą podstawę — używaną przez Fire, Smoke i Magic. Emisja liniowa tworzy cząsteczki wzdłuż poziomej linii o szerokości 120 pikseli wyśrodkowanej na emiterze, co sprawia, że preset Rain opada jako zasłona, a nie pojedyncza kolumna.

Dlaczego cząsteczki zanikają i kurczą się zamiast po prostu znikać?

Każda cząsteczka śledzi swój wiek jako ułamek całkowitego czasu życia (0 przy narodzinach, 1 przy śmierci). Ten ułamek napędza trzy jednoczesne interpolacje: krycie zanika liniowo od pełnej widoczności do pełnej przezroczystości, rozmiar zmienia się od wartości suwaka Start size do wartości suwaka End size, a kolor przechodzi od koloru początkowego do końcowego kanał po kanale. Interpolowanie wszystkich trzech razem, zamiast nagłego odcięcia, sprawia, że dym wygląda, jakby się rozpraszał, a ogień, jakby stygł unosząc się w górę.

⚙ Pod maską

Dostrój tempo emitera, czas życia, grawitację i gradienty kolorów, by zbudować efekty ognia, dymu i eksplozji, tak jak robią to artyści VFX w grach.

particle systemVFXgame developmentemitterfireexplosionsmoke

3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install

Podobne symulacje