Wulkan to krater w skorupie ziemskiej, który wyrzuca lawę i dym z powodu wewnętrznego ciśnienia z magmy i rozpuszczonych gazów. Gry często zawierają wulkany w trudnych obszarach rozgrywki, takich jak miejsca, w których gracze muszą zrównoważyć niebezpieczeństwo lawy i stopionych skał z nagrodą w postaci cennych zasobów, areny walk z bossami lub środowiska, które dynamicznie zmieniają się w miarę cyklicznych erupcji wulkanu.
Używając pliku Volcano Island - Start .rbxl jako punktu wyjścia i Volcano Island - Complete jako odniesienia, ten samouczek pokazuje, jak przekształcić środowisko w erupcję wulkanu z niestandardowym oświetleniem i obiektami VFX, które reprezentują rzeczywiste zachowanie fizyczne, w tym wskazówki dotyczące:
- Rozkładania materiałów referencyjnych na poszczególne komponenty o wyraźnych cechach wizualnych i behawioralnych.
- Konfigurowania fal powierzchniowych, aby naśladować gorącą ciecz wznoszącą się na powierzchnię i zakłócającą powierzchnię kaldery.
- Konfigurowania żarzących się kawałków, aby naśladować fragmenty stopionej skały szybko chłodzące się w miarę wznoszenia się w atmosferze.
- Konfigurowania lawy, która rozpryskuje się i płynie z kaldery, aby naśladować różne stany lepkości lawy.
- Konfigurowania kłębu dymu, aby naśladować szkodliwe zanieczyszczenia wznoszące się w niebo, które przyciągają uwagę graczy.


Rozkładanie odniesienia
Aby stworzyć wiarygodne wulkany, ważne jest, aby w procesie projektowania odnosić się do rzeczywistych erupcji wulkanicznych, ponieważ pozwala to na rozłożenie tematu na poszczególne komponenty o wyraźnych cechach wizualnych i behawioralnych. Na przykład, przykładowa gra Volcano Island - Complete odnosi się do erupcji wulkanu na Islandii, aby poinformować wszystkie decyzje dotyczące projektowania tekstur i VFX związanych z kalderą i jej otaczającym terenem.

Przydatne jest rozłożenie erupcji wulkanu na poszczególne komponenty, aby zaplanować, jak wykorzystać różne obiekty VFX do naśladowania ich rzeczywistych odpowiedników. Aby to zobrazować, ten samouczek dzieli przykładowy wulkan na pięć unikalnych komponentów:
- Fale powierzchniowe – Małe fale lawy na powierzchni kaldery.
- Żarzące się kawałki – Małe, lekkie kawałki stopionej skały, które wznoszą się w niebo z kaldery.
- Rozpryski lawy – Cienka stopiona skała, która wybucha z kaldery z powodu wewnętrznego ciśnienia w wulkanie.
- Przepływ lawy – Lepka stopiona skała, która wylewa się z kaldery.
- Kłąb dymu – Ciepły, kłębiący się gaz, który wznosi się w niebo z kaldery.


Następne sekcje dostarczają szczegółowej analizy różnych decyzji projektowych i technik, które możesz wykorzystać do odtworzenia każdego z tych komponentów. Przeglądając te decyzje i eksperymentując z różnymi właściwościami oświetlenia, ParticleEmitter i Beam, nauczysz się, jak wykorzystać oświetlenie i VFX do rozwiązania unikalnych wymagań środowiskowych dla własnych gier.
Konfiguracja oświetlenia
Aby uczynić element środowiskowy punktem zainteresowania w grze, ważne jest, aby zwiększyć jego kontrast w stosunku do całego środowiska, aby wyróżniał się jako coś, co gracze powinni zbadać. Na przykład, aby przyciągnąć graczy do kaldery, możesz skonfigurować źródła światła, aby lawa wulkanu wydawała się świecić jako jedyne źródło światła w w przeciwnym razie ciemnym środowisku.
Studio oferuje dwa główne typy źródeł światła, które możesz wykorzystać w tej technice:
- Oświetlenie globalne - Produkuje oświetlenie dla całego środowiska na zewnątrz.
- Oświetlenie lokalne - Produkuje oświetlenie wokół miejsca, w którym je umieszczasz w grze.
Ta sekcja samouczka uczy, jak wykorzystać oba typy źródeł światła, aby uczynić erupcję wulkanu najważniejszym punktem zainteresowania w Twojej scenie, a także stworzyć dramatyczny efekt dla Twojej narracji środowiskowej. Aby to zobrazować, sprawdź, jak ten sam ostateczny wulkan bez niestandardowego oświetlenia wydaje się być nieinwazyjnym zagrożeniem w wesołym środowisku, podczas gdy wulkan z niestandardowym oświetleniem wydaje się być niebezpieczną obecnością w ciemnym, melancholijnym otoczeniu.


Oświetlenie lokalne
Oświetlenie lokalne to luminescencja z lokalnych źródeł światła w Twojej grze, takich jak obiekty SpotLight, SurfaceLight i PointLight. Oświetlenie lokalne jest ważne do dodania do Twojego wulkanu, ponieważ chociaż możesz zastosować jasność do tekstur ParticleEmitter i Beam, nie mogą one same wypełnić kanionu wystarczającą ilością światła, aby realistycznie symulować, jak kaldera i jej płynąca lawa oświetlałyby środowisko w rzeczywistości.


