시작하기
중급 튜토리얼

VFX로 화산 폭발 만들기

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

A volcano는 내부의 마그마와 용해된 가스의 압력으로 인해 용암과 연기를 분출하는 지각 내의 분화구입니다. 경험은 종종 플레이어가 용암과 녹은 암석 위험의 위험을 가치 있는 자원, 보스 전투 경기장 또는 화산이 주기적으로 폭발할 때 동적으로 변화하는 환경의 보상과 균형을 맞춰야 하는 도전적인 게임 플레이 영역 내의 화산을 포함합니다.

화산 섬 - 시작 .rbxl 파일을 출발점으로 하고 화산 섬 - 완전을 참조하여 이 튜토리얼에서는 환경을 화산 폭발로 변형하는 방법을 보여줍니다. 커스텀 조명 및 실제 물리적 행동을 나타내는 VFX 객체를 포함하여 다음과 같은 지침이 포함됩니다.

  • 참조 자료를 시각적 및 행동적 특성이 뚜렷한 개별 구성 요소로 분해합니다.
  • 표면의 물결을 조정하여 뜨거운 액체가 표면으로 올라가고 칼데라의 표면을 방해하는 것을 모방합니다.
  • 잔재를 조정하여 공중으로 올라가면서 빠르게 냉각되는 용융 암석의 조각을 모방합니다.
  • 칼데라에서 튀고 흐르는 용암을 조정하여 다양한 용암 점도 상태를 모방합니다.
  • 플레이어의 주의를 끌도록 하늘로 올라가는 거친 불순물을 모방하는 연기 기둥을 조정합니다.
이 튜토리얼을 완료하기 위해 사용할 수 있는 시작 화산 지형.
화산 섬 - 시작
이 튜토리얼이 끝날 때 생성할 VFX 객체가 있는 완전한 화산.
화산 섬 - 완전

참조를 분석하세요

신뢰할 수 있는 화산을 만들기 위해서는 설계 과정에서 실제 화산 폭발을 참조하는 것이 중요합니다. 이것은 주제 내용을 시각적 및 행동적 특성이 뚜렷한 개별 구성 요소로 분해할 수 있게 해줍니다. 예를 들어, 샘플 화산 섬 - 완전 경험은 아이슬란드의 화산 폭발을 참조하여 칼데라와 그 주변 지형과 관련된 모든 텍스처 및 VFX 설계 결정을 알립니다.

아이슬란드 화산 폭발의 먼 거리에서의 모습.

폭발하는 화산을 개별 구성 요소로 분해하는 것이 유용하여 서로 다른 VFX 객체를 활용하여 실제 세계의 대응 물체를 모방하도록 계획할 수 있습니다. 이를 설명하기 위해 이 튜토리얼에서는 샘플 화산을 다섯 개의 고유한 구성 요소로 나눕니다:

  • 표면 물결 – 칼데라 표면의 작은 용암 파동.
  • 잔재 – 칼데라에서 하늘로 솟구치는 작은, 밝은 용융 암석 조각.
  • 용암 튀기기 – 내부 압력 때문에 칼데라에서 튀어 나오는 얇은 용융 암석.
  • 용암 흐름 – 칼데라에서 뻗어 나오는 점성이 있는 용융 암석.
  • 연기 기둥 – 칼데라에서 하늘로 솟구치는 따뜻하고 부풀어 오른 가스.
모든 다섯 가지 구성 요소가 강조된 화산 폭발 참조.
같은 다섯 가지 구성 요소를 비교하기 위해 참조 이미지와 최종 결과에 강조 표시한 샘플 화산 폭발.

다음 섹션에서는 이 각 구성 요소를 재현하는 데 사용할 수 있는 다양한 설계 결정과 기술에 대한 심층 분석을 제공합니다. 이러한 결정들을 검토하고 다양한 조명, ParticleEmitterBeam 속성을 실험하면서, 자신의 경험을 위한 고유한 환경 요구 사항을 해결하기 위해 조명 및 VFX를 활용하는 방법을 배우게 됩니다.

조명 설정

환경 요소를 경험 내에서 관심 지점으로 만들기 위해서는 전체 환경에 대한 대비를 높여야 플레이어가 탐색해야 할 대상이 드러납니다. 예를 들어, 플레이어를 칼데라로 끌어들이기 위해 조명 소스를 설정하여 화산의 용암이 어두운 환경 속에서 유일한 빛의 원천으로 빛나게 만들 수 있습니다.

스튜디오는 이 기술을 위해 사용할 수 있는 두 가지 고급 조명 소스 유형을 제공합니다:

  • 전역 조명 - 전체 야외 환경에 대한 조명을 생성합니다.
  • 지역 조명 - 경험 내에 배치된 곳 주위에 조명을 생성합니다.

이 튜토리얼의 이 섹션에서는 두 가지 유형의 조명 소스를 활용하여 화산 폭발을 장면 내에서 가장 중요한 관심 지점으로 만드는 방법과 환경 이야기에 극적인 효과를 주는 방법을 배울 수 있습니다. 예를 들어, 커스텀 조명이 없는 동일한 최종 화산은 밝고 쾌활한 환경 속에서 눈에 띄지 않는 위험처럼 느껴지는 반면, 커스텀 조명이 있는 화산은 어둡고 우울한 환경에서 위험한 존재처럼 느껴집니다.

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

지역 조명

