Um vulcão é uma cratera na crosta terrestre que expeli lava e fumaça devido à pressão interna do magma e gases dissolvidos. Os jogos frequentemente incluem vulcões em áreas desafiadoras de jogabilidade, como locais onde os jogadores devem equilibrar o perigo de lava e rochas derretidas com a recompensa de recursos valiosos, arenas de batalha contra chefes ou ambientes que mudam dinamicamente à medida que o vulcão entra em erupção ciclicamente.
Usando o arquivo Volcano Island - Start .rbxl como ponto de partida e Volcano Island - Complete como referência, este tutorial mostra como transformar o ambiente em uma erupção vulcânica com iluminação personalizada e objetos VFX que representam o comportamento físico do mundo real, incluindo orientações sobre:
- Dividir material de referência em componentes individuais com características visuais e comportamentais distintas.
- Configurar ondulações na superfície para emular fluido quente subindo à superfície e perturbando a superfície da caldeira.
- Configurar brasas para emular pedaços de rocha derretida esfriando rapidamente à medida que sobem para a atmosfera.
- Configurar lava que espirra e flui da caldeira para emular vários tipos de estados de viscosidade da lava.
- Configurar uma pluma de fumaça para emular impurezas severas subindo ao céu que chamam a atenção dos jogadores.


Dividir referência
Para criar vulcões credíveis, é importante referenciar erupções vulcânicas do mundo real no processo de design, pois isso permite que você divida o assunto em componentes individuais com características visuais e comportamentais distintas. Por exemplo, o jogo de amostra Volcano Island - Complete faz referência à erupção vulcânica na Islândia para informar todas as decisões de design de textura e VFX relacionadas à caldeira e ao terreno ao seu redor.

É útil dividir um vulcão em erupção em componentes individuais para que você possa planejar como utilizar diferentes objetos VFX para imitar seus equivalentes do mundo real. Para demonstrar, este tutorial divide o vulcão de amostra em cinco componentes únicos:
- Ondulações na Superfície – As pequenas ondas de lava na superfície da caldeira.
- Brasas – Os pequenos pedaços de rocha derretida que sobem ao céu a partir da caldeira.
- Espirros de Lava – A rocha derretida fina que explode da caldeira devido à pressão interna dentro do vulcão.
- Fluxo de Lava – A rocha derretida viscosa que escorre da caldeira.
- Pluma de Fumaça – O gás quente e volumoso que sobe ao céu a partir da caldeira.


As seções a seguir fornecem uma análise detalhada das diferentes decisões de design e técnicas que você pode usar para recriar cada um desses componentes. À medida que você revisa essas decisões e experimenta com várias propriedades de iluminação, ParticleEmitter e Beam, você aprenderá como utilizar iluminação e VFX para resolver os requisitos ambientais únicos para seus próprios jogos.
Configurar iluminação
Para fazer um elemento ambiental ser um ponto de interesse dentro do seu jogo, é importante aumentar seu contraste em relação ao ambiente geral para que se destaque como algo que os jogadores devem explorar. Por exemplo, para atrair os jogadores para a caldeira, você pode configurar suas fontes de iluminação para que a lava do vulcão pareça brilhar como a única fonte de luz em um ambiente de outra forma escuro.
O Studio fornece dois tipos de fontes de iluminação de alto nível que você pode usar para essa técnica:
- Iluminação Global - Produz iluminação para todo o ambiente externo.
- Iluminação Local - Produz iluminação ao redor de onde você as coloca dentro do seu jogo.
Esta seção do tutorial ensina como utilizar ambos os tipos de fontes de iluminação para fazer sua erupção vulcânica ser o ponto de interesse mais significativo dentro da sua cena, além de criar um efeito dramático para sua narrativa ambiental. Para ilustrar, revise como o mesmo vulcão final sem iluminação personalizada parece um perigo discreto em um ambiente de outra forma alegre, enquanto o vulcão com iluminação personalizada parece uma presença perigosa em um ambiente escuro e melancólico.


Iluminação Local
A iluminação local é a luminescência de fontes de luz local em seu jogo, como objetos SpotLight, SurfaceLight e PointLight. A iluminação local é importante para adicionar ao seu vulcão porque, embora você possa aplicar brilho às texturas de ParticleEmitter e Beam, elas não podem iluminar o cânion com luz suficiente sozinhas para simular realisticamente como a caldeira e sua lava fluente iluminariam o ambiente no mundo real.


