A 폭포는 강이나 시내에서 물이 하나 이상의 수직 낙하를 넘어 물체로 흐르는 지점입니다. 게임에서는 종종 환경을 향상시키거나 시각적 관심 지점을 만들기 위해 폭포를 포함하며, 자원을 숨기거나 플레이어를 장소 내의 다른 지역으로 전환하는 등의 기능적 게임 플레이 목적을 위해 사용됩니다.
Waterfall Island .rbxl 파일을 참조하여, 이 튜토리얼에서는 실제 물리적 행동을 나타내는 VFX 객체로 폭포를 만드는 방법을 보여줍니다. 여기에는 다음에 대한 안내가 포함됩니다:
- 참조 자료를 시각적 및 행동적 특성이 뚜렷한 개별 구성 요소로 분해하기.
- 절벽에서 떨어지면서 물이 퍼지는 것을 모방하기 위해 서로 다른 속도로 떨어지는 폭포를 구성하기.
- 폭포가 바닥의 낙하 풀에 충격을 줄 때 물이 에어로졸화되는 것을 모방하기 위해 물보라를 구성하기.
- 물이 바위에 부딪힐 때 난기류가 발생하는 것을 모방하기 위해 백색 물을 구성하기.
- 모세관 파동이 표면 장력을 깨는 것을 모방하기 위해 거품을 구성하기.
- 충격 지점에서 위로 상승하는 안개 증기를 모방하기 위해 안개를 구성하기. 이는 플레이어가 어떤 각도에서든 볼 수 있는 무지개를 생성합니다.
참조 분해하기
신뢰할 수 있는 폭포를 만들기 위해서는 디자인 과정에서 실제 자연적 특징을 참조하는 것이 중요합니다. 이는 주제를 시각적 및 행동적 특성이 뚜렷한 개별 구성 요소로 분해할 수 있게 해줍니다. 예를 들어, 샘플 Waterfall Island 게임은 워싱턴 주의 스노퀄미 폭포를 참조하여 폭포와 그 주변 지형과 관련된 모든 텍스처 및 VFX 디자인 결정을 알립니다.

폭포는 여러 상태의 물질이 포함된 연속적이고 연결된 물줄기로, 동적인 유체 및 공기 운동이 포함됩니다. 이 복잡한 시스템을 개별 구성 요소로 분해하는 것이 유용합니다. 이를 통해 다양한 VFX 객체를 활용하여 실제 세계의 대응물을 모방하는 방법을 계획할 수 있습니다. 이 튜토리얼에서는 샘플 폭포를 다섯 개의 고유한 구성 요소로 분해합니다:
- 폭포수 – 절벽에서 떨어지는 물.
- 물보라 – 폭포수가 바닥의 낙하 풀에 충돌할 때 흩어지는 물.
- 백색 물 – 물의 출처가 절벽의 가장자리에 접근할 때 발생하는 난기류 물.
- 거품 – 폭포수와 낙하 풀이 충돌할 때 수평으로 흩어지는 공기 포함 물.
- 안개 – 전체 폭포의 결과로 공중에서 증발하는 구름 같은 물.


다음 섹션에서는 샘플의 3D 공간에서 주요 낙하를 구성하는 각 폭포 구성 요소를 재현하기 위해 사용할 수 있는 다양한 디자인 결정 및 기술에 대한 심층 분석을 제공합니다. 이러한 결정들을 검토하고 다양한 Beam 및 ParticleEmitter 속성을 실험하면서, VFX를 활용하여 자신의 게임에 대한 독특한 환경 요구 사항을 해결하는 방법을 배우게 됩니다.
폭포수 구성하기
폭포수는 절벽이나 언덕의 가장자리를 넘어 아래의 낙하 풀로 떨어지는 물입니다. 폭포수는 물의 양과 낙하 풀이 있는 거리의 규모에 따라 서로 다른 속도로 떨어집니다. 예를 들어, 샘플의 주요 낙하는 많은 양의 물이 큰 거리에서 떨어지기 때문에 더 천천히 떨어지는 것처럼 보이지만, 샘플의 두 번째 낙하는 적은 양의 물이 짧은 거리에서 떨어지기 때문에 더 빨리 떨어지는 것처럼 보입니다.
게다가, 폭포는 물이 낙하 풀로 떨어지면서 퍼지기 때문에 서로 다른 속도로 떨어지는 폭포수의 층을 가질 수 있습니다. 이 원리를 보여주기 위해 샘플은 서로 다른 속도와 길이로 Beam 객체를 사용하여 매끄러운 텍스처를 렌더링합니다. 이 기술은 주요 낙하에 더 현실적인 떨어지는 행동을 제공할 뿐만 아니라, 폭포수가 깊이와 볼륨의 감각을 갖도록 하는 착시 효과를 만듭니다.
샘플 Waterfall Island 장소 파일의 주요 낙하를 위한 폭포수를 재현하려면:
폭포수의 유출을 만듭니다.
Explorer 창에서 Workspace에 모든 유출 객체를 포함할 Folder를 만들고, 폴더 이름을 Outflow로 변경합니다.
Outflow 폴더에 두 개의 block 부품을 삽입하고, 각각의 이름을 OutflowStart와 OutflowStop으로 변경합니다.
OutflowStart를 유출이 시작되기를 원하는 위치로 이동하고, OutflowStop을 절벽의 가장자리로 이동합니다.