Pomocne jest skonfigurowanie lokalnego oświetlenia przed globalnym oświetleniem w tym samouczku, ponieważ bez lokalnych źródeł światła nie możesz zobaczyć przestrzeni 3D, aby skonfigurować swoje obiekty VFX. Jednak powszechne przepływy pracy wymagają iteracji zarówno na lokalnym, jak i globalnym oświetleniu równolegle, aby zobaczyć efekty swoich zmian na obiektach VFX, więc ważne jest, aby być elastycznym w wymaganiach projektowych własnych gier.
Aby odtworzyć lokalne oświetlenie dla wulkanu w przykładowym pliku Volcano Island - Complete:
W oknie Explorer utwórz Folder w Workspace, aby zawierał wszystkie obiekty lokalnych źródeł światła, a następnie zmień nazwę folderu na LocalLighting.
Wstaw trzy części block do folderu LocalLighting, a następnie zmień ich nazwy na LightCaldera, LightMagma i LightOutflow.
Przenieś części w miejsce, w którym mogą oświetlić cały wulkan.
- Przenieś LightCaldera do centrum przestrzeni między kalderą a klifem.
- Przenieś LightMagma do centrum szczeliny między kalderą a odpływem magmy.
- Przenieś LightOutflow nieco powyżej miejsca, w którym odpływ dzieli się na dwa strumienie.

Wstaw Pointlight do każdej części.

Wybierz dziecko PointLight z LightCaldera, a następnie w oknie Properties,
- Ustaw Brightness na 15, aby uczynić źródło światła znacznie jaśniejszym.
- Ustaw Color na 255, 85, 0, aby zabarwić światło na ciemnopomarańczowy odcień.
- Ustaw Range na 60, aby oświetlić cały obszar kaldery.

Wybierz dzieci PointLight z LightMagma i LightOutflow, a następnie w oknie Properties,
- Ustaw Brightness na 2, aby uczynić źródło światła nieco jaśniejszym.
- Ustaw Color na 255, 81, 0, aby zabarwić światło na pomarańczowy odcień.
- Ustaw Range na 50, aby oświetlić obszary szczeliny i odpływu.

W oknie Explorer wybierz wszystkie części blokowe w folderze LocalLighting, a następnie w oknie Properties ustaw Transparency na 1, aby uczynić bloki niewidocznymi.

Oświetlenie globalne
Oświetlenie globalne to luminescencja z słońca lub księżyca w grze. Poprzez dostosowanie kilku kluczowych domyślnych właściwości w usłudze Lighting i jej dzieciach obiektów efektów post-processingu, możesz dramatycznie zmienić, jak globalne światło pojawia się dla graczy, a także jak oddziałuje z innymi obiektami, które umieszczasz w grze, w tym teksturami ParticleEmitter i Beam.
Na przykład, aby upewnić się, że tekstury Beam, które produkują efekt płynącej lawy później w samouczku, mogą świecić, musisz skonfigurować właściwości BloomEffect, aby wyolbrzymić oświetlenie jak kamera widząca jasne światło. Podobnie, aby symulować bardziej realistyczne kolory w nocy, musisz również dostosować właściwości efektu, aby zdesaturować całe środowisko.


Aby odtworzyć globalne oświetlenie w przykładowym pliku Volcano Island - Complete:
W oknie Explorer wybierz usługę Lighting, a następnie w oknie Properties,
- Ustaw Ambient na 133, 152, 176, aby ustawić jasnoszary odcień nad całym środowiskiem na zewnątrz.
- Ustaw Brightness na 2, aby uczynić globalne źródło światła nieco ciemniejszym.
- Ustaw ColorShift_Top na 207, 178, 72, aby ustawić żółty odcień światła, które odbija się od powierzchni zwróconych w stronę globalnego źródła światła.
- Ustaw LightingStyle na Realistic, aby wykorzystać najnowocześniejszą technologię oświetleniową Roblox.
- Ustaw ClockTime na 4.3, aby ustawić czas dnia na około kwadrans po 4 rano.
- Ustaw GeographicLatitude na 199, aby zmodyfikować pozycję księżyca.
- Ustaw ExposureCompensation na -1, aby wystawić środowisko na połowę ekspozycji z księżyca.

W oknie Explorer wybierz dziecko Bloom usługi Lighting, a następnie w oknie Properties,
- Ustaw Intensity na 0.75, aby nieco przyciemnić wszystkie kolory w środowisku.
- Ustaw Size na 80, aby stworzyć szerszy efekt bloom.
- Ustaw Threshold na 0.85, aby pozwolić większej liczbie kolorów w środowisku świecić.

W oknie Explorer wstaw obiekt ColorCorrection do usługi Lighting, a następnie w oknie Properties,
- Ustaw Brightness na 0.017, aby nieco przesunąć kolor swoich pikseli.
- Ustaw Contrast na 0.25, aby uzyskać ostrzejszy kontrast między jasnymi a ciemnymi kolorami w środowisku.
- Ustaw Saturation na -0.15, aby zdesaturować kolory w środowisku.
- Ustaw TintColor na 255, 214, 143, aby zabarwić piksele na jasny żółty odcień.

- OPCJONALNEZapewnij pośrednie światło z chmurami na niebie.
- W oknie Explorer wstaw obiekt Clouds do usługi Terrain.
- Wybierz obiekt Clouds, a następnie w oknie Properties,
- Ustaw Cover na 1, aby zapewnić pełne pokrycie chmurami nieba.
- Ustaw Density na 0.08, aby uczynić pokrycie chmur mniej gęstym.
- Ustaw Color na 136, 143, 152, aby ustawić jasnoszary odcień pokrycia chmur.