지역 조명은 경험 내의 지역 조명 소스에서 나오는 조명입니다. 예를 들어, SpotLight, SurfaceLightPointLight 객체입니다. 지역 조명은 화산에 추가할 때 중요합니다. 왜냐하면 ParticleEmitterBeam 텍스처에 밝기를 적용할 수 있지만, 그것만으로는 칼데라를 현실적으로 밝혀줄 만큼의 조명을 채우지 못하기 때문입니다.

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

이 튜토리얼을 위해 지역 조명을 전역 조명보다 먼저 설정하는 것이 유용합니다. 지역 조명 소스가 없으면 VFX 객체를 설정할 3D 공간을 볼 수 없기 때문입니다. 그러나 일반적인 워크플로우는 지역 조명과 전역 조명을 동시에 반복하는 데 필요하므로 자신의 경험의 설계 요구에 유연하게 대처하는 것이 중요합니다.

샘플 화산 섬 - 완전 장소 파일에서 화산의 지역 조명을 재현하려면:

  1. 탐색기 창에서 모든 지역 조명 소스 객체를 포함할 폴더Workspace에 생성한 후 폴더의 이름을 LocalLighting으로 변경합니다.

  2. LocalLighting 폴더 내에 세 개의 블록 파트를 삽입한 후 LightCaldera, LightMagma, LightOutflow로 각각 이름을 변경합니다.

  3. 파트를 화산 전체를 비출 수 있는 위치로 이동합니다.

    1. LightCaldera를 칼데라와 절벽 사이의 공간 중앙으로 이동합니다.
    2. LightMagma를 칼데라와 마그마 유출 사이의 틈 중앙으로 이동합니다.
    3. LightOutflow를 유출이 두 개의 흐름으로 나뉘는 부분보다 약간 위로 이동합니다.
    화산 계곡의 세 개의 블록 파트를 포함한 정면 모습.
  4. 각 파트에 Pointlight를 삽입합니다.

    세 개의 블록 파트에 점조명 비주얼 보조가 있는 화산의 정면 모습.
  5. LightCalderaPointLight 자식을 선택한 후, 속성 창에서,

    1. 밝기15로 설정하여 조명 소스를 훨씬 더 밝게 만듭니다.
    2. 색상255, 85, 0으로 설정하여 어두운 주황색 색조로 바꿉니다.
    3. 범위60으로 설정하여 칼데라 지역 전체를 조명합니다.
    칼데라에 가장 가까운 블록 부분이 오렌지색 빛을 발하는 화산의 정면 모습.
  6. LightMagmaLightOutflowPointLight 자식을 선택한 후, 속성 창에서,

    1. 밝기2로 설정하여 조명 소스를 약간 밝게 만듭니다.
    2. 색상255, 81, 0으로 설정하여 오렌지색 색조로 바꿉니다.
    3. 범위50으로 설정하여 틈과 유출 지역을 비춥니다.
    오렌지색 빛을 발하는 블록 파트가 있는 화산의 정면 모습.
  7. 탐색기 창에서 LocalLighting 폴더의 모든 블록 파트를 선택한 후, 속성 창에서 투명도1로 설정하여 블록을 보이지 않게 합니다.

    화산 계곡 전역에 오렌지색 조명이 있는 화산의 정면 모습.

전역 조명

전역 조명은 경험에서 태양이나 달에서 나오는 빛입니다. Lighting 서비스와 그 자식 후처리 효과 객체의 몇 가지 기본 속성을 조정하여 전역 빛이 플레이어에게 어떻게 보이는지, 경험 내에 배치한 다른 객체, ParticleEmitterBeam 텍스처와 상호작용하는 방식을 극적으로 변경할 수 있습니다.

예를 들어, 나중 튜토리얼에서 흐르는 용암 효과를 생성하는 Beam 텍스처가 밝게 빛날 수 있도록 하려면, 조명을 과장되게 설정해야 합니다. 밤에 더 실감 나는 색상을 시뮬레이션하려면 효과의 속성도 조정하여 전체 환경의 색상을 탈색해야 합니다.

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

샘플 화산 섬 - 완전 장소 파일에서 전역 조명을 재현하려면:

  1. 탐색기 창에서 조명 서비스를 선택한 후, 속성 창에서,

    1. 주변 조명133, 152, 176으로 설정하여 전체 야외 환경에 연한 회색 색조를 설정합니다.
    2. 밝기2로 설정하여 전역 빛의 소스를 약간 어둡게 만듭니다.
    3. ColorShift_Top207, 178, 72로 설정하여 전역 조명 광원이 직면하는 표면의 색조를 노란색으로 설정합니다.
    4. LightingStyleRealistic으로 설정하여 Roblox의 가장 발전된 조명 기술을 활용합니다.
    5. 시간4.3으로 설정하여 오전 4시 15분 정도의 시간을 설정합니다.
    6. GeographicLatitude199로 설정하여 달의 위치를 수정합니다.
    7. ExposureCompensation-1로 설정하여 환경이 달의 노출에서 절반의 노출로 열려 보이게 합니다.
    어두워진 야외 조명이 있는 화산의 정면 모습.
  2. 탐색기 창에서 블룸조명 서비스의 자식으로 선택한 후, 속성 창에서,

    1. 강도0.75로 설정하여 환경 내의 모든 색상을 약간 어둡게 만듭니다.
    2. 크기80으로 설정하여 더 넓은 블룸 효과를 생성합니다.
    3. 임계값0.85로 설정하여 환경에서 더 많은 색상이 빛나도록 허용합니다.
    어두워진 야외 조명과 오렌지색으로 빛나는 지역 조명이 있는 화산의 정면 모습.
  3. 탐색기 창에서 ColorCorrection 객체를 조명 서비스에 삽입한 후, 속성 창에서,

    1. 밝기0.017로 설정하여 픽셀 색상을 약간 이동시킵니다.
    2. 대비0.25로 설정하여 환경 내의 밝은 색상과 어두운 색상 간의 대비를 더 뚜렷하게 만듭니다.
    3. 채도-0.15로 설정하여 환경 내의 색상을 탈색합니다.
    4. TintColor255, 214, 143으로 설정하여 픽셀에 연한 노란빛 색조를 입힙니다.
    칠흑 같은 야외 조명과 오렌지색으로 빛나는 지역 조명이 있는 화산의 정면 모습.
  4. (선택사항) 하늘에 구름으로 간접적인 빛을 제공합니다.

    1. 탐색기 창에서 구름 객체를 지형 서비스에 삽입합니다.
    2. 구름 객체를 선택한 후, 속성 창에서,
      1. 덮개1로 설정하여 하늘에 전체 구름 덮개를 제공합니다.
      2. 밀도0.08로 설정하여 구름 덮개를 덜 밀집하게 만듭니다.
      3. 색상136, 143, 152로 설정하여 구름 덮개에 연한 회색 색조를 설정합니다.
    칠흑 같은 야외 조명, 회색 구름, 오렌지색으로 빛나는 지역 조명이 있는 화산의 정면 모습.