OutflowStart와 OutflowStop에 각각 첨부물을 삽입한 후, 첨부물이 위를 가리키도록 회전합니다.

Outflow 폴더에 Beam을 삽입하고, 이름을 OutflowWater로 변경합니다.
각 부품의 첨부물을 OutflowWater에 할당합니다.
- Explorer 창에서 OutflowWater를 선택합니다.
- Properties 창에서,
- Attachment0를 OutflowStart의 첨부물로 설정합니다.
- Attachment1을 OutflowStop의 첨부물로 설정합니다. 빔은 두 첨부물 사이에 기본 텍스처를 렌더링합니다.

빔의 시각적 외관을 사용자 정의하여 절벽의 가장자리를 향해 흐르는 물처럼 보이게 합니다.
- Explorer 창에서 OutflowWater가 여전히 선택되어 있는지 확인합니다.
- Properties 창에서,
Texture를 rbxassetid://4787437624로 설정하여 흐르는 거품처럼 보이는 새로운 텍스처를 렌더링합니다.
Width0를 60으로 설정하여 텍스처가 렌더링되기 시작하는 축에서 넓어지게 합니다.
Width1을 20으로 설정하여 텍스처가 절벽의 가장자리로 좁아지게 합니다.
TextureSpeed를 0.4로 설정하여 텍스처의 흐름을 느리게 합니다.
TextureLength를 64로 설정하여 텍스처의 길이를 늘립니다.
TextureMode를 Wrap으로 설정하여 텍스처가 첨부물 사이의 3D 세계에서의 전체 길이에 따라 반복되도록 합니다. 이는 텍스처가 흐르는 물처럼 보이게 합니다.
Color를 어두운 파란색과 밝은 파란색에서 흰색으로 번갈아 가는 색상 시퀀스로 설정합니다.
Color 속성을 클릭한 후, ⋯ 버튼을 클릭합니다. 색상 시퀀스 팝업이 표시됩니다.

색상 시퀀스의 하단 축에 있는 각 삼각형은 입자의 수명에서 해당 지점의 속성의 색상 값을 결정하는 키포인트입니다.
색상 시퀀스 전반에 걸쳐 다음 시간 및 값 속성을 설정합니다:
- Time = 0, RGB Value = 208, 247, 255
- Time = 0.135, RGB Value = 146, 235, 255
- Time = 0.248, RGB Value = 255, 255, 255
- Time = 0.384, RGB Value = 128, 183, 202
- Time = 0.757, RGB Value = 166, 213, 248
- Time = 1, RGB Value = 255, 255, 255

Transparency를 절벽의 가장자리에 접근할 때 물이 더 생동감 있게 보이도록 하는 숫자 시퀀스로 설정합니다.
Transparency 속성을 클릭한 후, ⋯ 버튼을 클릭합니다. 숫자 시퀀스 팝업이 표시됩니다. 기본적으로 그래프는 직선이며, 이미지는 왼쪽에서 오른쪽으로 동일한 투명도를 유지합니다.

숫자 시퀀스의 시작과 끝에 있는 각 사각형은 왼쪽에서 오른쪽으로 텍스처의 해당 지점에서 속성의 투명도 값을 결정하는 키포인트입니다.
숫자 시퀀스 전반에 걸쳐 다음 시간 및 값 속성을 설정합니다:
- Time = 0, Value = 1
- Time = 0.375, Value = 0.725
- Time = 0.615, Value = 0
- Time = 0.92, Value = 1
- Time = 1, Value = 1