Konfiguracja wulkanu
Teraz, gdy konfiguracja lokalnego i globalnego oświetlenia jest zakończona, czas skonfigurować wszystkie obiekty VFX związane z samym wulkanem i jego otaczającym terenem. Podczas gdy podążasz za tymi instrukcjami, które dokładnie odtwarzają ostateczne środowisko w przykładowym pliku Volcano Island .rbxl, obserwuj, jak każdy krok współpracuje, aby dodać charakter, ruch i iluminację do środowiska.
Fale powierzchniowe
Fale powierzchniowe to małe fale lawy, które przepływają po powierzchni kaldery w wyniku wewnętrznej magmy i sprężonych gazów wznoszących się z pod skorupy ziemskiej. To zjawisko wizualne przekazuje rzeczywisty proces fizyczny konwekcji, czyli ruchu w cieczy, gdy gorętsza ciecz wznosi się na powierzchnię, i dodaje realizmu do Twojej sceny.
Fale powierzchniowe dostarczają graczom cennych informacji o stanie erupcji wulkanu. Na przykład, jeśli magma i gaz wznoszą się z wystarczającą siłą, aby zakłócić stan lawy na szczycie kaldery i spowodować jej wir, gracze mogą wywnioskować, że wulkan aktywnie erupuje z wrzącą magmą, więc powinni zachować ostrożność w tym obszarze rozgrywki.

Aby zobrazować ten proces, próbka używa obiektu ParticleEmitter nieco poniżej podstawy kaldery, aby emitować płaskie, jasne cząstki, które powoli się rozszerzają i kurczą na ciemnym tle. Pozwala to cząstkom na emulowanie zachowania lawy, które gładko i nieprzerwanie wirują w sposób podobny do realistycznego ruchu elementów w naturze.

Aby odtworzyć fale powierzchniowe na szczycie kaldery w przykładowym pliku Volcano Island - Complete:
W oknie Explorer utwórz Folder w Workspace, aby zawierał wszystkie obiekty kaldery, a następnie zmień nazwę folderu na Caldera.
Stwórz tło, aby zapewnić wysoki kontrast dla fal powierzchniowych.
Wstaw część block do folderu Caldera, a następnie zmień jej nazwę na Backdrop.
Ustaw i skaluj Backdrop tak, aby nieco przekraczał pełną powierzchnię kaldery. Część wydaje się świecić z powodu bliskiej odległości od lokalnego źródła światła kaldery.

Wybierz Backdrop, a następnie w oknie Properties,
Ustaw Color na 0, 0, 0, aby uczynić blok czarnym.
Ustaw Material na Foil, aby nadać teksturę tłu.

Stwórz efekt fali.
- Duplikuj Backdrop, zmień jego nazwę na MagmaRipples, a następnie nieco zmniejsz jego skalę do powierzchni kaldery.
- Wybierz MagmaRipples, a następnie w oknie Properties ustaw Transparency na 1, aby uczynić blok niewidocznym.
- Wstaw ParticleEmitter do MagmaRipples, a następnie zmień nazwę emitera na Ripples.
- Wybierz Ripples, a następnie w oknie Properties,
Ustaw Texture na rbxassetid://16829556885, aby renderować cząstki, które wyglądają jak fale piany.
Ustaw Orientation na VelocityPerpendicular, aby emitować cząstki prostopadle do kierunku ich ruchu.
Ustaw Color na sekwencję kolorów, w której cząstki są brązowe, stają się jasnoczerwone, a następnie ciemnoczerwone.
- Kliknij właściwość Color, a następnie kliknij przycisk ⋯. Pojawi się okno sekwencji kolorów.

Każdy trójkąt na dolnej osi sekwencji kolorów to punkt kluczowy, który określa wartość koloru właściwości w danym punkcie życia cząstki.
- Ustaw następujące właściwości czasu i wartości w całej sekwencji kolorów:
- Czas = 0, Wartość RGB = 130, 53, 2
- Czas = 0.5, Wartość RGB = 224, 37, 0
- Czas = 1, Wartość RGB = 147, 5, 0

Ustaw Size na sekwencję liczb, w której cząstki zwiększają rozmiar w kierunku środka swojego życia, a następnie wracają do swojego pierwotnego rozmiaru z małym oknem zmienności.
- Kliknij właściwość Size, a następnie kliknij przycisk ⋯. Pojawi się okno sekwencji liczb. Domyślnie wykres jest prostą linią, a obraz pozostaje tej samej wielkości od lewej do prawej.

Każdy kwadrat na początku i końcu sekwencji liczby to punkt kluczowy, który określa wartość rozmiaru właściwości w danym punkcie tekstury od lewej do prawej.
Ustaw następujące właściwości czasu i wartości w całej sekwencji liczby:
- Czas = 0, Wartość = 4.81, Envelope = 0.438
- Czas = 0.341, Wartość = 8.75, Envelope = 0.48
- Czas = 0.497, Wartość = 9.38, Envelope = 0.5
- Czas = 0.644, Wartość = 8.75, Envelope = 0.48
- Czas = 1, Wartość = 4.81, Envelope = 0.438

