화산 폭발을 VFX로 만들기

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

A volcano is a crater within the earth's crust that spews lava and smoke due to internal pressure from magma and dissolved gasses. Games often include volcanoes within challenging gameplay areas, such as locations where players must balance the danger of lava and molten rock hazards with the reward of valuable resources, boss battle arenas, or environments that dynamically change as the volcano cyclically erupts.

Using the Volcano Island - Start .rbxl file as a starting place and Volcano Island - Complete as a reference, this tutorial shows you how to transform the environment into a volcanic eruption with custom lighting and VFX objects that represent real-world physical behavior, including guidance on:

  • Breaking down referential material into individual components with distinct visual and behavioral characteristics.
  • Configuring surface ripples to emulate hot fluid rising to the surface and disrupting the surface of the caldera.
  • Configuring embers to emulate pieces of molten rock quickly cooling as they rise into the atmosphere.
  • Configuring lava that splashes and flows from the caldera to emulate various types of lava viscosity states.
  • Configuring a smoke plume to emulate harsh impurities rising into the sky that catch players' attention.
이 튜토리얼을 완료하는 데 사용할 수 있는 시작 화산 지형.
Volcano Island - Start
이 튜토리얼이 끝날 때 생성할 VFX 객체가 포함된 완전한 화산.
Volcano Island - Complete

참조 분석

To create credible volcanoes, it's important to reference real-world volcanic eruptions in the design process because it allows you to break down the subject matter into individual components with distinct visual and behavioral characteristics. For example, the sample Volcano Island - Complete game references the volcanic eruption in Iceland to inform all texture and VFX design decisions relating to the caldera and its surrounding terrain.

아이슬란드 화산 폭발의 원거리 보기.

It's useful to break down a volcano that's erupting into individual components so that you can plan how to utilize different VFX objects to mimic their real-world counterparts. To demonstrate, this tutorial breaks the sample volcano into five unique components:

  • Surface Ripples – The small waves of lava on the surface of the caldera.
  • Embers – The small, light pieces of molten rock that rise to the sky from the caldera.
  • Lava Splashes – The thin molten rock that bursts out from the caldera due to internal pressure within the volcano.
  • Lava Flow – The viscous molten rock that oozes away from the caldera.
  • Smoke Plume – The warm, billowing gas that rises into the sky from the caldera.
모든 다섯 구성 요소가 강조된 화산 폭발 참조.
참조 이미지를 최종 결과와 비교하기 위해 강조된 동일한 다섯 구성 요소가 있는 샘플 화산 폭발.

The following sections provide an in-depth analysis of the different design decisions and techniques you can use to recreate each of these components. As you review these decisions and experiment with various lighting, ParticleEmitter, and Beam properties, you will learn how to utilize lighting and VFX to solve the unique environmental requirements for your own games.

조명 구성

To make an environmental element a point of interest within your game, it's important to increase its contrast against the overall environment so that it stands out as something that players should explore. For example, to draw players into the caldera, you can configure your lighting sources so that the volcano's lava appears to glow as the only light source within an otherwise dark environment.

Studio provides two high-level types of lighting sources you can use for this technique:

  • Global lighting - Produces lighting for the entire outdoor environment.
  • Local lighting - Produces lighting around where you place them within your game.

This section of the tutorial teaches you how to utilize both types of lighting sources to make your volcanic eruption the most significant point of interest within your scene, as well as create a dramatic effect for your environmental storytelling. To illustrate, review how the same final volcano without custom lighting feels like an unobtrusive hazard in an otherwise cheerful environment while the volcano with custom lighting feels like a dangerous presence in a dark, melancholic environment.

기본 조명 소스가 있는 샘플 화산 폭발의 완전한 버전.
기본 조명 소스 사용
사용자 정의 조명 소스가 있는 샘플 화산 폭발의 완전한 버전.
사용자 정의 조명 소스 사용

지역 조명

Local lighting is the luminescence from local light sources in your game, such as SpotLight, SurfaceLight, and PointLight objects. Local lighting is important to add to your volcano because while you can apply brightness to your ParticleEmitter and Beam textures, they cannot fill the canyon with enough light alone to realistically simulate how the caldera and its flowing lava would illuminate the environment in the real world.

지역 조명이 없는 샘플 화산 폭발의 완전한 버전.
지역 조명 없음
지역 조명이 있는 샘플 화산 폭발의 완전한 버전.
지역 조명 사용