각 부품의 크기를 조정하여 텍스처가 유출 풀이 넓이를 덮도록 합니다. 이제 유출이 모든 각도에서 절벽의 가장자리를 향해 흐르는 것처럼 보입니다.
주요 낙하에서 빠르게 흐르는 폭포수를 만듭니다.
Explorer 창에서 Workspace에 모든 폭포수 객체를 포함할 Folder를 만들고, 폴더 이름을 Cascades로 변경합니다.
Cascades 폴더에 두 개의 block 부품을 삽입하고, 각각의 이름을 MainDropStart와 MainDropStop으로 변경합니다.
MainDropStart를 절벽의 가장자리로 이동하고, MainDropStop을 낙하 풀 아래로 이동합니다.

주요 낙하에서 모든 폭포수 빔이 텍스처를 렌더링하는 데 사용할 첨부물을 구성합니다.
- MainDropStart에 첨부물을 삽입한 후, 첨부물이 절벽에서 멀어지도록 회전합니다.
- MainDropStop에 첨부물을 삽입한 후, 첨부물이 절벽을 향하도록 회전합니다.

Cascades 폴더에 Beam을 삽입하고, 이름을 FastDrop으로 변경합니다.
각 부품의 첨부물을 FastDrop에 할당합니다.
- Explorer 창에서 FastDrop을 선택합니다.
- Properties 창에서,
- Attachment0를 MainDropStart의 첨부물로 설정합니다.
- Attachment1을 MainDropStop의 첨부물로 설정합니다. 빔은 두 첨부물 사이에 기본 텍스처를 렌더링합니다.

빔의 시각적 외관을 사용자 정의하여 주요 낙하에서 빠르게 흐르는 폭포수처럼 보이게 합니다.
Explorer 창에서 FastDrop이 여전히 선택되어 있는지 확인합니다.
Properties 창에서,
- Texture를 rbxassetid://16808804567로 설정하여 흐르는 물처럼 보이는 새로운 텍스처를 렌더링합니다.
- Width0를 5로 설정하여 텍스처가 렌더링되기 시작하는 축에서 넓어지게 합니다.
- Width1을 10으로 설정하여 텍스처가 낙하 풀에 도달할 때 넓어지게 합니다.
- CurveSize0를 10으로 설정하여 텍스처가 절벽에서 멀어지도록 곡선으로 만듭니다.
- CurveSize1을 20으로 설정하여 텍스처가 낙하 풀로 곡선으로 들어가게 합니다.
- TextureSpeed를 1.3으로 설정하여 텍스처가 빠르게 흐르도록 합니다.
- TextureLength를 2로 설정하여 텍스처의 길이를 약간 늘립니다.
- Color를 어두운 파란색과 밝은 파란색에서 흰색으로 번갈아 가는 색상 시퀀스로 설정합니다.
- Time = 0, RGB Value = 208, 247, 255
- Time = 0.135, RGB Value = 210, 246, 255
- Time = 0.25, RGB Value = 255, 255, 255
- Time = 0.384, RGB Value = 163, 187, 202
- Time = 0.757, RGB Value = 214, 229, 248
- Time = 1, RGB Value = 255, 255, 255

- Transparency를 첨부물 사이에서 흐르는 물이 더 생동감 있게 보이도록 하는 숫자 시퀀스로 설정합니다.
- Time = 0, Value = 1
- Time = 0.115, Value = 0
- Time = 0.835, Value = 0
- Time = 0.881, Value = .994
- Time = 1, Value = 1