Ustaw Transparency na sekwencję liczb, w której cząstki zaczynają jako przezroczyste, stają się bardziej nieprzezroczyste w kierunku środka swojego życia, a następnie znów stają się przezroczyste na końcu swojego życia.
Kliknij właściwość Transparency, a następnie kliknij przycisk ⋯.
Ustaw następujące właściwości czasu i wartości w całej sekwencji liczby:
- Czas = 0, Wartość = 1, Envelope = 0
- Czas = 0.3, Wartość = 0.387, Envelope = 0.0375
- Czas = 0.5, Wartość = 0.269, Envelope = 0.0812
- Czas = 0.7, Wartość = 0.381, Envelope = 0.05
- Czas = 0, Wartość = 1, Envelope = 0

Ustaw ZOffset na -2, aby przesunąć teksturę nieco dalej od kaldery.
Ustaw Lifetime na 5, 8, aby losowo ustawić czas życia każdej cząstki między 5 a 8 sekundami.
Ustaw Rate na 12, aby emitować 12 cząstek na sekundę.
Ustaw Rotation na -360, 360, aby losowo orientować każdą cząstkę w okręgu.
Ustaw Speed na 0.01, aby emitować każdą cząstkę jedną dziesiątą studa na sekundę.
Ustaw LightEmission na 1, aby znacznie rozjaśnić cząstki.
Ustaw LightInfluence na 0, aby zapobiec wpływowi światła otoczenia na kolor cząstek.
Ustaw Brightness na 15, aby zwiększyć światło emitowane z emitera.
Żarzące się kawałki
Żarzące się kawałki to małe, lekkie kawałki stopionej skały, które wybuchają z kaldery, szybko wydobywając ciepło, gdy wznoszą się w atmosferę. Podobnie jak fale powierzchniowe, żarzące się kawałki ujawniają, że wewnętrzne ciśnienie pod skorupą ziemską naciska w górę, powodując, że gorące elementy łamią napięcie powierzchniowe lawy, aby uwolnić ciśnienie.
Próbka emuluje ten proces, używając obiektu ParticleEmitter, aby emitować cząstki z rozmyciem ruchu, które jest wbudowane w teksturę. Gdy cząstki wznoszą się i osiągają koniec swojego życia, emiter spłaszcza cząstki w stosunku 1:1, aby przekształcić cząstki w okręgi. Ta technika pozwala cząstkom wydawać się, jakby szybko poruszały się, gdy opuszczają kalderę, a następnie zwalniają, gdy rozpraszają się w niebie.

Dodatkowo, gdy cząstki wznoszą się, zmieniają swój kolor, przezroczystość i rozmiar, aby odzwierciedlić zmieniającą się temperaturę. Na przykład, zaczynają swoje życie jako duże, brązowe cząstki, ale szybko przekształcają się w małe pomarańczowe, a następnie ciemnoczerwone cząstki. Ta strategia ma również tę zaletę, że subtelnie odzwierciedla oświetlenie w całym kanionie, zwiększając zaangażowanie gracza w środowisko.
Aby odtworzyć żarzące się kawałki z powierzchni kaldery w przykładowym pliku Volcano Island - Complete:
Wstaw część cylinder do folderu Caldera, a następnie zmień jej nazwę na GlowingEmbers.
Ustaw GlowingEmbers tak, aby znajdowało się na szczycie fal powierzchniowych, a następnie skaluj je, aż wypełni wnętrze kaldery. Część wydaje się świecić z powodu bliskiej odległości od lokalnego źródła światła kaldery.

Wybierz GlowingEmbers, a następnie w oknie Properties ustaw Transparency na 1, aby uczynić cylinder niewidocznym.
Wstaw ParticleEmitter do GlowingEmbers, a następnie zmień nazwę emitera na Embers.
Wybierz Embers, a następnie w oknie Properties,
- Ustaw Texture na rbxassetid://17581858560, aby renderować cząstki, które wyglądają jak wydłużony owal w poziomie i pionie.
- Ustaw Orientation na VelocityParallel, aby emitować cząstki równolegle do ich kierunku ruchu.
- Ustaw Color na sekwencję kolorów, w której cząstki są brązowe, stają się pomarańczowe, a następnie ciemnoczerwone.
- Czas = 0, Wartość RGB = 130, 53, 2
- Czas = 0.5, Wartość RGB = 224, 82, 0
- Czas = 1, Wartość RGB = 147, 5, 0

- Ustaw Size na sekwencję liczb, w której cząstki powoli zmniejszają rozmiar w ciągu swojego życia.
- Czas = 0, Wartość = 0.313, Envelope = 0.1
- Czas = 1, Wartość = 0, Envelope = 0

- Ustaw Squash na sekwencję liczb, w której cząstki nieco wydłużają się w połowie swojego życia.
- Czas = 0, Wartość = -3, Envelope = 0
- Czas = 0.323, Wartość = -0.188, Envelope = 0
- Czas = 1, Wartość = -0.5, Envelope = 0

- Ustaw Transparency na sekwencję liczb, w której cząstki losowo zmieniają swoją przezroczystość, aby symulować żarzące się kawałki świecące, gdy wznoszą się. Rzeczywiste wartości nie są ważne, ważne jest, aby zmieniały się znacznie w trakcie swojego życia.