It's helpful to configure your local lighting before your global lighting for this tutorial because without the local light sources, you cannot see the 3D space to configure your VFX objects. However, common workflows require you to iterate on both local and global lighting concurrently to see the effects of your changes on VFX objects, so it's important to be flexible to design requirements of your own games.

To recreate the local lighting for the volcano in the sample Volcano Island - Complete place file:

  1. In the Explorer window, create a Folder in the Workspace to contain all local light source objects, then rename the folder LocalLighting.

  2. Insert three block parts into the LocalLighting folder, then rename them LightCaldera, LightMagma, and LightOutflow, respectively.

  3. Move the parts to a position where they can light the entirety of the volcano.

    1. Move LightCaldera to the center of the space between the caldera and the cliff.
    2. Move LightMagma to the center of the crevice between the caldera and the magma outflow.
    3. Move LightOutflow to slightly above where the outflow forks into two streams.
    화산 계곡에 배치된 세 개의 블록 부분의 정면 보기.
  4. Insert a Pointlight into each part.

    세 개의 블록 부분에 포인트 라이트 시각적 보조 장치가 있는 화산의 정면 보기.
  5. Select the PointLight child of LightCaldera, then in the Properties window,

    1. Set Brightness to 15 to make the light source much brighter.
    2. Set Color to 255, 85, 0 to tint the light to a dark orange hue.
    3. Set Range to 60 to illuminate the entire caldera area.
    화산의 정면 보기. 가장 가까운 블록 부분이 주황색 빛을 방출합니다.
  6. Select the PointLight children of LightMagma and LightOutflow, then in the Properties window,

    1. Set Brightness to 2 to make the light source slightly brighter.
    2. Set Color to 255, 81, 0 to tint the light to an orange hue.
    3. Set Range to 50 to illuminate the crevice and outflow areas.
    주황색 빛을 방출하는 세 개의 블록 부분이 있는 화산의 정면 보기.
  7. In the Explorer window, select all block parts in the LocalLighting folder, then in the Properties window, set Transparency to 1 to make the blocks invisible.

    주황색 조명이 있는 화산 계곡의 정면 보기.

전역 조명

Global lighting is the luminescence from either the sun or moon in a game. By adjusting a couple of key default properties in the Lighting service and its child post-processing effects objects, you can dramatically change how global light appears to players, as well as how it interacts with any other object you place in the game, including ParticleEmitter and Beam textures.

For example, to ensure that the Beam textures that produce a flowing lava effect later in the tutorial are able to glow, you must configure BloomEffect properties to exaggerate the lighting like a camera viewing a bright light. Similarly, to simulate more realistic colors at night, you must also adjust the effect's properties to desaturate the overall environment.

블룸이 없는 샘플 화산 폭발의 완전한 버전.
블룸 없음
블룸이 있는 샘플 화산 폭발의 완전한 버전.
블룸 사용

To recreate the global lighting in the sample Volcano Island - Complete place file:

  1. In the Explorer window, select the Lighting service, then in the Properties window,

    1. Set Ambient to 133, 152, 176 to set a light gray hue over the entire outdoor environment.
    2. Set Brightness to 2 to make the global light source slightly dimmer.
    3. Set ColorShift_Top to 207, 178, 72 to set a yellow hue to the light that reflects from surfaces facing the global light source.
    4. Set LightingStyle to Realistic to utilize Roblox's most advanced lighting technology.
    5. Set ClockTime to 4.3 to set the time of day about a quarter after 4am.
    6. Set GeographicLatitude to 199 to modify the position of the moon.
    7. Set ExposureCompensation to -1 to expose the environment to half of the exposure from the moon.
    어두운 야외 조명이 있는 화산의 정면 보기.
  2. In the Explorer window, select Bloom child of the Lighting service, then in the Properties window,

    1. Set Intensity to 0.75 to slightly dim all colors within the environment.
    2. Set Size to 80 to create a wider bloom effect.
    3. Set Threshold to 0.85 to allow more colors in the environment to glow.
    어두운 야외 조명과 주황색으로 빛나는 지역 조명이 있는 화산의 정면 보기.
  3. In the Explorer window, insert a ColorCorrection object into the Lighting service, then in the Properties window,

    1. Set Brightness to 0.017 to slightly shift the color of your pixels.
    2. Set Contrast to 0.25 to make a sharper contrast between light and dark colors in the environment.
    3. Set Saturation to -0.15 to desaturate colors in the environment.
    4. Set TintColor to 255, 214, 143 to tint pixels with a light yellow hue.
    어두운 야외 조명과 주황색으로 빛나는 지역 조명이 있는 화산의 정면 보기.
  4. OPTIONAL
    Provide indirect light with clouds in the sky.

    1. In the Explorer window, insert a Clouds object into the Terrain service.
    2. Select the Clouds object, then in the Properties window,
      1. Set Cover to 1 to provide full cloud cover to the sky.
      2. Set Density to 0.08 to make the cloud cover less dense.
      3. Set Color to 136, 143, 152 to set a light gray hue to the cloud cover.
    어두운 야외 조명, 회색 구름, 주황색으로 빛나는 지역 조명이 있는 화산의 정면 보기.