화산 구성

이제 지역 및 전역 조명의 구성이 완료되었으므로, 실제 화산 및 그 주변 지형과 관련된 모든 VFX 객체를 구성할 시간입니다. 샘플 화산 섬 .rbxl 파일 내의 최종 환경을 정확히 재현하는 이러한 지침을 따르면서 각 단계가 환경에 캐릭터, 움직임 및 밝기를 추가하는 데 어떻게 작용하는지 관찰하세요.

표면 물결

표면 물결은 내부의 마그마와 압축된 가스가 지각 아래에서 위로 움직이면서 칼데라 표면에서 흐르는 작은 용암 파동입니다. 이 시각적 현상은 열이 있는 유체가 표면으로 상승할 때의 대류 또는 유체 내의 움직임을 전달하며, 장면의 사실성을 높입니다.

표면 물결은 화산 폭발의 상태에 대한 플레이어에게 귀중한 통찰을 제공합니다. 예를 들어, 마그마와 가스가 용암의 상태를 방해할 만큼 충분한 힘으로 위로 올라가고 있다면, 플레이어는 이 게임 플레이 영역 주변에서 조심해야 한다는 것을 유추할 수 있습니다.

표면 물결이 없는 칼데라의 상단 보기.
표면 물결 없음
표면 물결 있음

이 과정을 보여주기 위해 샘플에서는 칼데라의 밑 부분 바로 아래에 ParticleEmitter 객체를 사용하여 어두운 배경 위에서 천천히 팽창하고 수축하는 평평하고 밝은 입자를 방출합니다. 이를 통해 입자들은 자연에서 요소들이 이동하는 현실적인 방식처럼 부드럽고 연속적으로 용암이 휘저어지는 행동을 모방할 수 있습니다.

휘저어지는 용암에서 발생되는 표면 물결을 나타내는 2D 텍스처.
폼 물결 텍스처 = rbxassetid://16811365086