É útil configurar sua iluminação local antes da iluminação global para este tutorial, pois sem as fontes de luz locais, você não pode ver o espaço 3D para configurar seus objetos VFX. No entanto, fluxos de trabalho comuns exigem que você itere sobre a iluminação local e global simultaneamente para ver os efeitos de suas mudanças nos objetos VFX, então é importante ser flexível às necessidades de design dos seus próprios jogos.
Para recriar a iluminação local para o vulcão no arquivo de lugar de amostra Volcano Island - Complete:
Na janela Explorer, crie uma Pasta no Workspace para conter todos os objetos de fonte de luz local, e renomeie a pasta para LocalLighting.
Insira três partes bloco na pasta LocalLighting, e renomeie-as para LightCaldera, LightMagma e LightOutflow, respectivamente.
Mova as partes para uma posição onde possam iluminar a totalidade do vulcão.
- Mova LightCaldera para o centro do espaço entre a caldeira e o penhasco.
- Mova LightMagma para o centro da fenda entre a caldeira e o fluxo de magma.
- Mova LightOutflow para ligeiramente acima de onde o fluxo se divide em dois.

Insira uma Pointlight em cada parte.

Selecione o PointLight filho de LightCaldera, então na janela Properties,
- Defina Brightness para 15 para tornar a fonte de luz muito mais brilhante.
- Defina Color para 255, 85, 0 para tingir a luz de um tom laranja escuro.
- Defina Range para 60 para iluminar toda a área da caldeira.

Selecione os PointLight filhos de LightMagma e LightOutflow, então na janela Properties,
- Defina Brightness para 2 para tornar a fonte de luz um pouco mais brilhante.
- Defina Color para 255, 81, 0 para tingir a luz de um tom laranja.
- Defina Range para 50 para iluminar as áreas da fenda e do fluxo.

Na janela Explorer, selecione todas as partes de bloco na pasta LocalLighting, então na janela Properties, defina Transparency para 1 para tornar os blocos invisíveis.

Iluminação Global
A iluminação global é a luminescência do sol ou da lua em um jogo. Ao ajustar algumas propriedades padrão chave no serviço Lighting e seus objetos de efeitos de pós-processamento filhos, você pode mudar dramaticamente como a luz global aparece para os jogadores, bem como como ela interage com qualquer outro objeto que você coloque no jogo, incluindo texturas de ParticleEmitter e Beam.
Por exemplo, para garantir que as texturas de Beam que produzem um efeito de lava fluente mais tarde no tutorial possam brilhar, você deve configurar as propriedades de BloomEffect para exagerar a iluminação como uma câmera visualizando uma luz brilhante. Da mesma forma, para simular cores mais realistas à noite, você também deve ajustar as propriedades do efeito para dessaturar o ambiente geral.


Para recriar a iluminação global no arquivo de lugar de amostra Volcano Island - Complete:
Na janela Explorer, selecione o serviço Lighting, então na janela Properties,
- Defina Ambient para 133, 152, 176 para definir um tom cinza claro sobre todo o ambiente externo.
- Defina Brightness para 2 para tornar a fonte de luz global um pouco mais fraca.
- Defina ColorShift_Top para 207, 178, 72 para definir um tom amarelo à luz que reflete das superfícies voltadas para a fonte de luz global.
- Defina LightingStyle para Realistic para utilizar a tecnologia de iluminação mais avançada da Roblox.
- Defina ClockTime para 4.3 para definir a hora do dia cerca de um quarto após as 4 da manhã.
- Defina GeographicLatitude para 199 para modificar a posição da lua.
- Defina ExposureCompensation para -1 para expor o ambiente a metade da exposição da lua.

Na janela Explorer, selecione Bloom filho do serviço Lighting, então na janela Properties,
- Defina Intensity para 0.75 para suavizar ligeiramente todas as cores dentro do ambiente.
- Defina Size para 80 para criar um efeito de bloom mais amplo.
- Defina Threshold para 0.85 para permitir que mais cores no ambiente brilhem.

Na janela Explorer, insira um objeto ColorCorrection no serviço Lighting, então na janela Properties,
- Defina Brightness para 0.017 para mudar ligeiramente a cor dos seus pixels.
- Defina Contrast para 0.25 para criar um contraste mais nítido entre cores claras e escuras no ambiente.
- Defina Saturation para -0.15 para dessaturar as cores no ambiente.
- Defina TintColor para 255, 214, 143 para tingir pixels com um tom amarelo claro.

- OPCIONALForneça luz indireta com nuvens no céu.
- Na janela Explorer, insira um objeto Clouds no serviço Terrain.
- Selecione o objeto Clouds, então na janela Properties,
- Defina Cover para 1 para fornecer cobertura total de nuvens ao céu.
- Defina Density para 0.08 para tornar a cobertura de nuvens menos densa.
- Defina Color para 136, 143, 152 para definir um tom cinza claro à cobertura de nuvens.