화산 구성

Now that your local and global lighting configuration is complete, it's time to configure all of the VFX objects relating to the actual volcano and its surrounding terrain. As you follow these instructions that exactly recreate the final environment within the sample Volcano Island .rbxl file, observe how each step works together to add character, movement, and illuminance to the environment.

표면 물결

Surface ripples are the small lava waves that flow across the surface of the caldera as a result of internal magma and pressurized gasses moving upward from beneath the earth's crust. This visual phenomenon conveys the real-world physical process of convection, or the movement within a fluid when hotter fluid rises to the surface, and it adds to the realism of your scene.

Surface ripples provide valuable insight for players into the state of the volcanic eruption. For example, if magma and gas are moving upward with enough force to disrupt the state of the lava on top of the caldera and cause it to churn, players can deduce that the volcano is actively erupting with boiling magma, so they should exercise caution around this gameplay area.

표면 물결이 없는 칼데라의 위에서 아래로 본 모습.
표면 물결 없음
표면 물결 있음

To demonstrate this process, the sample uses a ParticleEmitter object slightly below the base of the caldera to emit flat, bright particles that slowly expand and contract on top of a dark backdrop. This allows the particles to emulate the behavior of lava smoothly and continuously churning in a way that's similar to the realistic way elements move in nature.

휘몰아치는 용암으로 인해 발생하는 표면 물결을 나타내는 2D 텍스처.
Foam Ripples Texture = rbxassetid://16811365086

To recreate the surface ripples on top of the caldera in the sample Volcano Island - Complete place file:

  1. In the Explorer window, create a Folder in the Workspace to contain all caldera objects, then rename the folder Caldera.

  2. Create a backdrop to provide a high contrast background for the surface ripples.

    1. Insert a block part into the Caldera folder, then rename it Backdrop.

    2. Position and scale Backdrop to slightly beyond the full surface area of the caldera. The part appears as though it's glowing because of its close proximity to the caldera's local light source.

      주황색으로 강조된 블록 부분이 있는 칼데라의 위에서 아래로 본 모습.
  3. Select Backdrop, the in the Properties window,

    1. Set Color to 0, 0, 0 to make the block black.

    2. Set Material to Foil to provide texture to the backdrop.

      거친 질감의 검은 블록 부분이 있는 칼데라의 위에서 아래로 본 모습.
  4. Create the ripple effect.

    1. Duplicate Backdrop, rename it MagmaRipples, then scale it slightly down to the surface area of the caldera.
    2. Select MagmaRipples, then in the Properties window, set Transparency to 1 to make the block invisible.
    3. Insert a ParticleEmitter into MagmaRipples, then rename the emitter Ripples.
    4. Select Ripples, then in the Properties window,
      1. Set Texture to rbxassetid://16829556885 to render particles that look like foam ripples.

      2. Set Orientation to VelocityPerpendicular to emit particles perpendicular to the direction of their movement.

      3. Set Color to a color sequence in which particles are brown, become bright red, then turn maroon.

        1. Click the Color property, then click the button. A color sequence pop-up displays.
        Studio의 속성 창의 색상 속성의 점선 버튼이 강조된 모습.

        Each triangle on the bottom axis of the color sequence is a keypoint that determines the color value of the property at that point of the particle's lifetime.

        1. Set the following time and value properties throughout the color sequence:
        • Time = 0, RGB Value = 130, 53, 2
        • Time = 0.5, RGB Value = 224, 37, 0
        • Time = 1, RGB Value = 147, 5, 0
      4. Set Size to a number sequence in which particles increase in size toward the middle of their lifetime before returning to their original size with a small window of variation.

        1. Click the Size property, then click the button. A number sequence pop-up displays. By default, the graph is a straight line and the image remains the same size from left to right.
        크기 숫자 시퀀스 그래프의 확대된 모습.

        Each square at the start and end of the number sequence is a keypoint that determines the size value of the property at that point of the texture from left to right.

        1. Set the following time and value properties throughout the number sequence:

        • 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
      5. Set Transparency to a number sequence in which particles start as transparent, become more opaque toward the middle of their lifetime, then become transparent again at the end of their lifetime.

        1. Click the Transparency property, then click the button.

        2. Set the following time and value properties throughout the number sequence:

        • 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
      6. Set ZOffset to -2 to offset the texture to be slightly away from the caldera.

      7. Set Lifetime to 5, 8 to randomly set each particle's lifetime between 5 and 8 seconds.

      8. Set Rate to 12 to emit 12 particles per second.

      9. Set Rotation to -360, 360 to randomly orient each particle in a circle.

      10. Set Speed to 0.01 to emit each particle one tenth of a stud per second.

      11. Set LightEmission to 1 to significantly brighten the particles.

      12. Set LightInfluence to 0 to prevent the environmental light from affecting the color of the particles.

      13. Set Brightness to 15 to scale the light emitted from the emitter.