샘플 화산 섬 - 완전 장소 파일에서 칼데라 위의 표면 물결을 재현하려면:

  1. 탐색기 창에서 모든 칼데라 객체를 포함할 폴더Workspace에 생성한 후 폴더의 이름을 Caldera로 변경합니다.

  2. 표면 물결을 위한 높은 대비의 배경을 제공합니다.

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

    2. Backdrop을 칼데라의 전체 표면 영역을 약간 넘는 위치로 배치하고 스케일합니다. 이 파트는 칼데라의 지역 조명 소스와의 가까운 거리가 있기 때문에 빛나 보입니다.

      하이라이트된 블록 파트와 함께 칼데라의 상단 보기.
  3. Backdrop을 선택한 후 속성 창에서,

    1. 색상0, 0, 0으로 설정하여 블록을 검은색으로 만듭니다.

    2. 재질Foil로 설정하여 배경에 텍스처를 제공합니다.

      약간 거친 텍스처의 검은색 블록 파트가 있는 칼데라의 상단 보기.
  4. 물결 효과를 생성합니다.

    1. Backdrop을 복제한 후 이름을 MagmaRipples로 변경하고 칼데라의 표면 영역보다 약간 작게 스케일합니다.
    2. MagmaRipples을 선택한 후 속성 창에서 투명도1로 설정하여 블록을 보이지 않게 만듭니다.
    3. MagmaRipplesParticleEmitter를 삽입한 후, 이 방출기를 Ripples라는 이름으로 변경합니다.
    4. Ripples을 선택한 후 속성 창에서,
      1. 텍스처rbxassetid://16829556885로 설정하여 거품 물결처럼 보이는 입자를 렌더링합니다.

      2. 방향VelocityPerpendicular로 설정하여 입자가 이동 방향에 수직으로 방출되도록 합니다.

      3. 색상을 색상 시퀀스로 설정하여 입자가 갈색, 밝은 빨간색으로 변한 다음 마룬색으로 변하도록 합니다.

        1. 색상 속성을 클릭한 후 버튼을 클릭합니다. 색상 시퀀스 팝업이 표시됩니다.
        색상 속성의 생략 기호 버튼이 강조된 스튜디오 속성 창의 클로즈업.

        색상 시퀀스의 아래 축의 각 삼각형은 입자의 수명 주기에서 해당 시점의 속성 색상 값을 결정하는 키포인트입니다.

        1. 색상 시퀀스의 시간 및 값 속성을 설정합니다:
        • 시간 = 0, RGB 값 = 130, 53, 2
        • 시간 = 0.5, RGB 값 = 224, 37, 0
        • 시간 = 1, RGB 값 = 147, 5, 0
      4. 크기를 숫자 시퀀스로 설정하여 입자가 자신의 수명 중간까지 크기가 커졌다가 다시 원래 크기로 돌아오도록 하며 약간의 변화를 허용합니다.

        1. 크기 속성을 클릭한 후 버튼을 클릭합니다. 숫자 시퀀스 팝업이 표시됩니다. 기본적으로 그래프는 직선이고 이미지는 왼쪽에서 오른쪽으로 같은 크기를 유지합니다.
        크기 숫자 시퀀스 그래프의 클로즈업.

        숫자 시퀀스의 시작과 끝의 각 사각형은 텍스처의 왼쪽에서 오른쪽으로의 크기 값을 결정하는 키포인트입니다.

        1. 숫자 시퀀스의 시간 및 값 속성을 설정합니다:

        • 시간 = 0, = 4.81, 봉투 = 0.438
        • 시간 = 0.341, = 8.75, 봉투 = 0.48
        • 시간 = 0.497, = 9.38, 봉투 = 0.5
        • 시간 = 0.644, = 8.75, 봉투 = 0.48
        • 시간 = 1, = 4.81, 봉투 = 0.438
      5. 투명도를 숫자 시퀀스로 설정하여 입자가 처음에는 투명하고 수명의 중간에서 불투명해졌다가 마지막에 다시 투명해지도록 합니다.

        1. 투명도 속성을 클릭한 후 버튼을 클릭합니다.

        2. 숫자 시퀀스의 시간 및 값 속성을 설정합니다:

        • 시간 = 0, = 1, 봉투 = 0
        • 시간 = 0.3, = 0.387, 봉투 = 0.0375
        • 시간 = 0.5, = 0.269, 봉투 = 0.0812
        • 시간 = 0.7, = 0.381, 봉투 = 0.05
        • 시간 = 0, = 1, 봉투 = 0
      6. ZOffset-2로 설정하여 텍스처를 칼데라로부터 약간 떨어지도록 오프셋합니다.

      7. 수명5, 8로 설정하여 각 입자의 수명을 5초에서 8초 사이로 랜덤하게 설정합니다.

      8. 비율12로 설정하여 초당 12개의 입자를 방출합니다.

      9. 회전-360, 360으로 설정하여 각 입자를 원형으로 무작위로 정렬합니다.

      10. 속도0.01로 설정하여 각 입자가 초당 1/10 스터드 이동하도록 방출합니다.

      11. 조명발광1로 설정하여 입자의 밝기를 다소 높입니다.

      12. 조명영향0으로 설정하여 환경광이 입자의 색상에 영향을 주지 못하게 합니다.

      13. 밝기15로 설정하여 방출기의 빛을 조정합니다.

잔재

잔재는 칼데라에서 터져 나오는 작은, 밝은 용융 암석 조각으로, 대기 중으로 급속히 열을 방출합니다. 표면 물결과 유사하게, 잔재는 지각 아래의 내부 압력이 위로 누르고 있음을 드러내어 뜨거운 요소가 용암의 표면 장력을 깨고 압력을 해제하도록 합니다.

샘플은 ParticleEmitter 객체를 사용하여 텍스처에 베이크된 모션 블러가 있는 입자를 방출하여 이 과정을 실제화합니다. 입자가 상승하면서 수명의 끝에 도달할 때 방출기는 입자를 1:1 비율로 압축하여 입자를 원형으로 다시 형성합니다. 이 기술을 통해 입자가 칼데라에서 급속히 이동하는 것처럼 보이다가 하늘에서 소멸하는 속도를 느리게 나타낼 수 있습니다.

칼데라에서 튀어 나오는 잔재를 나타내는 2D 텍스처.
잔재 텍스처 = rbxassetid://17581858560

또한 입자가 상승하면서 온도 변화에 따라 색상, 불투명도 및 크기를 변형합니다. 예를 들어, 잔재는 대체로 큰 갈색 상태로 시작하지만 빠르게 작고 주황색, 마룬색으로 변형됩니다. 이 전략은 또한 협곡 내의 조명 반사를 미묘하게 반영하여 플레이어가 환경에 몰입할 수 있도록 합니다.