Configurar vulcão
Agora que sua configuração de iluminação local e global está completa, é hora de configurar todos os objetos VFX relacionados ao vulcão real e ao seu terreno ao redor. À medida que você segue estas instruções que recriam exatamente o ambiente final dentro do arquivo de amostra Volcano Island .rbxl, observe como cada passo funciona em conjunto para adicionar caráter, movimento e iluminação ao ambiente.
Ondulações na superfície
Ondulações na superfície são as pequenas ondas de lava que fluem pela superfície da caldeira como resultado do magma interno e gases pressurizados se movendo para cima debaixo da crosta terrestre. Este fenômeno visual transmite o processo físico do mundo real de convecção, ou o movimento dentro de um fluido quando o fluido mais quente sobe à superfície, e adiciona realismo à sua cena.
As ondulações na superfície fornecem informações valiosas para os jogadores sobre o estado da erupção vulcânica. Por exemplo, se o magma e o gás estão se movendo para cima com força suficiente para perturbar o estado da lava em cima da caldeira e fazê-la agitar, os jogadores podem deduzir que o vulcão está ativamente em erupção com magma fervente, então devem ter cautela ao redor desta área de jogabilidade.

Para demonstrar esse processo, a amostra usa um objeto ParticleEmitter ligeiramente abaixo da base da caldeira para emitir partículas planas e brilhantes que se expandem e contraem lentamente sobre um fundo escuro. Isso permite que as partículas emulem o comportamento da lava se agitando de forma suave e contínua, de uma maneira semelhante à forma como os elementos se movem na natureza.

Para recriar as ondulações na superfície em cima da caldeira no arquivo de lugar de amostra Volcano Island - Complete:
Na janela Explorer, crie uma Pasta no Workspace para conter todos os objetos da caldeira, e renomeie a pasta para Caldera.
Crie um fundo para fornecer um fundo de alto contraste para as ondulações na superfície.
Insira uma parte bloco na pasta Caldera, e renomeie-a para Backdrop.
Posicione e escale Backdrop para ligeiramente além da área total da superfície da caldeira. A parte parece estar brilhando devido à sua proximidade com a fonte de luz local da caldeira.

Selecione Backdrop, então na janela Properties,
Defina Color para 0, 0, 0 para tornar o bloco preto.
Defina Material para Foil para fornecer textura ao fundo.

Crie o efeito de ondulação.
- Duplicar Backdrop, renomeie-o para MagmaRipples, e então escale-o ligeiramente para baixo até a área da superfície da caldeira.
- Selecione MagmaRipples, então na janela Properties, defina Transparency para 1 para tornar o bloco invisível.
- Insira um ParticleEmitter em MagmaRipples, e renomeie o emissor para Ripples.
- Selecione Ripples, então na janela Properties,
Defina Texture para rbxassetid://16829556885 para renderizar partículas que parecem ondulações de espuma.
Defina Orientation para VelocityPerpendicular para emitir partículas perpendiculares à direção de seu movimento.
Defina Color para uma sequência de cores em que as partículas são marrons, tornam-se vermelhas brilhantes e depois marrom-escuro.
- Clique na propriedade Color, então clique no botão ⋯. Um pop-up de sequência de cores será exibido.

Cada triângulo no eixo inferior da sequência de cores é um ponto-chave que determina o valor da cor da propriedade naquele ponto da vida da partícula.
- Defina as seguintes propriedades de tempo e valor ao longo da sequência de cores:
- Time = 0, RGB Value = 130, 53, 2
- Time = 0.5, RGB Value = 224, 37, 0
- Time = 1, RGB Value = 147, 5, 0

Defina Size para uma sequência numérica em que as partículas aumentam de tamanho em direção ao meio de sua vida antes de retornar ao seu tamanho original com uma pequena janela de variação.
- Clique na propriedade Size, então clique no botão ⋯. Um pop-up de sequência numérica será exibido. Por padrão, o gráfico é uma linha reta e a imagem permanece do mesmo tamanho da esquerda para a direita.

Cada quadrado no início e no final da sequência numérica é um ponto-chave que determina o valor de tamanho da propriedade naquele ponto da textura da esquerda para a direita.
Defina as seguintes propriedades de tempo e valor ao longo da sequência numérica:
- Time = 0, Value = 4.81, Envelope = 0.438
- Time = 0.341, Value = 8.75, Envelope = 0.48
- Time = 0.497, Value = 9.38, Envelope = 0.5
- Time = 0.644, Value = 8.75, Envelope = 0.48
- Time = 1, Value = 4.81, Envelope = 0.438