- ZOffset를 2로 설정하여 텍스처가 절벽에서 약간 떨어지도록 합니다.
- FaceCamera를 활성화하여 플레이어의 각도와 관계없이 폭포수가 보이도록 합니다.
주요 낙하에서 느리게 흐르는 폭포수를 만듭니다.
FastDrop을 복제한 후, 복제된 빔의 이름을 SlowDrop으로 변경합니다.
빔의 시각적 외관을 사용자 정의하여 주요 낙하에서 느리게 흐르는 폭포수처럼 보이게 합니다.
- Explorer 창에서 SlowDrop을 선택합니다.
- Properties 창에서,
- Width1을 20으로 설정하여 텍스처가 낙하 풀에 도달할 때 더 넓어지게 합니다.
- TextureLength를 1.5로 설정하여 텍스처의 길이를 약간 줄입니다.
- TextureSpeed를 1로 설정하여 텍스처가 덜 빠르게 흐르도록 합니다.
- ZOffset을 0으로 설정하여 텍스처가 절벽의 가장자리에서 직접 흐르도록 합니다.
Explorer 창에서 Outflow 폴더의 모든 블록 부품을 선택한 후, Properties 창에서 Transparency를 1로 설정하여 블록을 보이지 않게 합니다.
물보라 구성하기
폭포수가 아래의 낙하 풀에 충격을 줄 때, 물은 충격 지점에서 위로 튕겨 올라가 물보라를 생성합니다. 이 에어로졸화된 물이 위로 튕겨 올라가면서 확장되고 서로 분리되어 다양한 방향으로 흩어지는 물방울을 생성합니다.
이 과정을 보여주기 위해 샘플은 주요 낙하의 바닥에 두 개의 ParticleEmitter 객체를 사용합니다. 첫 번째 입자 방출기는 폭포수가 낙하 풀에 충돌할 때 위로 튕겨 올라가는 물의 무게를 나타내는 밀집된 물보라처럼 보이는 입자를 방출합니다. 두 번째 입자 방출기는 물이 에어로졸화되는 것을 나타내는 물방울처럼 보이는 입자를 방출합니다.
이 두 입자 방출기를 서로 다른 속도로 동시에 방출하도록 구성하면, 결과적인 시각적 효과는 물보라의 실제 물리적 행동을 모방합니다. 이러한 세부 사항은 VFX의 사실감에 기여하고 플레이어를 3D 공간에 몰입시킵니다.


샘플 Waterfall Island 장소 파일의 주요 낙하 바닥에서 물보라를 재현하려면:
Explorer 창에서 Workspace에 모든 물보라 객체를 포함할 Folder를 만들고, 폴더 이름을 Splashes로 변경합니다.
Splashes에 block 부품을 삽입하고, 이름을 MainDropSplashes로 변경합니다.
MainDropSplashes를 폭포수가 낙하 풀에 충격을 주는 전체 표면 영역에 위치시키고 크기를 조정합니다.

주요 낙하의 폭포수가 낙하 풀에 충격을 줄 때 밀집된 물보라를 만듭니다.
MainDropSplashes에 ParticleEmitter를 삽입하고, 방출기의 이름을 SplashDense로 변경합니다.
SplashDense를 선택한 후, Properties 창에서,
- Texture를 rbxassetid://16829556885로 설정하여 밀집된 물보라처럼 보이는 입자를 렌더링합니다.
- Color를 파란색에서 흰색으로 변하는 색상 시퀀스로 설정합니다.
- Time = 0, RGB Value = 189, 246, 255
- Time = 1, RGB Value = 255, 255, 255

- Size를 크기가 점진적으로 증가하는 숫자 시퀀스로 설정합니다.
- Time = 0, Value = 1.81, Envelope = 0.562
- Time = 1, Value = 5.75, Envelope = 1.31

- Transparency를 입자가 투명하게 시작하여 불투명해졌다가 다시 투명해지는 숫자 시퀀스로 설정합니다.
- Time = 0, Value = 1, Envelope = 0
- Time = 0.5, Value = 0.181, Envelope = 0.181
- Time = 1, Value = 1, Envelope = 0

- Lifetime을 0.25, 0.35로 설정하여 각 입자의 수명을 250에서 350 밀리초 사이로 무작위로 설정합니다.
- Rate를 30으로 설정하여 초당 30개의 입자를 방출합니다.
- Rotation을 -45, 45로 설정하여 각 입자를 초당 -45도에서 45도 사이로 무작위로 방향을 설정합니다.
- RotSpeed를 -40, 40으로 설정하여 각 입자를 초당 -45도에서 40도 사이로 무작위로 방출합니다.
- Speed를 20, 35로 설정하여 각 입자를 초당 20에서 35 스터드 사이로 무작위로 방출합니다.
- SpreadAngle을 50, 50으로 설정하여 X 및 Z 축을 따라 입자를 방출합니다.
- Acceleration을 0, -40, 0으로 설정하여 중력을 시뮬레이션하고 입자를 아래로 끌어내립니다.
- LightEmission을 0.5로 설정하여 입자를 밝게 합니다.
- LightInfluence를 0.1로 설정하여 환경 조명이 입자의 색상에 미치는 영향을 크게 줄입니다.
주요 낙하의 폭포수가 낙하 풀에 충격을 줄 때 물방울을 만듭니다.
SplashDense를 복제한 후, 이름을 SplashDroplets로 변경합니다.
SplashDroplets를 선택한 후, Properties 창에서,
- Texture를 rbxassetid://17082061238로 설정하여 물방울처럼 보이는 입자를 렌더링합니다.
- Size를 크기가 빠르게 증가하는 숫자 시퀀스로 설정합니다.
- Time = 0, Value = 1.81, Envelope = 0.562
- Time = 1, Value = 8.69, Envelope = 1.31