불꽃

Embers are the small, light pieces of molten rock that burst out of the caldera, rapidly expelling heat as they rise into the atmosphere. Similar to surface ripples, embers reveal that internal pressure below the earth's crust is pressing upwards, causing hot elements to break the lava's surface tension to release pressure.

The sample emulates this process by using a ParticleEmitter object to emit particles with motion blur that's baked into the texture. As the particles rise and reach the end of their lifetime, the emitter squashes the particles into a 1:1 ratio to reform the particles into circles. This technique allows the particles to seem as though they are rapidly moving as they exit the caldera, then slow down as they dissipate into the sky.

칼데라에서 터져 나오는 불꽃을 나타내는 2D 텍스처.
Embers Texture = rbxassetid://17581858560

In addition, as particles rise, they change their color, opacity, and size to reflect their changing temperature. For example, they begin their lifetime as large, brown particles, but quickly transform into small orange, then maroon particles. This strategy also has the benefit of subtly reflecting the lighting throughout the canyon, increasing a player's immersion within the environment.

To recreate the glowing embers from the surface of the caldera in the sample Volcano Island - Complete place file:

  1. Insert a cylinder part into the Caldera folder, then rename it GlowingEmbers.

  2. Position GlowingEmbers so that it is on top of the surface ripples, then scale it until it fills the interior of the caldera. The part appears as though it's glowing because of its close proximity to the caldera's local light source.

    칼데라의 위에서 아래로 본 모습. 노란색으로 빛나는 실린더 부분이 있습니다.
  3. Select GlowingEmbers, then in the Properties window, set Transparency to 1 to make the cylinder invisible.

  4. Insert a ParticleEmitter into GlowingEmbers, then rename the emitter Embers.

  5. Select Embers, then in the Properties window,

    1. Set Texture to rbxassetid://17581858560 to render particles that look like an elongated oval horizontally and vertically.
    2. Set Orientation to VelocityParallel to emit particles parallel to their direction of movement.
    3. Set Color to a color sequence in which particles are brown, become orange, then turn maroon.
    • Time = 0, RGB Value = 130, 53, 2
    • Time = 0.5, RGB Value = 224, 82, 0
    • Time = 1, RGB Value = 147, 5, 0
    1. Set Size to a number sequence in which particles slowly decrease in size across their lifetime.
    • Time = 0, Value = 0.313, Envelope = 0.1
    • Time = 1, Value = 0, Envelope = 0
    1. Set Squash to a number sequence in which particles slightly elongate about midway through their lifetime.
    • Time = 0, Value = -3, Envelope = 0
    • Time = 0.323, Value = -0.188, Envelope = 0
    • Time = 1, Value = -0.5, Envelope = 0
    1. Set Transparency to a number sequence in which particles randomly change their opacity to simulate embers glowing as they rise. The actual values are not important, just that they change a lot during the course of their lifetimes.
    1. Set ZOffset to 1 to offset the texture to be slightly away from the caldera.
    2. Set Lifetime to 1, 5 to randomly set each particle's lifetime between 1 and 5 seconds.
    3. Set Speed to 5, 8 to randomly emit each particle between 5 and 8 studs per second.
    4. Set SpreadAngle to 180, 180 to emit particles in an angle along the X and Z axis.
    5. Set Acceleration to 0, 10, 0 to simulate upward force and pull particles to the sky.
    6. Set Drag to 0.8 to have particles lose their speed with exponential decay.
    7. Set LightEmission to 1 to significantly brighten the particles.
    8. Set LightInfluence to 0 to prevent the environmental light from affecting the color of the particles.
    9. Set Brightness to 20 to scale the light emitted from the emitter.