샘플 화산 섬 - 완전 장소 파일의 칼데라 표면에서 빛나는 잔재를 재현하려면:

  1. 칼데라 폴더에 원통 파트를 삽입하고 이름을 GlowingEmbers로 변경합니다.

  2. GlowingEmbers이 표면 물결의 위에 위치하도록 배치한 다음 칼데라의 내부를 채우도록 스케일링합니다. 이 파트는 칼데라의 지역 조명 소스와의 가까운 거리가 존재하여 빛나 보입니다.

    광나는 원통 파트가 있는 칼데라의 정면 근접 모습.
  3. GlowingEmbers을 선택한 후 속성 창에서 투명도1로 설정하여 원통을 보이지 않게 합니다.

  4. GlowingEmbersParticleEmitter를 삽입한 후, 방출기를 Embers로 이름을 변경합니다.

  5. Embers을 선택한 후 속성 창에서,

    1. 텍스처rbxassetid://17581858560으로 설정하여 보이고 길게 늘어선 입자처럼 보이는 입자를 렌더링합니다.
    2. 방향VelocityParallel로 설정하여 입자가 이동 방향에 평행하게 방출되도록 합니다.
    3. 색상을 색상 시퀀스로 설정하여 입자가 갈색에서 오렌지색, 마룬색으로 변하듯이 설정합니다.
    • 시간 = 0, RGB 값 = 130, 53, 2
    • 시간 = 0.5, RGB 값 = 224, 82, 0
    • 시간 = 1, RGB 값 = 147, 5, 0
    1. 크기를 숫자 시퀀스로 설정하여 입자가 수명 중 천천히 작아지도록 합니다.
    • 시간 = 0, = 0.313, 봉투 = 0.1
    • 시간 = 1, = 0, 봉투 = 0
    1. Squash를 숫자 시퀀스로 설정하여 입자가 수명 중간에 약간 늘어나는 경향을 보이도록 합니다.
    • 시간 = 0, = -3, 봉투 = 0
    • 시간 = 0.323, = -0.188, 봉투 = 0
    • 시간 = 1, = -0.5, 봉투 = 0
    1. 투명도를 숫자 시퀀스로 설정하여 입자가 상승하면서 불규칙하게 불투명도를 변화시키도록 합니다. 실제 값은 중요하지 않으며, 단지 임의로 변화하는 것입니다.
    1. ZOffset1로 설정하여 텍스처의 칼데라로부터 약간 멀리 떨어지도록 오프셋합니다.
    2. 수명1, 5로 설정하여 각 입자의 수명을 1초에서 5초 사이로 랜덤하게 설정합니다.
    3. 속도5, 8로 설정하여 각 입자가 초당 5에서 8 스터드 사이로 무작위로 방출됩니다.
    4. SpreadAngle180, 180으로 설정하여 입자가 X축과 Z축을 따라 방출되도록 합니다.
    5. 가속도0, 10, 0으로 설정하여 상승하는 힘을 모사하고 입자를 하늘로 끌어올립니다.
    6. 드래그0.8로 설정하여 입자가 지수적으로 속도를 잃도록 합니다.
    7. 조명발광1로 설정하여 입자를 значительно ярче합니다.
    8. 조명영향0으로 설정하여 환경 조명이 입자 색상에 영향을 주지 못하게 합니다.
    9. 밝기20으로 설정하여 방출기에서 발휘되는 빛의 수준을 조정합니다.

용암 튀기기

용암 튀기기는 내부 마그마와 압축된 가스가 표면 장력을 깨뜨릴 수 있는 충분한 힘을 발생시켜 칼데라 위로 튀어 오르는 얇은 용융 암석이 생성되는 현상입니다. 화산의 핵심 구성 요소로, 화산이 더 이상 휴면 상태가 아니고 활동적으로 폭발하고 있음을 나타내는 가장 흔한 신호입니다.

샘플은 두 개의 ParticleEmitter 객체를 사용하여 각 입자의 텍스처를 수명의 동안 애니메이션화합니다. 첫 번째 입자 방출기는 부피가 크고 점도가 높은 두꺼운 튀기기처럼 보이는 입자를 방출하고 느리게 오르내리도록 설정합니다. 반대로 두 번째 입자 방출기는 면적이 낮고 점도가 낮은 웹처럼 보이는 튀기기 입자를 방출하여 빠르게 오르내리게 합니다.

조밀한 튀기기 텍스처를 나타내는 2D 텍스처.
조밀한 튀기기 텍스처 = rbxassetid:/17363669906
웹처럼 보이는 튀기기 텍스처를 나타내는 2D 텍스처.
웹처럼 보이는 튀기기 텍스처 = rbxassetid://17363668312

각 입자 방출기는 텍스처를 64프레임의 애니메이션으로 시뮬레이션하여 부드럽고 생동감 있는 물리적 행동을 확인합니다. 단일 입자 방출기를 사용할 수 있지만, 애니메이션이 반복되면서 플레이어들은 매번 동일한 애니메이션을 인식하게 되어 몰입감을 깨뜨리는 상황이 발생할 수 있습니다. 그러나 두 개의 입자가 약간 다른 커스텀 속성으로 애니메이션화된 플립북을 사용하면 반복성을 식별하기가 훨씬 더 어렵습니다.

샘플은 또한 체적이 낮은 웹튕이는 액체에 대한 대안을 추가하여 공간이 동적으로 채워집니다. 이 기술은 역량을 다하고 플립북 애니메이션의 반복 사용을 줄여줄 수 있습니다. 추가로, 여러분의 경험에서도 물줄기 만들기와 같은 기능이 포함되어 있다면, 다른 게임 플레이 영역에 대해 같은 텍스처를 두 번 재사용할 수 있어 메모리를 절약하고 저사양 장치에서도 성능을 개선할 수 있습니다.

공기 중의 방울을 나타내는 2D 텍스처.
웹처럼 보이는 텍스처 = rbxassetid://17082061238