Defina Transparency para uma sequência numérica em que as partículas começam transparentes, tornam-se mais opacas em direção ao meio de sua vida e depois tornam-se transparentes novamente no final de sua vida.
Clique na propriedade Transparency, então clique no botão ⋯.
Defina as seguintes propriedades de tempo e valor ao longo da sequência numérica:
- Time = 0, Value = 1, Envelope = 0
- Time = 0.3, Value = 0.387, Envelope = 0.0375
- Time = 0.5, Value = 0.269, Envelope = 0.0812
- Time = 0.7, Value = 0.381, Envelope = 0.05
- Time = 0, Value = 1, Envelope = 0

Defina ZOffset para -2 para deslocar a textura ligeiramente para longe da caldeira.
Defina Lifetime para 5, 8 para definir aleatoriamente a vida de cada partícula entre 5 e 8 segundos.
Defina Rate para 12 para emitir 12 partículas por segundo.
Defina Rotation para -360, 360 para orientar aleatoriamente cada partícula em um círculo.
Defina Speed para 0.01 para emitir cada partícula a um décimo de um stud por segundo.
Defina LightEmission para 1 para iluminar significativamente as partículas.
Defina LightInfluence para 0 para evitar que a luz ambiental afete a cor das partículas.
Defina Brightness para 15 para escalar a luz emitida pelo emissor.
Brasas
Brasas são os pequenos pedaços de rocha derretida que explodem da caldeira, expulsando calor rapidamente à medida que sobem para a atmosfera. Semelhante às ondulações na superfície, as brasas revelam que a pressão interna abaixo da crosta terrestre está pressionando para cima, fazendo com que elementos quentes quebrem a tensão superficial da lava para liberar pressão.
A amostra emula esse processo usando um objeto ParticleEmitter para emitir partículas com desfoque de movimento que está incorporado na textura. À medida que as partículas sobem e alcançam o final de sua vida, o emissor comprime as partículas em uma proporção de 1:1 para reformar as partículas em círculos. Essa técnica permite que as partículas pareçam estar se movendo rapidamente à medida que saem da caldeira, e depois desacelerem à medida que se dissipam no céu.

Além disso, à medida que as partículas sobem, elas mudam sua cor, opacidade e tamanho para refletir sua temperatura em mudança. Por exemplo, elas começam sua vida como partículas grandes e marrons, mas rapidamente se transformam em pequenas partículas laranjas e depois marrom-escuro. Essa estratégia também tem o benefício de refletir sutilmente a iluminação ao longo do cânion, aumentando a imersão do jogador dentro do ambiente.
Para recriar as brasas brilhantes da superfície da caldeira no arquivo de lugar de amostra Volcano Island - Complete:
Insira uma parte cilindro na pasta Caldera, e renomeie-a para GlowingEmbers.
Posicione GlowingEmbers de modo que fique em cima das ondulações na superfície, e então escale-a até preencher o interior da caldeira. A parte parece estar brilhando devido à sua proximidade com a fonte de luz local da caldeira.

Selecione GlowingEmbers, então na janela Properties, defina Transparency para 1 para tornar o cilindro invisível.
Insira um ParticleEmitter em GlowingEmbers, e renomeie o emissor para Embers.
Selecione Embers, então na janela Properties,
- Defina Texture para rbxassetid://17581858560 para renderizar partículas que parecem um oval alongado horizontal e verticalmente.
- Defina Orientation para VelocityParallel para emitir partículas paralelas à sua direção de movimento.
- Defina Color para uma sequência de cores em que as partículas são marrons, tornam-se laranjas e depois marrom-escuro.
- Time = 0, RGB Value = 130, 53, 2
- Time = 0.5, RGB Value = 224, 82, 0
- Time = 1, RGB Value = 147, 5, 0

- Defina Size para uma sequência numérica em que as partículas diminuem lentamente de tamanho ao longo de sua vida.
- Time = 0, Value = 0.313, Envelope = 0.1
- Time = 1, Value = 0, Envelope = 0

- Defina Squash para uma sequência numérica em que as partículas se alongam ligeiramente em torno da metade de sua vida.
- Time = 0, Value = -3, Envelope = 0
- Time = 0.323, Value = -0.188, Envelope = 0
- Time = 1, Value = -0.5, Envelope = 0

- Defina Transparency para uma sequência numérica em que as partículas mudam aleatoriamente sua opacidade para simular brasas brilhando à medida que sobem. Os valores reais não são importantes, apenas que mudem muito durante o curso de suas vidas.