용암 튀기기

Lava splashes are bursts of thin molten rock that erupt upward from the volcano as a result of internal magma and pressurized gasses applying enough force to break the surface tension of the lava on top of the caldera. This core component of a volcano is one of the most common signs in determining that a volcano is no longer dormant and is actively erupting.

The sample represents this process with two ParticleEmitter objects that utilize flipbooks to animate each particle's texture over their lifetime. The first particle emitter emits particles that look like dense, high-viscosity splashes that are heavy and thick, causing them to rise and fall slowly back down into the volcano. Conversely, the second particle emitter emits particles that look like webby, low-viscosity splashes that are light and thin, causing them to rise and fall quickly.

조밀한 튀김 텍스처를 나타내는 2D 텍스처.
Dense Splash Texture = rbxassetid:/17363669906
웹 같은 튀김 텍스처를 나타내는 2D 텍스처.
Webby Splash Texture = rbxassetid://17363668312

Each particle emitter animates their texture over 64 frames to emulate smooth, lifelike physical behavior. While you could use only one particle emitter, the repetition of the animation would become apparent and break the immersion for your players because they would see the exact same animation every time. However, when two particles animate flipbooks with slightly different custom properties, it is much more difficult to spot the repetition.

The sample also provides a ParticleEmitter object that emits particles that look like aerated splashes to represent even lighter webby splashes. This technique fills the space with dynamic movement and further hides the repetition of the flipbook animations. As an extra bonus, if your game also includes the waterfall from Creating Waterfalls, you're able to reuse the same texture twice for different gameplay areas, saving you memory and improving performance on low-end devices.

공기 방울이 있는 튀김을 나타내는 2D 텍스처.
Webby Texture = rbxassetid://17082061238

To recreate the splashing lava from the surface of the caldera in the sample Volcano Island - Complete place file:

  1. Insert a cylinder part into the Caldera folder, then rename it SplashingLava.

  2. Position SplashingLava. so that it is on top of the surface ripples, then scale it until it covers the middle of the caldera where you want the lava to splash. The part appears as though it's glowing because of its close proximity to the caldera's local light source.

    칼데라의 위에서 아래로 본 모습. 노란색으로 빛나는 실린더 부분이 있습니다.
  3. Select SplashingLava, then in the Properties window, set Transparency to 1 to make the cylinder invisible.

  4. Insert a ParticleEmitter into SplashingLava, then rename the emitter WebbySplashes.

  5. Select WebbySplashes, then in the Properties window,

    1. Set Texture to rbxassetid://17363668312 to render particles that look like webby splashes.
    2. Set Orientation to FacingCameraWorldUp to emit particles facing the camera, but rotating only on the vertical upward world Y axis.
    3. Set Color to 255, 152, 79 to tint the particles to a light orange hue.
    4. Set Size to a number sequence in which particles increase in size across their lifetime with a window of variation.
    • Time = 0, Value = 4.31, Envelope = 0.762
    • Time = 1, Value = 6.2, Envelope = 0.875
    1. Set Squash to a number sequence in which particles slightly elongate throughout their lifetime with a window of variation.
    • Time = 0, Value = -0.075, Envelope = 0.263
    • Time = 1, Value = -0.413, Envelope = 0.412
    1. Set ZOffset to 1 to offset the texture to be slightly away from the caldera.
    2. Set Lifetime to 1.5, 2 to randomly set each particle's lifetime between 1.5 and 2 seconds.
    3. Set Rate to 0.37 to emit a particle about every 3 seconds.
    4. Set RotSpeed to -20, 20 to randomly emit each particle between -20 and 20 degrees per second.
    5. Set Speed to 2 to emit each particle 2 studs per second.
    6. Set SpreadAngle to 5, 5 to emit particles in a small angle along the X and Z axis.
    7. Set FlipbookLayout to Grid8x8 to animate the texture over a 64-frame duration.
    8. Set FlipbookMode to Oneshot to ensure the animation only plays once during its lifetime.
    9. Set Drag to 0.5 to have particles lose their speed with exponential decay.
    10. Set LightEmission to 0.1 to slightly brighten the particles.
    11. Set LightInfluence to 0.25 to significantly reduce how much the environmental light affects the color of particles.
  6. Duplicate DenseSplashes, then in the Properties window, modify the following properties to provide variation to the additional lava splashes.

    1. Set Name to DenseSplashes.
    2. Set Texture to rbxassetid://17363669906 to render particles that look like dense splashes.
    3. Set Size to a number sequence in which particles increase in size across their lifetime with a window of variation.
    • Time = 0, Value = 5.75, Envelope = 0.762
    • Time = 1, Value = 7.37, Envelope = 0.875
    1. Set Squash to a number sequence in which particles slightly elongate throughout their lifetime with a window of variation.
    • Time = 0, Value = 0, Envelope = 0.225
    • Time = 1, Value = -0.262, Envelope = 0.15
    1. Set Rate to 0.289 to emit a particle nearly every fourth of a second.
  7. Fill the caldera with additional splashes.

    1. Insert a ParticleEmitter into SplashingLava, then rename the emitter SplashFill.

    2. Select SplashFill, then in the Properties window,

      1. Set Texture to rbxassetid://17082061238 to render particles that look like lighter webby splashes
      2. Set Orientation to FacingCameraWorldUp to emit particles facing the camera, but rotating only on the vertical upward world Y axis.
      3. Set Color to 255, 152, 33 to tint the particles to an orange hue.
      4. Set Size to a number sequence in which particles increase in size across their lifetime with a window of variation.
      • Time = 0, Value = 1.25, Envelope = 0.388
      • Time = 1, Value = 6.38, Envelope = 0.563
      1. Set Transparency to a number sequence in which particles start as transparent, become opaque, then become transparent again toward the end of their lifetime.
      • 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
      1. Set ZOffset to 1 to offset the texture to be slightly away from the caldera.
      2. Set Lifetime to 1.5 to set each particle's lifetime to 1.5 seconds.
      3. Set Rate to 8 to emit a particle every 8 seconds.
      4. Set Rotation to 0, 360 to randomly orient each particle in a half circle.
      5. Set RotSpeed to -50, 50 to randomly emit each particle between -50 and 50 degrees per second.
      6. Set Speed to 12, 20 to randomly emit each particle between 12 and 20 studs per second.
      7. Set SpreadAngle to 45, 45 to emit particles in an angle along the X and Z axis.
      8. Set Acceleration to 0, -25, 0 to simulate gravity and pull particles back down.
      9. Set Drag to 1 to have particles lose their speed with exponential decay.
      10. Set LightEmission to 1 to significantly brighten the particles.
      11. Set LightInfluence to 0 to prevent the environmental light from affecting the color of the particles.
      12. Set Brightness to 8 to scale the light emitted from the emitter.