- Transparency를 입자가 투명하게 시작하여 빠르게 불투명해졌다가 수명 중간에 다시 투명해지는 숫자 시퀀스로 설정합니다.
- Time = 0, Value = 1, Envelope = 0
- Time = 0.104, Value = 0.0625, Envelope = 0.0625
- Time = 0.429, Value = 0.0562, Envelope = 0.0562
- Time = 1, Value = 1, Envelope = 0

- Lifetime을 0.15, 0.6로 설정하여 각 입자의 수명을 150에서 600 밀리초 사이로 무작위로 설정합니다.
- Rate를 20으로 설정하여 초당 20개의 입자를 방출합니다.
Explorer 창에서 Splashes 폴더의 모든 블록 부품을 선택한 후, Properties 창에서 Transparency를 1로 설정하여 블록을 보이지 않게 합니다.
백색 물 구성하기
백색 물은 물의 출처가 더 난기류가 되어 속도가 증가하면서 발생합니다. 이는 물의 출처에 더 많은 공기 방울이 포함되어 하얗게 보이는 에어로졸화된 물을 생성합니다.
이 과정을 모방하기 위해 샘플은 두 개의 ParticleEmitter 객체를 사용하여 절벽의 바위에 충돌할 때 발생하는 에어로졸화된 물보라처럼 보이는 입자를 방출합니다. 방출기는 내장 조명을 사용하지 않고, 대신 다양한 낙하 속도로 흰색과 회색 색조를 우선시하여 물의 공기 양을 나타냅니다.

샘플 Waterfall Island 장소 파일에서 유출이 절벽의 바위에 충돌할 때 백색 물을 재현하려면:
Explorer 창에서 Workspace에 모든 백색 물 객체를 포함할 Folder를 만들고, 폴더 이름을 WhiteWater로 변경합니다.
WhiteWater에 block 부품을 삽입하고, 이름을 MainDropWW로 변경합니다.
MainDropWW를 유출이 절벽을 넘어 흐르기 시작하는 전체 표면 영역에 위치시키고 크기를 조정합니다.

주요 유출이 주변 바위에 충돌할 때 덜 난기류인 백색 물을 만듭니다.
MainDropWW에 ParticleEmitter를 삽입하고, 방출기의 이름을 GentleWW로 변경합니다.
GentleWW를 선택한 후, Properties 창에서,
- Texture를 rbxassetid://16808075391로 설정하여 거미줄 같은 물보라처럼 보이는 입자를 렌더링합니다.
- Color를 파란색에서 흰색으로 변하는 색상 시퀀스로 설정합니다.
- Time = 0, RGB Value = 189, 246, 255
- Time = 1, RGB Value = 255, 255, 255

- Size를 크기가 점진적으로 증가하는 숫자 시퀀스로 설정합니다.
- Time = 0, Value = 1.13, Envelope = 0.562
- Time = 1, Value = 5.56, Envelope = 0.563

- Transparency를 입자가 투명하게 시작하여 중간에 불투명해졌다가 다시 투명해지는 숫자 시퀀스로 설정합니다.
- Time = 0, Value = 1, Envelope = 0
- Time = 0.143, Value = 0.462, Envelope = 0.0625
- Time = 0.336, Value = 0.462, Envelope = 0.0562
- Time = 0.622, Value = 0.788, Envelope = 0.0538
- Time = 1, Value = 1, Envelope = 0