- Defina ZOffset para 1 para deslocar a textura ligeiramente para longe da caldeira.
- Defina Lifetime para 1, 5 para definir aleatoriamente a vida de cada partícula entre 1 e 5 segundos.
- Defina Speed para 5, 8 para emitir cada partícula entre 5 e 8 studs por segundo.
- Defina SpreadAngle para 180, 180 para emitir partículas em um ângulo ao longo dos eixos X e Z.
- Defina Acceleration para 0, 10, 0 para simular força para cima e puxar partículas para o céu.
- Defina Drag para 0.8 para que as partículas percam velocidade com decaimento exponencial.
- Defina LightEmission para 1 para iluminar significativamente as partículas.
- Defina LightInfluence para 0 para evitar que a luz ambiental afete a cor das partículas.
- Defina Brightness para 20 para escalar a luz emitida pelo emissor.
Espirros de Lava
Espirros de lava são explosões de rocha derretida fina que erupcionam para cima do vulcão como resultado do magma interno e gases pressurizados aplicando força suficiente para quebrar a tensão superficial da lava em cima da caldeira. Este componente central de um vulcão é um dos sinais mais comuns para determinar que um vulcão não está mais dormente e está ativamente em erupção.
A amostra representa esse processo com dois objetos ParticleEmitter que utilizam flipbooks para animar a textura de cada partícula ao longo de sua vida. O primeiro emissor de partículas emite partículas que parecem espirros densos e de alta viscosidade que são pesados e grossos, fazendo com que subam e desçam lentamente de volta para o vulcão. Por outro lado, o segundo emissor de partículas emite partículas que parecem espirros finos e de baixa viscosidade que são leves e finos, fazendo com que subam e desçam rapidamente.


Cada emissor de partículas anima sua textura ao longo de 64 quadros para emular um comportamento físico suave e realista. Embora você pudesse usar apenas um emissor de partículas, a repetição da animação se tornaria aparente e quebraria a imersão para seus jogadores, pois eles veriam a mesma animação exata toda vez. No entanto, quando duas partículas animam flipbooks com propriedades personalizadas ligeiramente diferentes, é muito mais difícil perceber a repetição.
A amostra também fornece um objeto ParticleEmitter que emite partículas que parecem espirros aerados para representar espirros ainda mais leves e finos. Essa técnica preenche o espaço com movimento dinâmico e oculta ainda mais a repetição das animações de flipbook. Como um bônus extra, se seu jogo também incluir a cachoeira de Criando Cachoeiras, você pode reutilizar a mesma textura duas vezes para diferentes áreas de jogabilidade, economizando memória e melhorando o desempenho em dispositivos de baixo desempenho.

Para recriar a lava espirrando da superfície da caldeira no arquivo de lugar de amostra Volcano Island - Complete:
Insira uma parte cilindro na pasta Caldera, e renomeie-a para SplashingLava.
Posicione SplashingLava de modo que fique em cima das ondulações na superfície, e então escale-a até cobrir o meio da caldeira onde você deseja que a lava espirre. A parte parece estar brilhando devido à sua proximidade com a fonte de luz local da caldeira.

Selecione SplashingLava, então na janela Properties, defina Transparency para 1 para tornar o cilindro invisível.
Insira um ParticleEmitter em SplashingLava, e renomeie o emissor para WebbySplashes.
Selecione WebbySplashes, então na janela Properties,
- Defina Texture para rbxassetid://17363668312 para renderizar partículas que parecem espirros finos.
- Defina Orientation para FacingCameraWorldUp para emitir partículas voltadas para a câmera, mas girando apenas no eixo vertical Y do mundo.
- Defina Color para 255, 152, 79 para tingir as partículas de um tom laranja claro.
- Defina Size para uma sequência numérica em que as partículas aumentam de tamanho ao longo de sua vida com uma janela de variação.
- Time = 0, Value = 4.31, Envelope = 0.762
- Time = 1, Value = 6.2, Envelope = 0.875

- Defina Squash para uma sequência numérica em que as partículas se alongam ligeiramente ao longo de sua vida com uma janela de variação.
- Time = 0, Value = -0.075, Envelope = 0.263
- Time = 1, Value = -0.413, Envelope = 0.412