샘플 화산 섬 - 완전 장소 파일 라인의 표면에서 튀는 용암을 재현하려면:

  1. Caldera 폴더에 원통 파트를 삽입하고 이름을 SplashingLava으로 변경합니다.

  2. SplashingLava가 표면 물결 위에 위치하도록 배치한 다음 중앙에 튀어 나오는 위치에 맞게 스케일링합니다. 이 파트는 칼데라의 지역 조명 소스와의 가까운 거리가 덧붙여지므로 빛나 보입니다.

    광나는 원통 파트가 있는 칼데라의 정면 모습.
  3. SplashingLava를 선택한 후 속성 창에서 투명도1로 설정하여 원통을 보이지 않게 만듭니다.

  4. SplashingLavaParticleEmitter를 삽입하고 방출기를 WebbySplashes로 이름을 변경합니다.

  5. WebbySplashes을 선택한 후 속성 창에서,

    1. 텍스처rbxassetid://17363668312로 설정하여 웹처럼 보이는 튀기기 효과를 생성합니다.
    2. 방향FacingCameraWorldUp로 설정하여 입자가 카메라를 향하고 있지만 수직으로만 회전하도록 합니다.
    3. 색상255, 152, 79로 설정하여 입자를 연한 주황색 색조로 바꿉니다.
    4. 크기를 숫자 시퀀스로 설정하여 입자가 수명 전반에 걸쳐 커질 수 있게 합니다.
    • 시간 = 0, = 4.31, 봉투 = 0.762
    • 시간 = 1, = 6.2, 봉투 = 0.875
    1. Squash를 숫자 시퀀스로 설정하여 입자가 수명 전반에 걸쳐 약간 늘어나는 경향이 있습니다.
    • 시간 = 0, = -0.075, 봉투 = 0.263
    • 시간 = 1, = -0.413, 봉투 = 0.412
    1. ZOffset1로 설정하여 텍스처의 칼데라로부터 약간 떨어지도록 오프셋합니다.
    2. 수명1.5, 2로 설정하여 각 입자의 수명을 1.5초에서 2초 사이로 랜덤하게 설정합니다.
    3. 비율0.37로 설정하여 약 3초마다 랜덤하게 입자를 방출합니다.
    4. RotSpeed-20, 20으로 설정하여 각 입자가 -20과 20도 사이에서 랜덤하게 방출되도록 합니다.
    5. 속도2로 설정하여 각 입자가 초당 2 스터드 이동하도록 합니다.
    6. SpreadAngle5, 5로 설정하여 입자가 X축과 Z축을 따라 작은 각도로 방출되도록 합니다.
    7. FlipbookLayoutGrid8x8으로 설정하여 64프레임 동안 텍스처를 애니메이션 처리합니다.
    8. FlipbookModeOneshot으로 설정하여 애니메이션이 수명 중 한 번만 재생되도록 합니다.
    9. 드래그0.5로 설정하여 입자가 지수적으로 속도를 잃도록 합니다.
    10. 조명발광0.1로 설정하여 입자를 약간 밝힙니다.
    11. 빛영향0.25로 설정하여 환경광이 입자 색상에 얼마나 영향을 미치는지를 상당히 감소시킵니다.
  6. DenseSplashes 복제 후, 속성 창에서 다음 속성을 변경하여 추가 용암 튀기기에 변화를 제공합니다.

    1. 이름DenseSplashes로 설정합니다.
    2. 텍스처rbxassetid://17363669906으로 설정하여 조밀한 튀기기를 배출하도록 합니다.
    3. 크기를 숫자 시퀀스로 설정하여 입자가 수명 전반에 걸쳐 커지는 경향이 있습니다.
    • 시간 = 0, = 5.75, 봉투 = 0.762
    • 시간 = 1, = 7.37, 봉투 = 0.875
    1. Squash를 숫자 시퀀스로 설정하여 입자가 수명 전반에 걸쳐 약간 길어지게 만듭니다.
    • 시간 = 0, = 0, 봉투 = 0.225
    • 시간 = 1, = -0.262, 봉투 = 0.15
    1. 비율0.289로 설정하여 입자가 거의 4초마다 방출됩니다.
  7. 칼데라에 추가 튀기기를 채워 넣습니다.

    1. SplashingLavaParticleEmitter를 삽입한 후 방출기를 SplashFill로 이름을 변경합니다.

    2. SplashFill을 선택한 후 속성 창에서,

      1. 텍스처rbxassetid://17082061238로 설정하여 더 밝은 웹 튀기기처럼 보일 수 있게 합니다.
      2. 방향FacingCameraWorldUp으로 설정하여 입자가 카메라를 향하면서 수직으로만 회전하도록 합니다.
      3. 색상255, 152, 33로 설정하여 입자를 주황색 색조로 바꿉니다.
      4. 크기를 숫자 시퀀스로 설정하여 입자가 수명 전반에 걸쳐 커질 수 있게 합니다.
      • 시간 = 0, = 1.25, 봉투 = 0.388
      • 시간 = 1, = 6.38, 봉투 = 0.563
      1. 투명도를 숫자 시퀀스로 설정하여 입자가 처음 투명하다가 불투명해졌다가 마지막으로 다시 투명해지도록 설정합니다.
      • 시간 = 0, = 1, 봉투 = 0
      • 시간 = 0.19, = 0, 봉투 = 0
      • 시간 = 0.795, = 0, 봉투 = 0
      • 시간 = 1, = 1, 봉투 = 0
      1. ZOffset1로 설정하여 텍스처를 칼데라로부터 약간 멀리 떨어지도록 만듭니다.
      2. 수명1.5로 설정하여 각 입자의 수명 초를 1.5초로 설정합니다.
      3. 비율8으로 설정하여 약 8초마다 입자 하나를 방출합니다.
      4. 회전0, 360으로 설정하여 각 입자를 무작위 반원으로 회전시킵니다.
      5. RotSpeed-50, 50으로 설정하여 입자 각각이 -50도에서 50도 사이로 아무렇게나 방출되도록 합니다.
      6. 속도12, 20으로 설정하여 각 입자가 12에서 20 스터드 사이로 랜덤하게 방출됩니다.
      7. SpreadAngle45, 45로 설정하여 입자를 X축과 Z축을 따라 방출합니다.
      8. 가속도0, -25, 0으로 설정하여 중력의 영향을 끼쳐 입자가 다시 떨어지도록 만듭니다.
      9. 드래그1로 설정하여 입자가 속도를 잃게 만듭니다.
      10. 조명발광1로 설정하여 입자를 상당히 밝게 만듭니다.
      11. 조명영향0으로 설정하여 환경의 조명이 입자의 색상에 영향을 주지 못하게 만듭니다.
      12. 밝기8로 설정하여 방출기에서 발생하는 햇빛 강도를 조절합니다.