- ZOffset를 2로 설정하여 텍스처가 절벽에서 약간 떨어지도록 합니다.
- Lifetime을 1.25, 1.5로 설정하여 각 입자의 수명을 1250에서 1500 밀리초 사이로 무작위로 설정합니다.
- Rate를 12로 설정하여 초당 12개의 입자를 방출합니다.
- Rotation을 -45, 45로 설정하여 각 입자를 초당 -45도에서 45도 사이로 무작위로 방향을 설정합니다.
- RotSpeed를 -40, 40으로 설정하여 각 입자를 초당 -45도에서 40도 사이로 무작위로 방출합니다.
- Speed를 15, 18로 설정하여 각 입자를 초당 20에서 35 스터드 사이로 무작위로 방출합니다.
- SpreadAngle을 5, 5로 설정하여 X 및 Z 축을 따라 입자를 방출합니다.
- Acceleration을 0, -35, 0으로 설정하여 중력을 시뮬레이션하고 입자를 아래로 끌어내립니다.
- Drag를 0.25로 설정하여 입자가 지수적으로 감속하도록 합니다.
- LightEmission을 0.6로 설정하여 입자를 밝게 합니다.
- LightInfluence를 0.1로 설정하여 환경 조명이 입자의 색상에 미치는 영향을 크게 줄입니다.
주변 바위에 충돌할 때 더 난기류인 백색 물을 만듭니다.
GentleWW를 복제한 후, 이름을 TurbulentWW로 변경합니다.
TurbulentWW를 선택한 후, Properties 창에서,
- Size를 크기가 점진적으로 증가하는 숫자 시퀀스로 설정합니다.
- Time = 0, Value = 1.6, Envelope = 0.562
- Time = 1, Value = 2.63, Envelope = 0.563

- Transparency를 입자가 투명하게 시작하여 불투명해졌다가 다시 투명해지는 숫자 시퀀스로 설정합니다.
- Time = 0, Value = 1, Envelope = 0
- Time = 0.156, Value = 0.0437, Envelope = 0.0437
- Time = 0.55, Value = 0.075, Envelope = 0.0252
- Time = 1, Value = 1, Envelope = 0

- Lifetime을 0.25, 0.5로 설정하여 각 입자의 수명을 250에서 500 밀리초 사이로 무작위로 설정합니다.
- Rate를 20으로 설정하여 초당 20개의 입자를 방출합니다.
- Speed를 5, 6으로 설정하여 각 입자를 초당 5에서 6 스터드 사이로 무작위로 방출합니다.
- Acceleration을 0, -15, 0으로 설정하여 중력을 시뮬레이션하고 입자를 아래로 끌어내립니다.
Explorer 창에서 WhiteWater 폴더의 모든 블록 부품을 선택한 후, Properties 창에서 Transparency를 1로 설정하여 블록을 보이지 않게 합니다.
거품 구성하기
폭포수가 낙하 풀에 충격을 줄 때 위로 튕겨 올라가는 물보라와 달리, 거품은 충격 지점의 바닥에서 바깥쪽으로 퍼지는 에어로졸화된 물입니다. 거품은 물보라와 유사하게, 표면 장력을 깨는 모세관 파동의 시각적 및 행동적 효과를 모방합니다.
이 효과를 모방하기 위해 샘플은 거품 파동처럼 보이는 입자를 방출하는 ParticleEmitter 객체를 사용하며, 이를 낙하 풀과 평행하게 천천히 방출합니다. 이를 통해 입자가 물의 표면 장력을 깨는 모세관 파동의 시각적 및 행동적 효과를 모방할 수 있습니다.

샘플 Waterfall Island 장소 파일의 주요 낙하 바닥에서 거품을 재현하려면:
Explorer 창에서 Workspace에 모든 거품 객체를 포함할 Folder를 만들고, 폴더 이름을 Foam으로 변경합니다.
Foam에 block 부품을 삽입하고, 이름을 MainDropFoam으로 변경합니다.
MainDropFoam을 주요 폭포수가 낙하 풀에 충격을 주는 가장 밀집된 부분의 전체 표면 영역에 위치시키고 크기를 조정합니다.

MainDropFoam에 ParticleEmitter를 삽입하고, 방출기의 이름을 FoamRipples로 변경합니다.
Explorer 창에서 FoamRipples를 선택한 후, Properties 창에서,
Texture를 rbxassetid://16811365086로 설정하여 거품 파동처럼 보이는 입자를 렌더링합니다.
Orientation을 VelocityPerpendicular로 설정하여 입자가 이동 방향에 수직으로 방출되도록 합니다.
Transparency를 입자가 투명하게 시작하여 빠르게 불투명해졌다가 수명 끝에 다시 투명해지는 숫자 시퀀스로 설정합니다.
- Time = 0, Value = 1, Envelope = 0
- Time = 0.143, Value = 0.119, Envelope = 0.1
- Time = 0.664, Value = 0.125, Envelope = 0.112
- Time = 1, Value = 1, Envelope = 0