- Ustaw ZOffset na 1, aby przesunąć teksturę nieco dalej od kaldery.
- Ustaw Lifetime na 1, 5, aby losowo ustawić czas życia każdej cząstki między 1 a 5 sekundami.
- Ustaw Speed na 5, 8, aby losowo emitować każdą cząstkę między 5 a 8 studów na sekundę.
- Ustaw SpreadAngle na 180, 180, aby emitować cząstki pod kątem wzdłuż osi X i Z.
- Ustaw Acceleration na 0, 10, 0, aby symulować siłę wznoszącą i pociągnąć cząstki w niebo.
- Ustaw Drag na 0.8, aby cząstki traciły prędkość z wykładniczym spadkiem.
- Ustaw LightEmission na 1, aby znacznie rozjaśnić cząstki.
- Ustaw LightInfluence na 0, aby zapobiec wpływowi światła otoczenia na kolor cząstek.
- Ustaw Brightness na 20, aby zwiększyć światło emitowane z emitera.
Rozpryski lawy
Rozpryski lawy to wybuchy cienkiej stopionej skały, które wybuchają w górę z wulkanu w wyniku wewnętrznej magmy i sprężonych gazów, które wywierają wystarczającą siłę, aby złamać napięcie powierzchniowe lawy na szczycie kaldery. Ten podstawowy komponent wulkanu jest jednym z najczęstszych znaków wskazujących, że wulkan nie jest już uśpiony i aktywnie erupuje.
Próbka reprezentuje ten proces za pomocą dwóch obiektów ParticleEmitter, które wykorzystują flipbooki do animacji tekstury każdej cząstki w trakcie ich życia. Pierwszy emiter cząstek emituje cząstki, które wyglądają jak gęste, wysokolepkie rozpryski, które są ciężkie i grube, co powoduje, że wznoszą się i opadają powoli z powrotem do wulkanu. Z kolei drugi emiter cząstek emituje cząstki, które wyglądają jak pajęcze, niskolepkie rozpryski, które są lekkie i cienkie, co powoduje, że wznoszą się i opadają szybko.


Każdy emiter cząstek animuje swoją teksturę przez 64 klatki, aby emulować gładkie, realistyczne zachowanie fizyczne. Chociaż mógłbyś użyć tylko jednego emitera cząstek, powtarzalność animacji stałaby się oczywista i zepsułaby immersję dla Twoich graczy, ponieważ widzieliby dokładnie tę samą animację za każdym razem. Jednak gdy dwa emitery cząstek animują flipbooki z nieco różnymi niestandardowymi właściwościami, znacznie trudniej jest dostrzec powtarzalność.
Próbka dostarcza również obiekt ParticleEmitter, który emituje cząstki, które wyglądają jak napowietrzone rozpryski, aby reprezentować jeszcze lżejsze pajęcze rozpryski. Ta technika wypełnia przestrzeń dynamicznym ruchem i dodatkowo ukrywa powtarzalność animacji flipbooków. Jako dodatkowy bonus, jeśli Twoja gra zawiera również wodospad z Tworzenie wodospadów, możesz ponownie wykorzystać tę samą teksturę dwa razy w różnych obszarach rozgrywki, oszczędzając pamięć i poprawiając wydajność na urządzeniach o niskiej wydajności.

Aby odtworzyć rozpryski lawy z powierzchni kaldery w przykładowym pliku Volcano Island - Complete:
Wstaw część cylinder do folderu Caldera, a następnie zmień jej nazwę na SplashingLava.
Ustaw SplashingLava tak, aby znajdowało się na szczycie fal powierzchniowych, a następnie skaluj je, aż pokryje środek kaldery, gdzie chcesz, aby lawa rozpryskiwała się. Część wydaje się świecić z powodu bliskiej odległości od lokalnego źródła światła kaldery.

Wybierz SplashingLava, a następnie w oknie Properties ustaw Transparency na 1, aby uczynić cylinder niewidocznym.
Wstaw ParticleEmitter do SplashingLava, a następnie zmień nazwę emitera na WebbySplashes.
Wybierz WebbySplashes, a następnie w oknie Properties,
- Ustaw Texture na rbxassetid://17363668312, aby renderować cząstki, które wyglądają jak pajęcze rozpryski.
- Ustaw Orientation na FacingCameraWorldUp, aby emitować cząstki zwrócone w stronę kamery, ale obracające się tylko w pionowej osi Y świata.
- Ustaw Color na 255, 152, 79, aby zabarwić cząstki na jasnopomarańczowy odcień.
- Ustaw Size na sekwencję liczb, w której cząstki zwiększają rozmiar w trakcie swojego życia z oknem zmienności.
- Czas = 0, Wartość = 4.31, Envelope = 0.762
- Czas = 1, Wartość = 6.2, Envelope = 0.875

- Ustaw Squash na sekwencję liczb, w której cząstki nieco wydłużają się w trakcie swojego życia z oknem zmienności.
- Czas = 0, Wartość = -0.075, Envelope = 0.263
- Czas = 1, Wartość = -0.413, Envelope = 0.412