용암 흐름

용암 흐름은 화산 폭발 동안 칼데라에서 분출하여 지구의 표면을 가로질러 흐르는 용암의 집합체입니다. 용암이 공기와 접촉하면서 냉각되면 고체가 되며, 새 땅 덩어리를 형성합니다.

이 과정을 시뮬레이션하기 위해 샘플에서는 여러 개의 Beam 객체를 서로 덧씌워 seamless 텍스처 및 속성 구성을 사용하여 용암이 칼데라에서 멀어지면서 냉각되는 행동 특성을 시뮬레이션합니다:

  • 하단 레이어는 따뜻한 색에서 차가운 색으로 변하는 평면 색상을 렌더링하여 용암 온도가 저하되기 시작하고 있기를 알려줍니다. 예를 들어, 밝은 빨간색에서 어두운 마룬색으로 변합니다.
  • 중간 레이어는 어두운 구멍이 뚫린 어두운 껍데기처럼 보이는 검은색 텍스처를 렌더링하여 그 아래에서 빛나는 용암을 드러냅니다.
  • 상단 레이어는 중간 레이어와 동일한 텍스처를 더 느린 속도로 렌더링하고 부착물이 뒤집힐 수 있으며 반대 속성 구성을 사용하여 만듭니다. 이를 통해 텍스처가 동일한 방향으로 렌더링될 때 모두 완전히 일치할 가능성이 없게 하여 플레이어가 비현실적인 텍스처 반복을 쉽게 감지하지 못하게 합니다.
하단 레이어
중간 레이어
상단 레이어

세 개의 Beam 객체를 층화하여 용암이 서로 다른 속도로 흐르는 깊이감과 볼륨 감각을 주는 착시현상을 만듭니다. 비록 2D 이미지만 취하더라도 플레이어는 협곡 내부에서 용암의 표면 및 아래에서의 혼란을 느낄 수 있도록 합니다.

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