- Defina ZOffset para 1 para deslocar a textura ligeiramente para longe da caldeira.
- Defina Lifetime para 1.5, 2 para definir aleatoriamente a vida de cada partícula entre 1.5 e 2 segundos.
- Defina Rate para 0.37 para emitir uma partícula a cada 3 segundos.
- Defina RotSpeed para -20, 20 para emitir aleatoriamente cada partícula entre -20 e 20 graus por segundo.
- Defina Speed para 2 para emitir cada partícula a 2 studs por segundo.
- Defina SpreadAngle para 5, 5 para emitir partículas em um pequeno ângulo ao longo dos eixos X e Z.
- Defina FlipbookLayout para Grid8x8 para animar a textura ao longo de uma duração de 64 quadros.
- Defina FlipbookMode para Oneshot para garantir que a animação só toque uma vez durante sua vida.
- Defina Drag para 0.5 para que as partículas percam velocidade com decaimento exponencial.
- Defina LightEmission para 0.1 para iluminar ligeiramente as partículas.
- Defina LightInfluence para 0.25 para reduzir significativamente quanto a luz ambiental afeta a cor das partículas.
Duplicar DenseSplashes, então na janela Properties, modifique as seguintes propriedades para fornecer variação aos espirros de lava adicionais.
- Defina Name para DenseSplashes.
- Defina Texture para rbxassetid://17363669906 para renderizar partículas que parecem espirros densos.
- Defina Size para uma sequência numérica em que as partículas aumentam de tamanho ao longo de sua vida com uma janela de variação.
- Time = 0, Value = 5.75, Envelope = 0.762
- Time = 1, Value = 7.37, Envelope = 0.875

- Defina Squash para uma sequência numérica em que as partículas se alongam ligeiramente ao longo de sua vida com uma janela de variação.
- Time = 0, Value = 0, Envelope = 0.225
- Time = 1, Value = -0.262, Envelope = 0.15

- Defina Rate para 0.289 para emitir uma partícula quase a cada quarto de segundo.
Preencha a caldeira com espirros adicionais.
Insira um ParticleEmitter em SplashingLava, e renomeie o emissor para SplashFill.
Selecione SplashFill, então na janela Properties,
- Defina Texture para rbxassetid://17082061238 para renderizar partículas que parecem espirros mais leves e finos.
- Defina Orientation para FacingCameraWorldUp para emitir partículas voltadas para a câmera, mas girando apenas no eixo vertical Y do mundo.
- Defina Color para 255, 152, 33 para tingir as partículas de um tom laranja.
- Defina Size para uma sequência numérica em que as partículas aumentam de tamanho ao longo de sua vida com uma janela de variação.
- Time = 0, Value = 1.25, Envelope = 0.388
- Time = 1, Value = 6.38, Envelope = 0.563

- Defina Transparency para uma sequência numérica em que as partículas começam transparentes, tornam-se opacas e depois tornam-se transparentes novamente em direção ao final de sua vida.
- Time = 0, Value = 1, Envelope = 0
- Time = 0.19, Value = 0, Envelope = 0
- Time = 0.795, Value = 0, Envelope = 0
- Time = 1, Value = 1, Envelope = 0

- Defina ZOffset para 1 para deslocar a textura ligeiramente para longe da caldeira.
- Defina Lifetime para 1.5 para definir a vida de cada partícula para 1.5 segundos.
- Defina Rate para 8 para emitir uma partícula a cada 8 segundos.
- Defina Rotation para 0, 360 para orientar aleatoriamente cada partícula em um semicírculo.
- Defina RotSpeed para -50, 50 para emitir aleatoriamente cada partícula entre -50 e 50 graus por segundo.
- Defina Speed para 12, 20 para emitir aleatoriamente cada partícula entre 12 e 20 studs por segundo.
- Defina SpreadAngle para 45, 45 para emitir partículas em um ângulo ao longo dos eixos X e Z.
- Defina Acceleration para 0, -25, 0 para simular gravidade e puxar partículas de volta para baixo.
- Defina Drag para 1 para que as partículas percam velocidade com decaimento exponencial.
- Defina LightEmission para 1 para iluminar significativamente as partículas.
- Defina LightInfluence para 0 para evitar que a luz ambiental afete a cor das partículas.
- Defina Brightness para 8 para escalar a luz emitida pelo emissor.
Fluxo de Lava
Um fluxo de lava é uma massa de lava que erupciona e escorre da caldeira e pela superfície da terra durante uma erupção vulcânica. À medida que a lava esfria devido à sua exposição ao ar, ela se solidifica e se transforma em rocha sólida, criando uma nova massa de terra.
Para simular esse processo, a amostra empilha múltiplos objetos Beam um sobre o outro com texturas contínuas e configurações de propriedades que emulam as características comportamentais da lava esfriando à medida que viaja mais longe da caldeira:
- A camada inferior renderiza uma cor plana que se transforma de uma cor quente para uma cor fria para comunicar que a lava está começando a cair em temperatura, como de vermelho brilhante para marrom-escuro.
- A camada do meio renderiza uma textura preta que parece uma crosta escura com buracos que revelam a lava brilhante por baixo.
- A camada superior renderiza a mesma textura da camada do meio a uma taxa mais lenta, com anexos invertidos e configurações de propriedades opostas. Isso garante que as texturas nunca tenham a oportunidade de se alinhar completamente enquanto são renderizadas na mesma direção, o que permitiria que os jogadores detectassem facilmente a repetição irrealista da textura.