- Ustaw ZOffset na 1, aby przesunąć teksturę nieco dalej od kaldery.
- Ustaw Lifetime na 1.5, 2, aby losowo ustawić czas życia każdej cząstki między 1.5 a 2 sekundami.
- Ustaw Rate na 0.37, aby emitować cząstkę mniej więcej co 3 sekundy.
- Ustaw RotSpeed na -20, 20, aby losowo emitować każdą cząstkę między -20 a 20 stopniami na sekundę.
- Ustaw Speed na 2, aby emitować każdą cząstkę z prędkością 2 studów na sekundę.
- Ustaw SpreadAngle na 5, 5, aby emitować cząstki pod małym kątem wzdłuż osi X i Z.
- Ustaw FlipbookLayout na Grid8x8, aby animować teksturę przez 64 klatki.
- Ustaw FlipbookMode na Oneshot, aby upewnić się, że animacja odtwarza się tylko raz w trakcie swojego życia.
- Ustaw Drag na 0.5, aby cząstki traciły prędkość z wykładniczym spadkiem.
- Ustaw LightEmission na 0.1, aby nieco rozjaśnić cząstki.
- Ustaw LightInfluence na 0.25, aby znacznie zmniejszyć wpływ światła otoczenia na kolor cząstek.
Duplikuj DenseSplashes, a następnie w oknie Properties zmodyfikuj następujące właściwości, aby zapewnić różnorodność dodatkowym rozpryskom lawy.
- Ustaw Name na DenseSplashes.
- Ustaw Texture na rbxassetid://17363669906, aby renderować cząstki, które wyglądają jak gęste rozpryski.
- Ustaw Size na sekwencję liczb, w której cząstki zwiększają rozmiar w trakcie swojego życia z oknem zmienności.
- Czas = 0, Wartość = 5.75, Envelope = 0.762
- Czas = 1, Wartość = 7.37, Envelope = 0.875

- Ustaw Squash na sekwencję liczb, w której cząstki nieco wydłużają się w trakcie swojego życia z oknem zmienności.
- Czas = 0, Wartość = 0, Envelope = 0.225
- Czas = 1, Wartość = -0.262, Envelope = 0.15

- Ustaw Rate na 0.289, aby emitować cząstkę prawie co czwartą sekundę.
Wypełnij kalderę dodatkowymi rozpryskami.
Wstaw ParticleEmitter do SplashingLava, a następnie zmień nazwę emitera na SplashFill.
Wybierz SplashFill, a następnie w oknie Properties,
- Ustaw Texture na rbxassetid://17082061238, aby renderować cząstki, które wyglądają jak lżejsze pajęcze rozpryski.
- Ustaw Orientation na FacingCameraWorldUp, aby emitować cząstki zwrócone w stronę kamery, ale obracające się tylko w pionowej osi Y świata.
- Ustaw Color na 255, 152, 33, aby zabarwić cząstki na pomarańczowy odcień.
- Ustaw Size na sekwencję liczb, w której cząstki zwiększają rozmiar w trakcie swojego życia z oknem zmienności.
- Czas = 0, Wartość = 1.25, Envelope = 0.388
- Czas = 1, Wartość = 6.38, Envelope = 0.563

- Ustaw Transparency na sekwencję liczb, w której cząstki zaczynają jako przezroczyste, stają się nieprzezroczyste, a następnie znów stają się przezroczyste na końcu swojego życia.
- Czas = 0, Wartość = 1, Envelope = 0
- Czas = 0.19, Wartość = 0, Envelope = 0
- Czas = 0.795, Wartość = 0, Envelope = 0
- Czas = 1, Wartość = 1, Envelope = 0

- Ustaw ZOffset na 1, aby przesunąć teksturę nieco dalej od kaldery.
- Ustaw Lifetime na 1.5, aby ustawić czas życia każdej cząstki na 1.5 sekundy.
- Ustaw Rate na 8, aby emitować cząstkę co 8 sekund.
- Ustaw Rotation na 0, 360, aby losowo orientować każdą cząstkę w półkole.
- Ustaw RotSpeed na -50, 50, aby losowo emitować każdą cząstkę między -50 a 50 stopniami na sekundę.
- Ustaw Speed na 12, 20, aby losowo emitować każdą cząstkę między 12 a 20 studów na sekundę.
- Ustaw SpreadAngle na 45, 45, aby emitować cząstki pod kątem wzdłuż osi X i Z.
- Ustaw Acceleration na 0, -25, 0, aby symulować grawitację i pociągnąć cząstki z powrotem w dół.
- Ustaw Drag na 1, aby cząstki traciły prędkość z wykładniczym spadkiem.
- Ustaw LightEmission na 1, aby znacznie rozjaśnić cząstki.
- Ustaw LightInfluence na 0, aby zapobiec wpływowi światła otoczenia na kolor cząstek.
- Ustaw Brightness na 8, aby zwiększyć światło emitowane z emitera.
Przepływ lawy
Przepływ lawy to masa lawy, która wybucha i wylewa się z kaldery i po powierzchni ziemi podczas erupcji wulkanu. W miarę chłodzenia się lawy z powodu jej kontaktu z powietrzem, twardnieje i przekształca się w stałą skałę, tworząc nową masę lądową.
Aby zasymulować ten proces, próbka nakłada wiele obiektów Beam na siebie z bezszwowymi teksturami i konfiguracjami właściwości, które emulują cechy behawioralne lawy chłodzącej się, gdy przemieszcza się dalej od kaldery:
- Dolna warstwa renderuje płaski kolor, który przekształca się z ciepłego w chłodny kolor, aby zakomunikować, że lawa zaczyna spadać w temperaturze, na przykład z jasnoczerwonego na ciemnoczerwony.
- Środkowa warstwa renderuje czarną teksturę, która wygląda jak ciemna skorupa z otworami, które odsłaniają świecącą lawę pod spodem.
- Górna warstwa renderuje tę samą teksturę co warstwa środkowa w wolniejszym tempie, odwróconych załącznikach i przeciwnych konfiguracjach właściwości. Zapewnia to, że tekstury nigdy nie mają okazji w pełni się ze sobą zgrać podczas renderowania w tym samym kierunku, co pozwoliłoby graczom łatwo dostrzec nerealistyczną powtarzalność tekstury.