샘플 화산 섬 - 완전 장소 파일의 칼데라에서 흐르는 용암을 재현하려면:

  1. 탐색기 창에서 모든 흐르는 용암 객체를 포함할 폴더Workspace에 생성한 후 폴더의 이름을 FlowingMagma로 변경합니다.

  2. FlowingMagma 폴더에 블록 파트를 삽입한 후 이름을 MagmaRiverBeam으로 변경합니다.

  3. MagmaRiverBeam을 칼데라의 가장자리 아래로 약간 이동합니다.

    화산의 상단 내려다본 경사진 모습.
  4. 칼데라에서 흐르는 모든 용암 빔을 렌더링하는 데 사용할 부착물을 구성합니다.

    1. MagmaRiverBeam에 부착물을 삽입한 후, 노란색 비주얼 보조가 칼데라를 가리키도록 회전시킵니다.
    2. MagmaRiverBeam에 또 다른 부착물을 삽입하여 틈쪽으로 배치한 후, 노란색 비주얼 보조가 땅 아래를 가리키도록 회전시킵니다.
    화산의 칼데라의 위에서 두 개의 부착물 시각적 보조가 강조된 모습.
  5. MagmaRiverBeamBeam을 삽입한 후 이름을 Magma로 변경합니다.

  6. 부분의 부착물을 Magma에 지정합니다.

    1. 탐색기 창에서 Magma를 선택합니다.
    2. 속성 창에서,
      1. Attachment0을 칼데라의 가장자리 부착물로 설정합니다.
      2. Attachment1을 틈의 부착물로 설정합니다. 빔은 두 부착물 간의 기본 텍스처를 렌더링합니다.
    화산의 위에서 두 부착물 사이의 기본 빔 텍스처를 렌더링하는 두 개의 블록 파트.
  7. 빔의 시각적 외관을 사용자화하여 마그마처럼 보이게 합니다.

    1. 탐색기 창에서 Magma가 여전히 선택되어 있는지 확인합니다.

    2. 속성 창에서,

      1. Width050으로 설정하여 텍스처가 렌더링을 시작하는 축을 넓힙니다.
      2. Width150으로 설정하여 틈의 절벽에서 넓게 보이도록 합니다.
      3. CurveSize0-50으로 설정하여 텍스처가 틈의 바닥에서부터 멀어지도록 만듭니다.
      4. CurveSize15로 설정하여 텍스처가 틈으로 들어가도록 만듭니다.
      5. 색상을 색상 시퀀스로 설정하여 밝은 빨간색에서 어두운 빨간색의 범위를 만들어 마그마가 냉각되고 있음을 시뮬레이션합니다.
      • 시간 = 0, RGB 값 = 255, 51, 0
      • 시간 = 0.5, RGB 값 = 211, 39, 0
      • 시간 = 1, RGB 값 = 118, 24, 0
      1. 투명도를 숫자 시퀀스로 설정하여 마그마가 부착물 사이에 더욱 선명하게 보이도록 합니다.
      • 시간 = 0, = 1
      • 시간 = 0.0916, = 0
      • 시간 = 0.867, = 0
      • 시간 = 0.941, = 0.725
      • 시간 = 1, = 1
      1. 조명발광1로 설정하여 빔을 크게 밝힙니다.
      2. 조명영향0으로 설정하여 환경 조명이 빔 색상에 영향을 주지 못하게 합니다.
      3. 밝기8로 설정하여 빔에서 발휘되는 빛의 세기를 조절합니다.
  8. MagmaRiverBeam에 또 다른 Beam을 삽입하고 이름을 Crust1으로 변경한 후, 이전 단계와 같은 과정을 따라 부착물을 연결합니다.

  9. 빔의 외관을 사용자화하여 용암 위에 있는 껍질처럼 보이게 합니다.

    1. 탐색기 창에서 Crust1이 여전히 선택되어 있는지 확인합니다.

    2. 속성 창에서,

      1. 텍스처rbxassetid://17023930265로 설정하여 흐르는 껍질처럼 보이도록 합니다.
      2. Width035로 설정하여 텍스처가 시작하는 축을 넓힙니다.
      3. Width125로 설정하여 틈의 부착물에서 넓게 보이도록 합니다.
      4. TextureSpeed0.01로 설정하여 텍스처의 이동 속도를 상당히 느리게 합니다.
      5. TextureLength3으로 설정하여 텍스처의 길이를 약간 늘립니다.
      6. CurveSize0-50으로 설정하여 껍질이 틈의 바닥에서 멀어지도록 만듭니다.
      7. CurveSize15로 설정하여 껍질이 틈으로 들어가도록 합니다.
      8. 색상83, 83, 83으로 설정하여 베임을 회색으로 만들어 줍니다.
      9. 투명도를 숫자 시퀀스로 설정하여 껍질이 부착물 사이에서 더 선명하게 보이도록 합니다.
      • 시간 = 0, = 1
      • 시간 = 0.22, = 0
      • 시간 = 0.85, = 0
      • 시간 = 1, = 1
      1. ZOffset1로 설정하여 텍스처를 칼데라보다 약간 멀리 떨어지게 합니다.
  10. Crust1 복제한 후 이름을 Crust2로 변경한 후, 속성 창에서,

  11. Attachment0을 틈의 부착물로 설정합니다.

  12. Attachment1을 칼데라의 가장자리 부착물로 설정합니다.

  13. Width025로 설정하여 텍스처 시작축을 넓힙니다.

  14. Width135으로 설정하여 틈의 부착물에서 넓게 보이도록 합니다.

  15. TextureSpeed-0.008로 설정하여 텍스처의 이동 속도를 느리게 합니다.

  16. TextureLength2로 설정하여 텍스처의 길이를 약간 조정합니다.

  17. CurveSize0-5으로 설정하여 껍질이 틈의 바닥에서 멀어지도록 합니다.

  18. CurveSize150으로 설정하여 틈으로부터의 곡률을 증가시키도록 합니다.1. ZOffset2로 설정하여 텍스처를 다른 크러스트에서 오프셋합니다.

  1. (선택 사항) 같은 방법을 사용하여 갈라진 부분 주위에 더 많은 빔을 생성하여 마그마가 분출되도록 합니다. 텍스처를 느리게 조정하고 온도가 식어 가면서 더 어두운 색으로 마그마를 시뮬레이션하는 속성을 조정해야 합니다.

연기 기둥

칼데라에서 나오는 연기 기둥은 따뜻한 압축 가스, 증기 및 화산재를 대기로 방출합니다. 이러한 화산 방출 혼합물은 실제로 수 마일 떨어진 곳에서 볼 수 있으므로, 화산 디자인은 3D 공간에서 주요 관심 지점으로 크게 연기 기둥을 포함하는 경우가 많습니다.

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

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

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

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

  2. SmokePlume을 칼데라 아래에 위치시킨 다음, 칼데라의 표면 면적에 맞게 크기를 조절합니다.

    칼데라 아래에 강조 표시된 블록 부분을 가진 화산의 경사진 측면 모습.
  3. SmokePlumeParticleEmitter를 삽입한 후, 발산기를 Smoke로 이름을 변경합니다.

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

    1. Texturerbxassetid://16830673704로 설정하여 두꺼운 연기처럼 보이는 입자를 렌더링합니다.
    2. Color를 칼데라에서 하늘로 빛나는 입자를 시뮬레이션하는 색상 시퀀스로 설정합니다. 시작은 검정색이고, 연한 복숭아색으로 바뀌고, 회색으로 변합니다.
    • 시간 = 0, RGB 값 = 0, 0, 0
    • 시간 = 0.374, RGB 값 = 195, 104, 76
    • 시간 = 0.469, RGB 값 = 225, 121, 86
    • 시간 = 0.709, RGB 값 = 111, 111, 111
    • 시간 = 1, RGB 값 = 113, 113, 113
    1. 투명도를 입자가 투명하게 시작하고, 수명 초기에 완전히 불투명해지며, 수명 끝near 가 다시 투명해지는 숫자 시퀀스로 설정합니다.
    • 시간 = 0, = 1
    • 시간 = 0.0622, = 0
    • 시간 = 0.845, = 0
    • 시간 = 0, = 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'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.