Lifetime을 0.5, 0.7로 설정하여 각 입자의 수명을 500에서 700 밀리초 사이로 무작위로 설정합니다.
Rate를 5로 설정하여 초당 5개의 입자를 방출합니다.
Rotation을 0, 360으로 설정하여 각 입자를 방출 지점에서 원형으로 무작위로 방향을 설정합니다.
RotSpeed를 -15, 15로 설정하여 각 입자를 초당 -15도에서 15도 사이로 무작위로 방출합니다.
Speed를 0, .01로 설정하여 각 입자를 초당 0에서 .01 스터드 사이로 무작위로 방출합니다.
LightEmission을 0.25로 설정하여 입자를 약간 밝게 합니다.
LightInfluence를 0으로 설정하여 환경 조명이 입자의 색상에 영향을 미치지 않도록 합니다.
Command Bar에 다음 문자열을 입력하여 각 입자의 크기를 수명 동안 5에서 20 스터드로 증가시키고 작은 변동 범위를 설정합니다:
workspace.Foam.MainDropFoam.FoamRipples.Size = NumberSequence.new{NumberSequenceKeypoint.new(0,5,0), NumberSequenceKeypoint.new(1,20,5)}Explorer 창에서 Foam 폴더의 모든 블록 부품을 선택한 후, Properties 창에서 Transparency를 1로 설정하여 블록을 보이지 않게 합니다.
안개 구성하기
폭포수가 낙하 풀에 충격을 줄 때, 일부 물이 증발하고 차가운 습한 공기에서 응축되어 안개를 생성합니다. 안개 증기는 단단한 표면과 같은 방식으로 빛을 반사하지 않으며, 대신 종종 예상치 못한 방식으로 빛을 반사하여 전체 환경에서 밝게 보입니다.
샘플은 주요 낙하의 바닥에 두 개의 ParticleEmitter 객체를 사용하여 이 과정을 모방합니다. 첫 번째 입자 방출기는 충격 지점과 절벽에서 입자를 에너제틱하게 방출하고, 두 번째 방출기는 천천히 하늘로 상승하는 입자를 방출합니다. 두 입자 방출기의 입자는 수명 시작 시 밝고, 수명 끝에 가까워질수록 천천히 투명해집니다.
실제 세계와 유사하게, 안개 증발 과정은 작은 물방울에서 빛이 반사되어 무지개가 형성되도록 하며, 샘플은 짧은 수명을 가진 무지개 입자를 방출하는 ParticleEmitter 객체로 이를 모방합니다. 이 입자는 플레이어가 폭포에서 어떤 각도로 보더라도 카메라를 향하도록 하여 증기 자체에서 빛이 반사되는 착시 효과를 생성합니다.


샘플 Waterfall Island 장소 파일에서 주요 낙하의 바닥에서 바깥쪽과 위쪽으로 이동하는 안개를 재현하려면:
Explorer 창에서 Workspace에 모든 안개 관련 객체를 포함할 Folder를 만들고, 폴더 이름을 Mist로 변경합니다.
폭포수가 낙하 풀에 충격을 주는 지점에서 방사되는 안개를 만듭니다.
Mist에 block 부품을 삽입하고, 이름을 BaseMist로 변경합니다.
BaseMist를 주요 폭포수가 낙하 풀에 충격을 주는 가장 밀집된 부분을 향하도록 위치시키고, 방향과 크기를 조정합니다.

BaseMist에 ParticleEmitter를 삽입하고, 방출기의 이름을 Mist로 변경합니다.
Mist를 선택한 후, Properties 창에서,
- Texture를 rbxassetid://16830667309로 설정하여 두꺼운 안개처럼 보이는 입자를 렌더링합니다.
- Color를 파란색에서 흰색으로 변하는 색상 시퀀스로 설정합니다.
- Time = 0, RGB Value = 171, 244, 255
- Time = 0.339, RGB Value = 251, 254, 255
- Time = 1, RGB Value = 255, 255, 255

- Size를 크기가 점진적으로 증가하는 숫자 시퀀스로 설정합니다.
- Time = 0, Value = 8, Envelope = 0
- Time = 1, Value = 10, Envelope = 0

- Transparency를 입자가 투명하게 시작하여 빠르게 불투명해졌다가 수명 끝에 다시 투명해지는 숫자 시퀀스로 설정합니다.
- Time = 0, Value = 1, Envelope = 0
- Time = 0.0971, Value = 0.8, Envelope = 0.0625
- Time = 1, Value = 1, Envelope = 0