Nakładanie trzech obiektów Beam tworzy iluzję paralaksy, aby lawa wydawała się mieć poczucie głębokości i objętości, gdzie lawa płynie w różnych tempach, mimo że są to tylko trzy obrazy 2D. To pozwala graczom wiedzieć, że w kanionie istnieje poczucie turbulencji, zarówno na powierzchni, jak i pod powierzchnią lawy.

Aby odtworzyć płynącą magmę z kaldery w przykładowym pliku Volcano Island - Complete:
W oknie Explorer utwórz Folder w Workspace, aby zawierał wszystkie obiekty płynącej magmy, a następnie zmień nazwę folderu na FlowingMagma.
Wstaw część block do folderu FlowingMagma, a następnie zmień jej nazwę na MagmaRiverBeam.
Przenieś MagmaRiverBeam nieco pod krawędzią kaldery.

Skonfiguruj załączniki dla wszystkich wiązek płynącej magmy z kaldery, aby używać do renderowania swoich tekstur.
- Wstaw załącznik do MagmaRiverBeam, a następnie obróć załącznik, aż żółta wskazówka wizualna będzie wskazywać w stronę kaldery.
- Wstaw kolejny załącznik do MagmaRiverBeam, umieść go w kierunku rozwidlenia w szczelinie, a następnie obróć załącznik, aż żółta wskazówka wizualna będzie wskazywać w dół w ziemię.

Wstaw Beam do MagmaRiverBeam, a następnie zmień jego nazwę na Magma.
Przypisz załączniki części do Magma.
- W oknie Explorer wybierz Magma.
- W oknie Properties,
- Ustaw Attachment0 na załącznik na krawędzi kaldery.
- Ustaw Attachment1 na załącznik w rozwidleniu szczeliny. Wiązka renderuje swoją domyślną teksturę między dwoma załącznikami.

Dostosuj wizualny wygląd wiązki, aby wyglądała jak płynąca magma.
W oknie Explorer upewnij się, że Magma jest nadal wybrane.
W oknie Properties,
- Ustaw Width0 na 50, aby poszerzyć teksturę od osi, z której zaczyna się renderować.
- Ustaw Width1 na 50, aby poszerzyć teksturę, gdy spotyka rozwidlenie w szczelinie.
- Ustaw CurveSize0 na -50, aby wygiąć teksturę z dala od dna szczeliny.
- Ustaw CurveSize1 na 5, aby wygiąć teksturę w rozwidlenie szczeliny.
- Ustaw Color na sekwencję kolorów, która zaczyna się od jasnoczerwonego i staje się ciemnoczerwony w trakcie życia wiązki, aby zasymulować chłodzenie magmy.
- Czas = 0, Wartość RGB = 255, 51, 0
- Czas = 0.5, Wartość RGB = 211, 39, 0
- Czas = 1, Wartość RGB = 118, 24, 0

- Ustaw Transparency na sekwencję liczb, która pozwala na bardziej żywą magmę między punktami załączników.
- Czas = 0, Wartość = 1
- Czas = 0.0916, Wartość = 0
- Czas = 0.867, Wartość = 0
- Czas = 0.941, Wartość = 0.725
- Czas = 1, Wartość = 1

- Ustaw LightEmission na 1, aby znacznie rozjaśnić wiązkę.
- Ustaw LightInfluence na 0, aby zapobiec wpływowi światła otoczenia na kolor wiązki.
- Ustaw Brightness na 8, aby zwiększyć światło emitowane z wiązki.
Wstaw kolejną Beam do MagmaRiverBeam, zmień jej nazwę na Crust1, a następnie przypisz załączniki części do Crust1, używając tego samego procesu, co w kroku 6.
Dostosuj wizualny wygląd wiązki, aby wyglądała jak skorupa na wierzchu magmy.
W oknie Explorer upewnij się, że Crust1 jest nadal wybrane.
W oknie Properties,
- Ustaw Texture na rbxassetid://17023930265, aby renderować nową teksturę, która wygląda jak płynąca skorupa.
- Ustaw Width0 na 35, aby poszerzyć teksturę od osi, z której zaczyna się renderować.
- Ustaw Width1 na 25, aby poszerzyć teksturę, gdy spotyka rozwidlenie w szczelinie.
- Ustaw TextureSpeed na 0.01, aby znacznie spowolnić przepływ tekstury.
- Ustaw TextureLength na 3, aby nieco rozciągnąć długość tekstury.
- Ustaw CurveSize0 na -50, aby wygiąć teksturę z dala od dna szczeliny.
- Ustaw CurveSize1 na 5, aby wygiąć teksturę w rozwidlenie szczeliny.
- Ustaw Color na 83, 83, 83, aby zabarwić wiązkę na szaro.
- Ustaw Transparency na sekwencję liczb, która pozwala na bardziej żywą skorupę między punktami załączników.
- Czas = 0, Wartość = 1- Czas = 0.22, Wartość = 0
- Czas = 0.85, Wartość = 0
- Czas = 1, Wartość = 1