용암 흐름

A lava flow is a mass of lava that erupts and oozes away from the caldera and across the earth's surface during a volcanic eruption. As the lava cools due to its exposure to air, it solidifies and transforms into solid rock, creating new land mass.

To simulate this process, the sample layers multiple Beam objects on top of each other with seamless textures and property configurations that emulate the behavioral characteristics of lava cooling as it travels further away from the caldera:

  • The bottom layer renders a flat color that transforms from a warm to a cool color to communicate that the lava is beginning to drop in temperature, such as bright red to a dark maroon.
  • The middle layer renders a black texture that looks like dark crust with holes that reveal the glowing lava underneath.
  • The top layer renders the same texture as the middle layer at a slower rate, flipped attachments, and opposite property configurations. This ensures that the textures never have the opportunity to fully line up with each other while rendering in the same direction, which would allow players to easily detect the unrealistic texture repetition.
하단 레이어
중간 레이어
상단 레이어

Layering three Beam objects creates an illusion of parallax to make the lava seem like it has a sense of depth and volume where the lava is flowing at different rates, even though they are only three 2D images. This lets players know that there is a sense of turbulence within the canyon, both on and below the lava's surface.

흐르는 용암 위의 껍질을 나타내는 2D 텍스처.
Crust Texture = rbxassetid://17023930265