- ZOffset를 2로 설정하여 텍스처가 낙하 풀에서 약간 떨어지도록 합니다.
- Lifetime을 0.5, 1로 설정하여 각 입자의 수명을 500에서 1000 밀리초 사이로 무작위로 설정합니다.
- Rate를 20으로 설정하여 초당 20개의 입자를 방출합니다.
- Rotation을 -360, 360으로 설정하여 각 입자를 원형으로 무작위로 방향을 설정합니다.
- RotSpeed를 -50, 50으로 설정하여 각 입자를 초당 -50도에서 50도 사이로 무작위로 방출합니다.
- Speed를 35, 50으로 설정하여 각 입자를 초당 35에서 50 스터드 사이로 무작위로 방출합니다.
- SpreadAngle을 25, 25로 설정하여 X 및 Z 축을 따라 입자를 방출합니다.
- Acceleration을 -10, -25, -10으로 설정하여 낙하 풀에서 튕겨 나오는 충격을 시뮬레이션합니다.
- Drag를 1.5로 설정하여 입자가 지수적으로 감속하도록 합니다.
낙하 풀에서 위로 상승하는 안개를 만듭니다.
- BaseMist를 복제한 후, 이름을 RiseMist로 변경합니다.
- RiseMist의 입자가 방출되는 부분이 하늘을 향하도록 방향을 조정합니다.
- 자식 입자 방출기를 선택한 후, Properties 창에서,
- Lifetime을 4로 설정하여 각 입자의 수명을 4초로 설정합니다.
- Rate를 3으로 설정하여 초당 3개의 입자를 방출합니다.
- RotSpeed를 -10, 10으로 설정하여 각 입자를 초당 -10도에서 10도 사이로 무작위로 방출합니다.
- Speed를 25로 설정하여 각 입자를 초당 25 스터드로 방출합니다.
- Acceleration을 0, 0, 0으로 설정하여 이전 시뮬레이션을 제거합니다.
- Drag를 1로 설정하여 입자가 지수적으로 감속하도록 합니다.
- Command Bar에 다음 문자열을 입력하여 각 입자의 크기를 수명 동안 20에서 20 스터드로 증가시키고 작은 변동 범위를 설정합니다:
workspace.Mist.RiseMist.Mist.Size = NumberSequence.new{NumberSequenceKeypoint.new(0,20,1), NumberSequenceKeypoint.new(1,25,5)}무지개를 만듭니다.
Mist에 block 부품을 삽입하고, 이름을 RainbowPart로 변경합니다.
RainbowPart를 다른 블록 부품들 위에 약간 위치시킵니다.

Rainbow에 ParticleEmitter를 삽입하고, 방출기의 이름을 Rainbow로 변경합니다.
Rainbow를 선택한 후, Properties 창에서,
- Texture를 rbxassetid://16828911033로 설정하여 희미한 무지개처럼 보이는 입자를 렌더링합니다.
- Size를 25로 설정하여 큰 입자를 렌더링합니다.
- Transparency를 입자가 투명하게 시작하여 약간 불투명해졌다가 수명 동안 다시 투명해지는 숫자 시퀀스로 설정합니다.
- Time = 0, Value = 1, Envelope = 0
- Time = 0.497, Value = 0.363, Envelope = 0.05
- Time = 1, Value = 1, Envelope = 0

- Lifetime을 2, 4로 설정하여 각 입자의 수명을 200에서 400 밀리초 사이로 무작위로 설정합니다.
- Rate를 0.25로 설정하여 4초마다 1개의 입자를 방출합니다.
- Rotation을 -20으로 설정하여 각 입자를 약간 기울이도록 합니다.
- Speed를 0으로 설정하여 각 입자를 초당 0 스터드로 방출합니다.
- Drag를 1로 설정하여 입자가 지수적으로 감속하도록 합니다.
- LightEmission을 1로 설정하여 입자를 배경의 색상으로 렌더링합니다. 이 단계는 텍스처 자체의 검은 배경을 제거합니다.
- LightInfluence를 0으로 설정하여 환경 조명이 입자의 색상에 영향을 미치지 않도록 합니다.
Explorer 창에서 Mist 폴더의 모든 블록 부품을 선택한 후, Properties 창에서 Transparency를 1로 설정하여 블록을 보이지 않게 합니다.