Empilhar três objetos Beam cria uma ilusão de paralaxe para fazer a lava parecer ter uma sensação de profundidade e volume, onde a lava flui em diferentes taxas, mesmo que sejam apenas três imagens 2D. Isso informa os jogadores que há uma sensação de turbulência dentro do cânion, tanto na superfície quanto abaixo da lava.

Para recriar o magma fluente da caldeira no arquivo de lugar de amostra Volcano Island - Complete:
Na janela Explorer, crie uma Pasta no Workspace para conter todos os objetos de magma fluente, e renomeie a pasta para FlowingMagma.
Insira uma parte bloco na pasta FlowingMagma, e renomeie-a para MagmaRiverBeam.
Mova MagmaRiverBeam ligeiramente para baixo da borda da caldeira.

Configure anexos para todos os feixes de magma fluente da caldeira para usar para renderizar suas texturas.
- Insira um anexo em MagmaRiverBeam, então gire o anexo até que o auxílio visual amarelo aponte para a caldeira.
- Insira outro anexo em MagmaRiverBeam, posicione-o em direção à bifurcação na fenda, então gire o anexo até que o auxílio visual amarelo aponte para baixo, em direção ao chão.

Insira um Beam em MagmaRiverBeam, e renomeie-o para Magma.
Atribua os anexos da parte a Magma.
- Na janela Explorer, selecione Magma.
- Na janela Properties,
- Defina Attachment0 para o anexo na borda da caldeira.
- Defina Attachment1 para o anexo na bifurcação da fenda. O feixe renderiza sua textura padrão entre os dois anexos.

Personalize a aparência visual do feixe para que pareça magma fluente.
Na janela Explorer, verifique se Magma ainda está selecionado.
Na janela Properties,
- Defina Width0 para 50 para alargar a textura a partir do eixo que começa a renderizar.
- Defina Width1 para 50 para alargar a textura à medida que encontra a bifurcação na fenda.
- Defina CurveSize0 para -50 para curvar a textura para longe do fundo da fenda.
- Defina CurveSize1 para 5 para curvar a textura para dentro da bifurcação na fenda.
- Defina Color para uma sequência de cores que começa em vermelho brilhante e se torna vermelho escuro ao longo da vida do feixe para simular o resfriamento do magma.
- Time = 0, RGB Value = 255, 51, 0
- Time = 0.5, RGB Value = 211, 39, 0
- Time = 1, RGB Value = 118, 24, 0

- Defina Transparency para uma sequência numérica que permite que o magma seja mais vibrante entre os pontos de anexo.
- Time = 0, Value = 1
- Time = 0.0916, Value = 0
- Time = 0.867, Value = 0
- Time = 0.941, Value = 0.725
- Time = 1, Value = 1

- Defina LightEmission para 1 para iluminar significativamente o feixe.
- Defina LightInfluence para 0 para evitar que a luz ambiental afete a cor do feixe.
- Defina Brightness para 8 para escalar a luz emitida pelo feixe.
Insira outro Beam em MagmaRiverBeam, renomeie-o para Crust1, e então anexe os anexos da parte a Crust1 usando o mesmo processo do passo 6.
Personalize a aparência visual do feixe para que pareça crosta em cima do magma.
Na janela Explorer, verifique se Crust1 ainda está selecionado.
Na janela Properties,
- Defina Texture para rbxassetid://17023930265 para renderizar uma nova textura que pareça crosta fluente.
- Defina Width0 para 35 para alargar a textura a partir do eixo que começa a renderizar.
- Defina Width1 para 25 para alargar a textura à medida que encontra a bifurcação na fenda.
- Defina TextureSpeed para 0.01 para desacelerar significativamente o fluxo da textura.
- Defina TextureLength para 3 para esticar ligeiramente o comprimento da textura.
- Defina CurveSize0 para -50 para curvar a textura para longe do fundo da fenda.
- Defina CurveSize1 para 5 para curvar a textura para dentro da bifurcação na fenda.
- Defina Color para 83, 83, 83 para tingir o feixe de cinza.
- Defina Transparency para uma sequência numérica que permite que a crosta seja mais vibrante entre os pontos de anexo.
- Time = 0, Value = 1
- Time = 0.22, Value = 0
- Time = 0.85, Value = 0
- Time = 1, Value = 1