To recreate the flowing magma from the caldera in the sample Volcano Island - Complete place file:

  1. In the Explorer window, create a Folder in the Workspace to contain all flowing magma objects, then rename the folder FlowingMagma.

  2. Insert a block part into the FlowingMagma folder, then rename it MagmaRiverBeam.

  3. Move MagmaRiverBeam to slightly under the edge of the caldera.

    화산의 경계 아래에 배치된 블록 부분의 각도에서 본 모습.
  4. Configure attachments for all flowing magma beams from the caldera to use to render their textures.

    1. Insert an attachment into MagmaRiverBeam, then rotate the attachment until the yellow visual aid points toward the caldera.
    2. Insert another attachment into MagmaRiverBeam, position it toward the fork in the crevice, then rotate the attachment until the yellow visual aid points down into the ground.
    화산의 경계 아래에 배치된 두 개의 시각적 보조 장치가 있는 블록 부분의 각도에서 본 모습.
  5. Insert a Beam into MagmaRiverBeam, then rename it Magma.

  6. Assign the part's attachments to Magma.

    1. In the Explorer window, select Magma.
    2. In the Properties window,
      1. Set Attachment0 to the attachment at the edge of the caldera.
      2. Set Attachment1 to the attachment at the fork in the crevice. The beam renders its default texture between the two attachments.
    두 개의 블록 부분이 첨부된 기본 빔 텍스처를 렌더링하는 화산의 각도에서 본 모습.
  7. Customize the beam's visual appearance so it looks like flowing magma.

    1. In the Explorer window, verify Magma is still selected.

    2. In the Properties window,

      1. Set Width0 to 50 to widen the texture from the axis that it starts to render.
      2. Set Width1 to 50 to widen the texture as it meets the fork in the crevice.
      3. Set CurveSize0 to -50 to curve the texture away from the crevice's floor.
      4. Set CurveSize1 to 5 to curve the texture into the fork in the crevice.
      5. Set Color to a color sequence that starts bright red and becomes dark red over the beam's lifetime to simulate the magma cooling.
      • Time = 0, RGB Value = 255, 51, 0
      • Time = 0.5, RGB Value = 211, 39, 0
      • Time = 1, RGB Value = 118, 24, 0
      1. Set Transparency to a number sequence that allows the magma to be more vibrant between the attachment points.
      • Time = 0, Value = 1
      • Time = 0.0916, Value = 0
      • Time = 0.867, Value = 0
      • Time = 0.941, Value = 0.725
      • Time = 1, Value = 1
      1. Set LightEmission to 1 to significantly brighten the beam.
      2. Set LightInfluence to 0 to prevent the environmental light from affecting the color of the beam.
      3. Set Brightness to 8 to scale the light emitted from the beam.
  8. Insert another Beam into MagmaRiverBeam, rename it Crust1, then attach the part's attachments to Crust1 using the same process in step 6.

  9. Customize the beam's visual appearance so it looks like crust on top of the magma.

    1. In the Explorer window, verify Crust1 is still selected.

    2. In the Properties window,

      1. Set Texture to rbxassetid://17023930265 to render a new texture that looks like flowing crust.
      2. Set Width0 to 35 to widen the texture from the axis that it starts to render.
      3. Set Width1 to 25 to widen the texture as it meets the fork in the crevice.
      4. Set TextureSpeed to 0.01 to significantly slow down the flow of the texture.
      5. Set TextureLength to 3 to slightly stretch the texture's length.
      6. Set CurveSize0 to -50 to curve the texture away from the crevice's floor.
      7. Set CurveSize1 to 5 to curve the texture into the fork in the crevice.
      8. Set Color to 83, 83, 83 to tint the beam gray.
      9. Set Transparency to a number sequence that allows the crust to be more vibrant between the attachment points.
      • Time = 0, Value = 1
      • Time = 0.22, Value = 0
      • Time = 0.85, Value = 0
      • Time = 1, Value = 1
      1. Set ZOffset to 1 to offset the texture to be slightly away from the caldera.
  10. Duplicate Crust1, rename it Crust2, then in the Properties window,

    1. Set Attachment0 to the attachment at the fork in the crevice.
    2. Set Attachment1 to the attachment at the edge of the caldera.
    3. Set Width0 to 25 to widen the texture from the axis that it starts to render.
    4. Set Width1 to 35 to widen the texture as it meets the fork in the crevice.
    5. Set TextureSpeed to -0.008 to significantly slow down the flow of the texture.
    6. Set TextureLength to 2 to slightly unstretch the texture's length.
    7. Set CurveSize0 to -5 to curve the texture away from the crevice's floor.
    8. Set CurveSize1 to 50 to curve the texture into the fork in the crevice.
    9. Set ZOffset to 2 to offset the texture from the other crust.

    1.

    선택 사항
    동일한 프로세스를 사용하여 틈새의 포크 주위에 더 많은 빔을 만들어 마그마를 분기시킵니다. 텍스처를 느리게 하고 온도가 낮아짐에 따라 색상이 어두워지는 마그마를 시뮬레이션하도록 속성을 조정해야 합니다.

연기 기둥