- Ustaw ZOffset na 1, aby przesunąć teksturę nieco od kaldery.
Duplikuj Crust1, zmień nazwę na Crust2, a następnie w oknie Właściwości,
- Ustaw Attachment0 na załącznik w rozwidleniu w szczelinie.
- Ustaw Attachment1 na załącznik na krawędzi kaldery.
- Ustaw Width0 na 25, aby poszerzyć teksturę od osi, z której zaczyna się renderowanie.
- Ustaw Width1 na 35, aby poszerzyć teksturę, gdy spotyka rozwidlenie w szczelinie.
- Ustaw TextureSpeed na -0.008, aby znacznie spowolnić przepływ tekstury.
- Ustaw TextureLength na 2, aby nieco zmniejszyć rozciągnięcie długości tekstury.
- Ustaw CurveSize0 na -5, aby wygiąć teksturę od podłogi szczeliny.
- Ustaw CurveSize1 na 50, aby wygiąć teksturę w rozwidlenie w szczelinie.
- Ustaw ZOffset na 2, aby przesunąć teksturę od innej skorupy.
- OPCJONALNEUżywając tego samego procesu, stwórz więcej promieni wokół rozwidlenia w szczelinie, aby odprowadzić magmę. Upewnij się, że dostosujesz właściwości, aby spowolnić tekstury i symulować magmę, która jest ciemniejsza w kolorze, gdy chłodzi się w temperaturze.
Kłęby dymu
Kłęby dymu z kaldery emitują ciepły sprężony gaz, parę i popiół wulkaniczny do atmosfery. Ta mieszanka emisji wulkanicznych może być widoczna z daleka w rzeczywistości, więc projekty wulkanów często zawierają duże kłęby dymu, aby stanowiły istotny punkt zainteresowania w przestrzeni 3D.
Zamiast emitować gęsty, piroklastyczny dym, który można zobaczyć tuż po wybuchu, próbka używa obiektu ParticleEmitter, aby emitować cząstki, które wyglądają jak cienkie opary dymu, które zmieniają kolor w miarę wznoszenia się w górę. Ta technika osiąga dwa cele:
- Rozbija sylwetkę tła krateru, tworząc większe zainteresowanie wizualne wokół erupcji wulkanu.
- Pozwala dymowi wyglądać, jakby akceptował światło z otoczenia, jednocześnie emitując ciemną obecność, jakby dym spalał zanieczyszczenia w powietrzu, zanim stanie się szary jak nocne niebo.

Aby odtworzyć kłęby dymu z kaldery w próbce Volcano Island - Complete:
Wstaw część block do folderu Caldera, a następnie zmień nazwę na SmokePlume.
Umieść SmokePlume pod kalderą, a następnie skaluj go do mniej więcej rozmiaru powierzchni kaldery.

Wstaw ParticleEmitter do SmokePlume, a następnie zmień nazwę emitera na Smoke.
Wybierz Smoke, a następnie w oknie Właściwości,
- Ustaw Texture na rbxassetid://16830673704, aby renderować cząstki, które wyglądają jak gęsty dym.
- Ustaw Color na sekwencję kolorów, w której cząstki symulują oświetlenie w otoczeniu od kaldery do nieba, zaczynając od czerni, przechodząc do jasnego brzoskwiniowego, a następnie szarego.
- Czas = 0, Wartość RGB = 0, 0, 0
- Czas = 0.374, Wartość RGB = 195, 104, 76
- Czas = 0.469, Wartość RGB = 225, 121, 86
- Czas = 0.709, Wartość RGB = 111, 111, 111
- Czas = 1, Wartość RGB = 113, 113, 113

- Ustaw Transparency na sekwencję liczb, w której cząstki zaczynają jako przezroczyste, stają się całkowicie nieprzezroczyste na początku swojego życia, a następnie znowu stają się przezroczyste pod koniec swojego życia.
- Czas = 0, Wartość = 1
- Czas = 0.0622, Wartość = 0
- Czas = 0.845, Wartość = 0
- Czas = 0, Wartość = 1

- Ustaw ZOffset na -10, aby przesunąć teksturę bliżej górnej części kaldery.
- Ustaw Lifetime na 50, 60, aby losowo ustawić czas życia każdej cząstki między 50 a 60 sekund.
- Ustaw Rate na 0.3, aby emitować cząstkę co około 3 sekundy.
- Ustaw Rotation na -360, 360, aby losowo orientować każdą cząstkę w okręgu.
- Ustaw RotSpeed na -5, 5, aby losowo emitować każdą cząstkę między -5 a 5 stopni na sekundę.
- Ustaw SpreadAngle na 5, 5, aby emitować cząstki pod małym kątem wzdłuż osi X i Z.
- Ustaw Acceleration na 0, 7, 0, aby symulować siłę wznoszącą i przyciągać cząstki do nieba.
- Ustaw Drag na 1, aby cząstki traciły prędkość z wykładniczym spadkiem.
- Włącz WindAffectsDrag, aby wiatr w otoczeniu przesuwał dym.
- Ustaw LightEmission na 0.1, aby nieco rozjaśnić cząstki.
- Ustaw LightInfluence na 0.06, aby znacznie zmniejszyć wpływ światła otoczenia na kolor cząstek.
W Command Bar wprowadź następujący ciąg, aby zwiększyć rozmiar każdej cząstki z 40 do 100 studów w trakcie ich życia z małym zakresem wariacji:
workspace.Caldera.SmokePlume.Smoke.Size = NumberSequence.new{NumberSequenceKeypoint.new(0,40,5), NumberSequenceKeypoint.new(1,100,15)}