- Defina ZOffset para 1 para deslocar a textura ligeiramente para longe da caldeira.
Duplicar Crust1, renomeie para Crust2, então na janela Properties,
- Defina Attachment0 para o anexo na bifurcação da fenda.
- Defina Attachment1 para o anexo na borda da caldeira.
- Defina Width0 para 25 para alargar a textura a partir do eixo que começa a renderizar.
- Defina Width1 para 35 para alargar a textura à medida que encontra a bifurcação na fenda.
- Defina TextureSpeed para -0.008 para desacelerar significativamente o fluxo da textura.
- Defina TextureLength para 2 para ligeiramente desesticar o comprimento da textura.
- Defina CurveSize0 para -5 para curvar a textura para longe do fundo da fenda.
- Defina CurveSize1 para 50 para curvar a textura para dentro da bifurcação na fenda.
- Defina ZOffset para 2 para deslocar a textura da outra crosta.
- OPCIONALUsando esse mesmo processo, crie mais feixes ao redor da bifurcação na fenda para desviar o magma. Certifique-se de ajustar as propriedades para desacelerar as texturas e simular magma que é mais escuro em cor à medida que esfria em temperatura.
Pluma de Fumaça
Uma pluma de fumaça da caldeira emite gás quente pressurizado, vapor e cinzas vulcânicas na atmosfera. Essa mistura de emissões vulcânicas pode ser vista a quilômetros no mundo real, então os designs de vulcões frequentemente incorporam grandes plumas de fumaça para serem um ponto de interesse significativo no espaço 3D.
Em vez de emitir fumaça espessa e piroclástica que se veria imediatamente após uma erupção explosiva, a amostra usa um objeto ParticleEmitter para emitir partículas que parecem vapores de fumaça finos que mudam de cor à medida que sobem. Essa técnica alcança dois objetivos:
- Ela quebra o contorno da cratera de fundo, criando mais interesse visual ao redor da erupção vulcânica.
- Ela permite que a fumaça pareça que aceita luz do ambiente enquanto ainda emite uma presença escura, como se a fumaça estivesse queimando impurezas no ar antes de se tornar cinza como o céu noturno.

Para recriar a pluma de fumaça da caldeira no arquivo de lugar de amostra Volcano Island - Complete:
Insira uma parte bloco na pasta Caldera, e renomeie-a para SmokePlume.
Posicione SmokePlume embaixo da caldeira, e então escale-a para aproximadamente o tamanho da área da superfície da caldeira.

Insira um ParticleEmitter em SmokePlume, e renomeie o emissor para Smoke.
Selecione Smoke, então na janela Properties,
- Defina Texture para rbxassetid://16830673704 para renderizar partículas que parecem fumaça espessa.1. Defina Cor para uma sequência de cores na qual as partículas simulam a iluminação no ambiente da caldeira até o céu, começando em preto, tornando-se um pêssego claro e, em seguida, cinza.
- Tempo = 0, Valor RGB = 0, 0, 0
- Tempo = 0.374, Valor RGB = 195, 104, 76
- Tempo = 0.469, Valor RGB = 225, 121, 86
- Tempo = 0.709, Valor RGB = 111, 111, 111
- Tempo = 1, Valor RGB = 113, 113, 113

- Defina Transparência para uma sequência de números na qual as partículas começam como transparentes, tornam-se totalmente opacas no início de sua vida, e depois se tornam transparentes novamente perto do final de sua vida.
- Tempo = 0, Valor = 1
- Tempo = 0.0622, Valor = 0
- Tempo = 0.845, Valor = 0
- Tempo = 0, Valor = 1

- Defina ZOffset para -10 para deslocar a textura mais perto do topo da caldeira.
- Defina Lifetime para 50, 60 para definir aleatoriamente a vida útil de cada partícula entre 50 e 60 segundos.
- Defina Rate para 0.3 para emitir uma partícula a cada 3 segundos.
- Defina Rotation para -360, 360 para orientar aleatoriamente cada partícula em um círculo.
- Defina RotSpeed para -5, 5 para emitir aleatoriamente cada partícula entre -5 e 5 graus por segundo.
- Defina SpreadAngle para 5, 5 para emitir partículas em um pequeno ângulo ao longo dos eixos X e Z.
- Defina Acceleration para 0, 7, 0 para simular uma força ascendente e puxar partículas para o céu.
- Defina Drag para 1 para que as partículas percam velocidade com decaimento exponencial.
- Ative WindAffectsDrag para que o vento no ambiente empurre a fumaça.
- Defina LightEmission para 0.1 para iluminar levemente as partículas.
- Defina LightInfluence para 0.06 para reduzir significativamente o quanto a luz ambiental afeta a cor das partículas.
Na Command Bar, insira a seguinte string para aumentar o tamanho de cada partícula de 40 para 100 studs ao longo de sua vida com uma pequena janela de variação:
workspace.Caldera.SmokePlume.Smoke.Size = NumberSequence.new{NumberSequenceKeypoint.new(0,40,5), NumberSequenceKeypoint.new(1,100,15)}