칼데라에서 나오는 연기 기둥은 따뜻한 압력 가스, 증기 및 화산재를 대기로 방출합니다. 이 화산 배출물의 혼합물은 실제 세계에서 몇 마일 떨어진 곳에서도 볼 수 있으므로 화산 디자인은 종종 3D 공간에서 중요한 관심 지점이 되도록 큰 연기 기둥을 포함합니다.

폭발적인 분출 직후에 볼 수 있는 두꺼운 화산재 연기를 방출하는 대신, 샘플은 ParticleEmitter 객체를 사용하여 위로 상승하면서 색상이 변하는 얇은 연기 증기처럼 보이는 입자를 방출합니다. 이 기술은 두 가지 목표를 달성합니다:

  • 배경 분화구의 실루엣을 분산시켜 화산 분출 주변에 더 많은 시각적 흥미를 만듭니다.
  • 연기가 환경의 빛을 받아들이는 것처럼 보이면서도 연기가 공기 중의 불순물을 태우는 것처럼 어두운 존재감을 발산하게 합니다. 마치 밤하늘처럼 회색으로 변하기 전에 말이죠.
칼데라에서 상승하는 연기를 나타내는 2D 텍스처.
연기 텍스처 = rbxassetid://16830667309

샘플 화산 섬 - 완전 장소 파일에서 칼데라의 연기 기둥을 재현하려면:

  1. 칼데라 폴더에 블록 파트를 삽입한 후 이름을 SmokePlume으로 변경합니다.

  2. SmokePlume을 칼데라 아래에 배치한 후 칼데라의 표면 면적에 맞게 크기를 조정합니다.

    칼데라 아래에 강조된 블록 파트가 있는 화산의 각도 측면 보기.
  3. SmokePlumeParticleEmitter를 삽입한 후 발사기를 Smoke로 이름을 변경합니다.

  4. Smoke를 선택한 후 속성 창에서,

    1. Texturerbxassetid://16830673704로 설정하여 두꺼운 연기처럼 보이는 입자를 렌더링합니다.
    2. Color를 칼데라에서 하늘로 환경의 조명을 시뮬레이션하는 색상 시퀀스로 설정합니다. 검은색에서 시작하여 연한 복숭아색으로 변한 후 회색으로 변합니다.
    • Time = 0, RGB 값 = 0, 0, 0
    • Time = 0.374, RGB 값 = 195, 104, 76
    • Time = 0.469, RGB 값 = 225, 121, 86
    • Time = 0.709, RGB 값 = 111, 111, 111
    • Time = 1, RGB 값 = 113, 113, 113
    1. Transparency를 입자가 투명하게 시작하여 생애 초기에 완전히 불투명해진 후 생애 끝에 다시 투명해지는 숫자 시퀀스로 설정합니다.
    • Time = 0, Value = 1
    • Time = 0.0622, Value = 0
    • Time = 0.845, Value = 0
    • Time = 0, Value = 1
    1. ZOffset-10으로 설정하여 텍스처가 칼데라의 상단에 더 가깝게 오도록 합니다.
    2. Lifetime50, 60으로 설정하여 각 입자의 생애를 50초에서 60초 사이로 무작위로 설정합니다.
    3. Rate0.3으로 설정하여 약 3초마다 입자를 방출합니다.
    4. Rotation-360, 360으로 설정하여 각 입자를 원형으로 무작위로 배치합니다.
    5. RotSpeed-5, 5로 설정하여 각 입자를 초당 -5도에서 5도 사이로 무작위로 방출합니다.
    6. SpreadAngle5, 5로 설정하여 X 및 Z 축을 따라 작은 각도로 입자를 방출합니다.
    7. Acceleration0, 7, 0으로 설정하여 위쪽 힘을 시뮬레이션하고 입자를 하늘로 끌어올립니다.
    8. Drag1로 설정하여 입자가 지수적으로 속도를 잃도록 합니다.
    9. WindAffectsDrag를 활성화하여 환경의 바람이 연기를 휘젓도록 합니다.
    10. LightEmission0.1로 설정하여 입자를 약간 밝게 합니다.
    11. LightInfluence0.06으로 설정하여 환경의 빛이 입자의 색상에 미치는 영향을 크게 줄입니다.
  5. 명령어 바에 다음 문자열을 입력하여 각 입자의 크기를 생애 동안 40에서 100 스터드로 증가시키고 약간의 변동을 줍니다:

    workspace.Caldera.SmokePlume.Smoke.Size = NumberSequence.new{NumberSequenceKeypoint.new(0,40,5), NumberSequenceKeypoint.new(1,100,15)}
©2026 Roblox Corporation. Roblox 및 Roblox 로고, 'Powering Imagination'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.