Một ngọn núi lửa là một miệng hố trong lớp vỏ trái đất phun ra dung nham và khói do áp lực bên trong từ magma và khí hòa tan. Các trò chơi thường bao gồm các ngọn núi lửa trong các khu vực gameplay đầy thử thách, chẳng hạn như những địa điểm mà người chơi phải cân bằng giữa nguy hiểm từ dung nham và đá nóng chảy với phần thưởng từ các tài nguyên quý giá, đấu trường chiến đấu với boss, hoặc các môi trường thay đổi động khi núi lửa phun trào theo chu kỳ.
Sử dụng tệp Volcano Island - Start .rbxl làm điểm khởi đầu và Volcano Island - Complete làm tài liệu tham khảo, hướng dẫn này cho bạn biết cách biến đổi môi trường thành một vụ phun trào núi lửa với ánh sáng tùy chỉnh và các đối tượng VFX đại diện cho hành vi vật lý trong thế giới thực, bao gồm hướng dẫn về:
- Phân tích tài liệu tham khảo thành các thành phần riêng lẻ với các đặc điểm hình ảnh và hành vi khác nhau.
- Cấu hình các gợn sóng bề mặt để mô phỏng chất lỏng nóng nổi lên bề mặt và làm rối loạn bề mặt của miệng hố.
- Cấu hình các mảnh than hồng để mô phỏng các mảnh đá nóng chảy nhanh chóng làm mát khi chúng bay lên bầu khí quyển.
- Cấu hình dung nham phun và chảy từ miệng hố để mô phỏng các trạng thái độ nhớt khác nhau của dung nham.
- Cấu hình một đám khói để mô phỏng các tạp chất độc hại bay lên bầu trời thu hút sự chú ý của người chơi.


Phân tích tài liệu tham khảo
Để tạo ra các ngọn núi lửa đáng tin cậy, điều quan trọng là tham khảo các vụ phun trào núi lửa trong thế giới thực trong quá trình thiết kế vì điều này cho phép bạn phân tích chủ đề thành các thành phần riêng lẻ với các đặc điểm hình ảnh và hành vi khác nhau. Ví dụ, trò chơi mẫu Volcano Island - Complete tham khảo vụ phun trào núi lửa ở Iceland để thông báo cho tất cả các quyết định thiết kế kết cấu và VFX liên quan đến miệng hố và địa hình xung quanh.

Việc phân tích một ngọn núi lửa đang phun trào thành các thành phần riêng lẻ là hữu ích để bạn có thể lập kế hoạch cách sử dụng các đối tượng VFX khác nhau để bắt chước các đối tượng tương ứng trong thế giới thực. Để minh họa, hướng dẫn này phân tích ngọn núi lửa mẫu thành năm thành phần độc đáo:
- Gợn sóng bề mặt – Những gợn sóng nhỏ của dung nham trên bề mặt của miệng hố.
- Mảnh than hồng – Những mảnh đá nóng chảy nhỏ, nhẹ bay lên bầu trời từ miệng hố.
- Phun dung nham – Những mảnh đá nóng chảy mỏng phun ra từ miệng hố do áp lực bên trong núi lửa.
- Dòng dung nham – Những mảnh đá nóng chảy nhớt chảy ra từ miệng hố.
- Đám khói – Khí ấm, cuồn cuộn bay lên bầu trời từ miệng hố.


Các phần tiếp theo cung cấp phân tích sâu về các quyết định thiết kế khác nhau và các kỹ thuật bạn có thể sử dụng để tái tạo từng thành phần này. Khi bạn xem xét các quyết định này và thử nghiệm với các thuộc tính ánh sáng khác nhau, ParticleEmitter, và Beam, bạn sẽ học cách sử dụng ánh sáng và VFX để giải quyết các yêu cầu môi trường độc đáo cho các trò chơi của riêng bạn.
Cấu hình ánh sáng
Để làm cho một yếu tố môi trường trở thành một điểm thu hút trong trò chơi của bạn, điều quan trọng là tăng độ tương phản của nó so với toàn bộ môi trường để nó nổi bật như một thứ mà người chơi nên khám phá. Ví dụ, để thu hút người chơi vào miệng hố, bạn có thể cấu hình các nguồn ánh sáng của mình để dung nham của núi lửa có vẻ như phát sáng như nguồn ánh sáng duy nhất trong một môi trường tối tăm khác.
Studio cung cấp hai loại nguồn ánh sáng cấp cao mà bạn có thể sử dụng cho kỹ thuật này:
- Ánh sáng toàn cầu - Tạo ra ánh sáng cho toàn bộ môi trường ngoài trời.
- Ánh sáng cục bộ - Tạo ra ánh sáng xung quanh nơi bạn đặt chúng trong trò chơi của mình.
Phần này của hướng dẫn dạy bạn cách sử dụng cả hai loại nguồn ánh sáng để làm cho vụ phun trào núi lửa của bạn trở thành điểm thu hút quan trọng nhất trong cảnh của bạn, cũng như tạo ra hiệu ứng kịch tính cho câu chuyện môi trường của bạn. Để minh họa, hãy xem xét cách mà ngọn núi lửa cuối cùng mà không có ánh sáng tùy chỉnh cảm thấy như một mối nguy không gây chú ý trong một môi trường vui vẻ, trong khi ngọn núi lửa với ánh sáng tùy chỉnh cảm thấy như một sự hiện diện nguy hiểm trong một môi trường tối tăm, u ám.


Ánh sáng cục bộ
Ánh sáng cục bộ là ánh sáng từ các nguồn sáng cục bộ trong trò chơi của bạn, chẳng hạn như các đối tượng SpotLight, SurfaceLight, và PointLight. Ánh sáng cục bộ là quan trọng để thêm vào núi lửa của bạn vì trong khi bạn có thể áp dụng độ sáng cho các kết cấu ParticleEmitter và Beam, chúng không thể làm đầy hẻm núi với đủ ánh sáng một mình để mô phỏng thực tế cách mà miệng hố và dung nham chảy của nó sẽ chiếu sáng môi trường trong thế giới thực.


Thật hữu ích khi cấu hình ánh sáng cục bộ của bạn trước ánh sáng toàn cầu cho hướng dẫn này vì nếu không có các nguồn ánh sáng cục bộ, bạn không thể nhìn thấy không gian 3D để cấu hình các đối tượng VFX của mình. Tuy nhiên, các quy trình làm việc thông thường yêu cầu bạn lặp lại cả ánh sáng cục bộ và ánh sáng toàn cầu đồng thời để xem các hiệu ứng của các thay đổi của bạn trên các đối tượng VFX, vì vậy điều quan trọng là phải linh hoạt với các yêu cầu thiết kế của các trò chơi của riêng bạn.
Để tái tạo ánh sáng cục bộ cho núi lửa trong tệp mẫu Volcano Island - Complete:
Trong cửa sổ Explorer, tạo một Thư mục trong Workspace để chứa tất cả các đối tượng nguồn sáng cục bộ, sau đó đổi tên thư mục thành LocalLighting.
Chèn ba phần khối vào thư mục LocalLighting, sau đó đổi tên chúng thành LightCaldera, LightMagma, và LightOutflow, tương ứng.
Di chuyển các phần đến một vị trí mà chúng có thể chiếu sáng toàn bộ núi lửa.
- Di chuyển LightCaldera đến trung tâm của không gian giữa miệng hố và vách đá.
- Di chuyển LightMagma đến trung tâm của khe nứt giữa miệng hố và dòng magma chảy.
- Di chuyển LightOutflow lên một chút nơi dòng chảy phân nhánh thành hai dòng.

Chèn một Pointlight vào mỗi phần.

Chọn PointLight con của LightCaldera, sau đó trong cửa sổ Properties,
- Đặt Brightness thành 15 để làm cho nguồn sáng sáng hơn nhiều.
- Đặt Color thành 255, 85, 0 để nhuộm ánh sáng thành màu cam đậm.
- Đặt Range thành 60 để chiếu sáng toàn bộ khu vực miệng hố.

Chọn các PointLight con của LightMagma và LightOutflow, sau đó trong cửa sổ Properties,
- Đặt Brightness thành 2 để làm cho nguồn sáng sáng hơn một chút.
- Đặt Color thành 255, 81, 0 để nhuộm ánh sáng thành màu cam.
- Đặt Range thành 50 để chiếu sáng các khu vực khe nứt và dòng chảy.

Trong cửa sổ Explorer, chọn tất cả các phần khối trong thư mục LocalLighting, sau đó trong cửa sổ Properties, đặt Transparency thành 1 để làm cho các khối trở nên vô hình.

Ánh sáng toàn cầu
Ánh sáng toàn cầu là ánh sáng từ mặt trời hoặc mặt trăng trong một trò chơi. Bằng cách điều chỉnh một vài thuộc tính mặc định quan trọng trong dịch vụ Lighting và các đối tượng hiệu ứng xử lý hậu kỳ con của nó, bạn có thể thay đổi đáng kể cách ánh sáng toàn cầu xuất hiện với người chơi, cũng như cách nó tương tác với bất kỳ đối tượng nào khác mà bạn đặt trong trò chơi, bao gồm các kết cấu ParticleEmitter và Beam.
Ví dụ, để đảm bảo rằng các kết cấu Beam tạo ra hiệu ứng dung nham chảy sau này trong hướng dẫn có thể phát sáng, bạn phải cấu hình các thuộc tính BloomEffect để phóng đại ánh sáng như một camera nhìn vào một nguồn sáng mạnh. Tương tự, để mô phỏng màu sắc thực tế hơn vào ban đêm, bạn cũng phải điều chỉnh các thuộc tính của hiệu ứng để làm giảm độ bão hòa của toàn bộ môi trường.


Để tái tạo ánh sáng toàn cầu trong tệp mẫu Volcano Island - Complete:
Trong cửa sổ Explorer, chọn dịch vụ Lighting, sau đó trong cửa sổ Properties,
- Đặt Ambient thành 133, 152, 176 để đặt một màu xám nhạt trên toàn bộ môi trường ngoài trời.
- Đặt Brightness thành 2 để làm cho nguồn ánh sáng toàn cầu sáng hơn một chút.
- Đặt ColorShift_Top thành 207, 178, 72 để đặt một màu vàng cho ánh sáng phản chiếu từ các bề mặt hướng về nguồn sáng toàn cầu.
- Đặt LightingStyle thành Realistic để sử dụng công nghệ ánh sáng tiên tiến nhất của Roblox.
- Đặt ClockTime thành 4.3 để đặt thời gian khoảng một phần tư sau 4 giờ sáng.
- Đặt GeographicLatitude thành 199 để điều chỉnh vị trí của mặt trăng.
- Đặt ExposureCompensation thành -1 để phơi sáng môi trường chỉ bằng một nửa độ phơi sáng từ mặt trăng.

Trong cửa sổ Explorer, chọn Bloom con của dịch vụ Lighting, sau đó trong cửa sổ Properties,
- Đặt Intensity thành 0.75 để làm giảm nhẹ tất cả các màu trong môi trường.
- Đặt Size thành 80 để tạo ra một hiệu ứng bloom rộng hơn.
- Đặt Threshold thành 0.85 để cho phép nhiều màu trong môi trường phát sáng.

Trong cửa sổ Explorer, chèn một đối tượng ColorCorrection vào dịch vụ Lighting, sau đó trong cửa sổ Properties,
- Đặt Brightness thành 0.017 để thay đổi nhẹ màu sắc của các pixel của bạn.
- Đặt Contrast thành 0.25 để tạo ra độ tương phản sắc nét hơn giữa các màu sáng và tối trong môi trường.
- Đặt Saturation thành -0.15 để làm giảm độ bão hòa của các màu trong môi trường.
- Đặt TintColor thành 255, 214, 143 để nhuộm các pixel với một màu vàng nhạt.

- TÙY CHỌNCung cấp ánh sáng gián tiếp với mây trên bầu trời.
- Trong cửa sổ Explorer, chèn một đối tượng Clouds vào dịch vụ Terrain.
- Chọn đối tượng Clouds, sau đó trong cửa sổ Properties,
- Đặt Cover thành 1 để cung cấp một lớp mây che phủ hoàn toàn bầu trời.
- Đặt Density thành 0.08 để làm cho lớp mây ít dày đặc hơn.
- Đặt Color thành 136, 143, 152 để đặt một màu xám nhạt cho lớp mây.

Cấu hình núi lửa
Bây giờ mà cấu hình ánh sáng cục bộ và toàn cầu của bạn đã hoàn tất, đã đến lúc cấu hình tất cả các đối tượng VFX liên quan đến núi lửa thực tế và địa hình xung quanh nó. Khi bạn theo dõi các hướng dẫn này để tái tạo chính xác môi trường cuối cùng trong tệp mẫu Volcano Island .rbxl, hãy quan sát cách mà mỗi bước hoạt động cùng nhau để thêm tính cách, chuyển động, và độ sáng cho môi trường.
Gợn sóng bề mặt
Gợn sóng bề mặt là những gợn sóng dung nham nhỏ chảy qua bề mặt của miệng hố do magma bên trong và các khí áp suất di chuyển lên trên từ dưới lớp vỏ trái đất. Hiện tượng hình ảnh này truyền đạt quá trình vật lý thực tế của đối lưu, hoặc chuyển động trong một chất lỏng khi chất lỏng nóng hơn nổi lên bề mặt, và nó làm tăng tính thực tế của cảnh của bạn.
Gợn sóng bề mặt cung cấp cái nhìn quý giá cho người chơi về trạng thái của vụ phun trào núi lửa. Ví dụ, nếu magma và khí đang di chuyển lên trên với đủ lực để làm rối loạn trạng thái của dung nham trên đỉnh miệng hố và khiến nó sôi sục, người chơi có thể suy luận rằng núi lửa đang hoạt động phun trào với magma sôi, vì vậy họ nên cẩn thận khi ở gần khu vực gameplay này.

Để minh họa quy trình này, mẫu sử dụng một đối tượng ParticleEmitter nằm hơi dưới đáy của miệng hố để phát ra các hạt phẳng, sáng màu chậm rãi mở rộng và co lại trên nền tối. Điều này cho phép các hạt bắt chước hành vi của dung nham một cách mượt mà và liên tục theo cách tương tự như cách mà các yếu tố di chuyển trong tự nhiên.

Để tái tạo gợn sóng bề mặt trên đỉnh miệng hố trong tệp mẫu Volcano Island - Complete:
Trong cửa sổ Explorer, tạo một Thư mục trong Workspace để chứa tất cả các đối tượng miệng hố, sau đó đổi tên thư mục thành Caldera.
Tạo một nền để cung cấp một nền tảng tương phản cao cho gợn sóng bề mặt.
Chèn một phần khối vào thư mục Caldera, sau đó đổi tên nó thành Backdrop.
Định vị và thay đổi kích thước Backdrop để hơi vượt ra ngoài toàn bộ diện tích bề mặt của miệng hố. Phần này xuất hiện như thể nó đang phát sáng vì gần với nguồn sáng cục bộ của miệng hố.

Chọn Backdrop, sau đó trong cửa sổ Properties,
Đặt Color thành 0, 0, 0 để làm cho khối màu đen.
Đặt Material thành Foil để cung cấp kết cấu cho nền.

Tạo hiệu ứng gợn sóng.
- Nhân đôi Backdrop, đổi tên nó thành MagmaRipples, sau đó thay đổi kích thước nó hơi nhỏ hơn diện tích bề mặt của miệng hố.
- Chọn MagmaRipples, sau đó trong cửa sổ Properties, đặt Transparency thành 1 để làm cho khối trở nên vô hình.
- Chèn một ParticleEmitter vào MagmaRipples, sau đó đổi tên bộ phát thành Ripples.
- Chọn Ripples, sau đó trong cửa sổ Properties,
Đặt Texture thành rbxassetid://16829556885 để phát ra các hạt trông giống như gợn sóng bọt.
Đặt Orientation thành VelocityPerpendicular để phát ra các hạt vuông góc với hướng di chuyển của chúng.
Đặt Color thành một chuỗi màu trong đó các hạt có màu nâu, trở nên đỏ sáng, sau đó chuyển sang màu đỏ sẫm.
- Nhấp vào thuộc tính Color, sau đó nhấp vào nút ⋯. Một pop-up chuỗi màu sẽ hiển thị.

Mỗi tam giác trên trục dưới của chuỗi màu là một điểm khóa xác định giá trị màu của thuộc tính tại điểm đó trong vòng đời của hạt.
- Đặt các thuộc tính thời gian và giá trị sau trong toàn bộ chuỗi màu:
- Time = 0, RGB Value = 130, 53, 2
- Time = 0.5, RGB Value = 224, 37, 0
- Time = 1, RGB Value = 147, 5, 0

Đặt Size thành một chuỗi số trong đó các hạt tăng kích thước về phía giữa vòng đời của chúng trước khi trở lại kích thước ban đầu với một khoảng biến đổi nhỏ.
- Nhấp vào thuộc tính Size, sau đó nhấp vào nút ⋯. Một pop-up chuỗi số sẽ hiển thị. Theo mặc định, đồ thị là một đường thẳng và hình ảnh vẫn giữ nguyên kích thước từ trái sang phải.

Mỗi hình vuông ở đầu và cuối chuỗi số là một điểm khóa xác định giá trị kích thước của thuộc tính tại điểm đó của kết cấu từ trái sang phải.
Đặt các thuộc tính thời gian và giá trị sau trong toàn bộ chuỗi số:
- 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

Đặt Transparency thành một chuỗi số trong đó các hạt bắt đầu là trong suốt, trở nên đục hơn về giữa vòng đời của chúng, sau đó lại trở nên trong suốt ở cuối vòng đời của chúng.
Nhấp vào thuộc tính Transparency, sau đó nhấp vào nút ⋯.
Đặt các thuộc tính thời gian và giá trị sau trong toàn bộ chuỗi số:
- 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

Đặt ZOffset thành -2 để dịch chuyển kết cấu ra xa một chút khỏi miệng hố.
Đặt Lifetime thành 5, 8 để ngẫu nhiên đặt vòng đời của mỗi hạt giữa 5 và 8 giây.
Đặt Rate thành 12 để phát ra 12 hạt mỗi giây.
Đặt Rotation thành -360, 360 để ngẫu nhiên định hướng mỗi hạt theo hình tròn.
Đặt Speed thành 0.01 để phát ra mỗi hạt một phần mười stud mỗi giây.
Đặt LightEmission thành 1 để làm sáng rõ rệt các hạt.
Đặt LightInfluence thành 0 để ngăn ánh sáng môi trường ảnh hưởng đến màu sắc của các hạt.
Đặt Brightness thành 15 để tăng cường ánh sáng phát ra từ bộ phát.
Mảnh than hồng
Mảnh than hồng là những mảnh đá nóng chảy nhỏ, nhẹ phun ra từ miệng hố, nhanh chóng tỏa nhiệt khi chúng bay lên bầu khí quyển. Tương tự như gợn sóng bề mặt, các mảnh than hồng cho thấy rằng áp lực bên trong lớp vỏ trái đất đang đẩy lên, khiến các yếu tố nóng chảy phá vỡ độ căng bề mặt của dung nham để giải phóng áp lực.
Mẫu mô phỏng quy trình này bằng cách sử dụng một đối tượng ParticleEmitter để phát ra các hạt với độ mờ chuyển động được nướng vào kết cấu. Khi các hạt bay lên và đạt đến cuối vòng đời của chúng, bộ phát nén các hạt thành tỷ lệ 1:1 để tái tạo các hạt thành hình tròn. Kỹ thuật này cho phép các hạt có vẻ như đang di chuyển nhanh chóng khi chúng thoát ra khỏi miệng hố, sau đó chậm lại khi chúng tan biến vào bầu trời.

Ngoài ra, khi các hạt bay lên, chúng thay đổi màu sắc, độ trong suốt và kích thước để phản ánh nhiệt độ đang thay đổi của chúng. Ví dụ, chúng bắt đầu vòng đời của mình như những hạt lớn, màu nâu, nhưng nhanh chóng biến thành những hạt nhỏ màu cam, sau đó là màu đỏ sẫm. Chiến lược này cũng có lợi ích là phản ánh nhẹ ánh sáng trong toàn bộ hẻm núi, tăng cường sự hòa nhập của người chơi trong môi trường.
Để tái tạo các mảnh than hồng phát sáng từ bề mặt của miệng hố trong tệp mẫu Volcano Island - Complete:
Chèn một phần cylinder vào thư mục Caldera, sau đó đổi tên nó thành GlowingEmbers.
Định vị GlowingEmbers sao cho nó nằm trên các gợn sóng bề mặt, sau đó thay đổi kích thước cho đến khi nó lấp đầy bên trong miệng hố. Phần này xuất hiện như thể nó đang phát sáng vì gần với nguồn sáng cục bộ của miệng hố.

Chọn GlowingEmbers, sau đó trong cửa sổ Properties, đặt Transparency thành 1 để làm cho hình trụ trở nên vô hình.
Chèn một ParticleEmitter vào GlowingEmbers, sau đó đổi tên bộ phát thành Embers.
Chọn Embers, sau đó trong cửa sổ Properties,
- Đặt Texture thành rbxassetid://17581858560 để phát ra các hạt trông giống như hình oval kéo dài theo chiều ngang và chiều dọc.
- Đặt Orientation thành VelocityParallel để phát ra các hạt song song với hướng di chuyển của chúng.
- Đặt Color thành một chuỗi màu trong đó các hạt có màu nâu, trở thành màu cam, sau đó chuyển sang màu đỏ sẫm.
- Time = 0, RGB Value = 130, 53, 2
- Time = 0.5, RGB Value = 224, 82, 0
- Time = 1, RGB Value = 147, 5, 0

- Đặt Size thành một chuỗi số trong đó các hạt từ từ giảm kích thước trong suốt vòng đời của chúng.
- Time = 0, Value = 0.313, Envelope = 0.1
- Time = 1, Value = 0, Envelope = 0

- Đặt Squash thành một chuỗi số trong đó các hạt hơi kéo dài khoảng giữa vòng đời của chúng.
- Time = 0, Value = -3, Envelope = 0
- Time = 0.323, Value = -0.188, Envelope = 0
- Time = 1, Value = -0.5, Envelope = 0

- Đặt Transparency thành một chuỗi số trong đó các hạt ngẫu nhiên thay đổi độ trong suốt của chúng để mô phỏng các mảnh than hồng phát sáng khi chúng bay lên. Các giá trị thực tế không quan trọng, chỉ cần chúng thay đổi nhiều trong suốt vòng đời của chúng.

- Đặt ZOffset thành 1 để dịch chuyển kết cấu ra xa một chút khỏi miệng hố.
- Đặt Lifetime thành 1, 5 để ngẫu nhiên đặt vòng đời của mỗi hạt giữa 1 và 5 giây.
- Đặt Speed thành 5, 8 để ngẫu nhiên phát ra mỗi hạt giữa 5 và 8 studs mỗi giây.
- Đặt SpreadAngle thành 180, 180 để phát ra các hạt theo một góc dọc theo trục X và Z.
- Đặt Acceleration thành 0, 10, 0 để mô phỏng lực đẩy lên và kéo các hạt lên bầu trời.
- Đặt Drag thành 0.8 để các hạt mất tốc độ với sự suy giảm theo cấp số nhân.
- Đặt LightEmission thành 1 để làm sáng rõ rệt các hạt.
- Đặt LightInfluence thành 0 để ngăn ánh sáng môi trường ảnh hưởng đến màu sắc của các hạt.
- Đặt Brightness thành 20 để tăng cường ánh sáng phát ra từ bộ phát.
Phun dung nham
Phun dung nham là những vụ phun ra của đá nóng chảy mỏng phun lên từ núi lửa do magma bên trong và các khí áp suất áp dụng đủ lực để phá vỡ độ căng bề mặt của dung nham trên đỉnh miệng hố. Thành phần cốt lõi này của một ngọn núi lửa là một trong những dấu hiệu phổ biến nhất để xác định rằng một ngọn núi lửa không còn ngủ yên và đang hoạt động phun trào.
Mẫu đại diện cho quy trình này bằng cách sử dụng hai đối tượng ParticleEmitter mà sử dụng flipbooks để hoạt hình kết cấu của mỗi hạt trong suốt vòng đời của chúng. Bộ phát hạt đầu tiên phát ra các hạt trông giống như những vụ phun dày đặc, có độ nhớt cao, nặng nề và dày, khiến chúng chậm rãi bay lên và rơi xuống trở lại vào núi lửa. Ngược lại, bộ phát hạt thứ hai phát ra các hạt trông giống như những vụ phun nhẹ, có độ nhớt thấp, khiến chúng bay lên và rơi xuống nhanh chóng.


Mỗi bộ phát hạt hoạt hình kết cấu của chúng qua 64 khung hình để mô phỏng hành vi vật lý sống động, mượt mà. Trong khi bạn có thể chỉ sử dụng một bộ phát hạt, sự lặp lại của hoạt hình sẽ trở nên rõ ràng và phá vỡ sự hòa nhập của người chơi vì họ sẽ thấy cùng một hoạt hình mỗi lần. Tuy nhiên, khi hai bộ phát hạt hoạt hình flipbooks với các thuộc tính tùy chỉnh hơi khác nhau, thì rất khó để phát hiện sự lặp lại.
Mẫu cũng cung cấp một đối tượng ParticleEmitter phát ra các hạt trông giống như các vụ phun khí để đại diện cho các vụ phun nhẹ hơn. Kỹ thuật này làm đầy không gian với chuyển động động và ẩn đi sự lặp lại của các hoạt hình flipbook. Như một lợi ích bổ sung, nếu trò chơi của bạn cũng bao gồm thác nước từ Tạo thác nước, bạn có thể tái sử dụng cùng một kết cấu hai lần cho các khu vực gameplay khác nhau, tiết kiệm bộ nhớ và cải thiện hiệu suất trên các thiết bị thấp.

Để tái tạo dung nham phun từ bề mặt của miệng hố trong tệp mẫu Volcano Island - Complete:
Chèn một phần cylinder vào thư mục Caldera, sau đó đổi tên nó thành SplashingLava.
Định vị SplashingLava sao cho nó nằm trên các gợn sóng bề mặt, sau đó thay đổi kích thước cho đến khi nó che phủ giữa miệng hố nơi bạn muốn dung nham phun. Phần này xuất hiện như thể nó đang phát sáng vì gần với nguồn sáng cục bộ của miệng hố.

Chọn SplashingLava, sau đó trong cửa sổ Properties, đặt Transparency thành 1 để làm cho hình trụ trở nên vô hình.
Chèn một ParticleEmitter vào SplashingLava, sau đó đổi tên bộ phát thành WebbySplashes.
Chọn WebbySplashes, sau đó trong cửa sổ Properties,
- Đặt Texture thành rbxassetid://17363668312 để phát ra các hạt trông giống như các vụ phun nhẹ.
- Đặt Orientation thành FacingCameraWorldUp để phát ra các hạt hướng về camera, nhưng chỉ xoay trên trục Y thế giới theo chiều dọc.
- Đặt Color thành 255, 152, 79 để nhuộm các hạt thành màu cam nhạt.
- Đặt Size thành một chuỗi số trong đó các hạt tăng kích thước trong suốt vòng đời của chúng với một khoảng biến đổi.
- Time = 0, Value = 4.31, Envelope = 0.762
- Time = 1, Value = 6.2, Envelope = 0.875

- Đặt Squash thành một chuỗi số trong đó các hạt hơi kéo dài trong suốt vòng đời của chúng với một khoảng biến đổi.
- Time = 0, Value = -0.075, Envelope = 0.263
- Time = 1, Value = -0.413, Envelope = 0.412

- Đặt ZOffset thành 1 để dịch chuyển kết cấu ra xa một chút khỏi miệng hố.
- Đặt Lifetime thành 1.5, 2 để ngẫu nhiên đặt vòng đời của mỗi hạt giữa 1.5 và 2 giây.
- Đặt Rate thành 0.37 để phát ra một hạt khoảng mỗi 3 giây.
- Đặt RotSpeed thành -20, 20 để ngẫu nhiên phát ra mỗi hạt giữa -20 và 20 độ mỗi giây.
- Đặt Speed thành 2 để phát ra mỗi hạt 2 studs mỗi giây.
- Đặt SpreadAngle thành 5, 5 để phát ra các hạt theo một góc nhỏ dọc theo trục X và Z.
- Đặt FlipbookLayout thành Grid8x8 để hoạt hình kết cấu qua một khoảng thời gian 64 khung hình.
- Đặt FlipbookMode thành Oneshot để đảm bảo rằng hoạt hình chỉ phát một lần trong suốt vòng đời của nó.
- Đặt Drag thành 0.5 để các hạt mất tốc độ với sự suy giảm theo cấp số nhân.
- Đặt LightEmission thành 0.1 để làm sáng nhẹ các hạt.
- Đặt LightInfluence thành 0.25 để giảm đáng kể mức độ ánh sáng môi trường ảnh hưởng đến màu sắc của các hạt.
Nhân đôi DenseSplashes, sau đó trong cửa sổ Properties, sửa đổi các thuộc tính sau để cung cấp sự biến đổi cho các vụ phun dung nham bổ sung.
- Đặt Name thành DenseSplashes.
- Đặt Texture thành rbxassetid://17363669906 để phát ra các hạt trông giống như các vụ phun dày đặc.
- Đặt Size thành một chuỗi số trong đó các hạt tăng kích thước trong suốt vòng đời của chúng với một khoảng biến đổi.
- Time = 0, Value = 5.75, Envelope = 0.762
- Time = 1, Value = 7.37, Envelope = 0.875

- Đặt Squash thành một chuỗi số trong đó các hạt hơi kéo dài trong suốt vòng đời của chúng với một khoảng biến đổi.
- Time = 0, Value = 0, Envelope = 0.225
- Time = 1, Value = -0.262, Envelope = 0.15

- Đặt Rate thành 0.289 để phát ra một hạt gần như mỗi phần tư giây.
Làm đầy miệng hố với các vụ phun bổ sung.
Chèn một ParticleEmitter vào SplashingLava, sau đó đổi tên bộ phát thành SplashFill.
Chọn SplashFill, sau đó trong cửa sổ Properties,
- Đặt Texture thành rbxassetid://17082061238 để phát ra các hạt trông giống như các vụ phun nhẹ hơn.
- Đặt Orientation thành FacingCameraWorldUp để phát ra các hạt hướng về camera, nhưng chỉ xoay trên trục Y thế giới theo chiều dọc.
- Đặt Color thành 255, 152, 33 để nhuộm các hạt thành màu cam.
- Đặt Size thành một chuỗi số trong đó các hạt tăng kích thước trong suốt vòng đời của chúng với một khoảng biến đổi.
- Time = 0, Value = 1.25, Envelope = 0.388
- Time = 1, Value = 6.38, Envelope = 0.563

- Đặt Transparency thành một chuỗi số trong đó các hạt bắt đầu là trong suốt, trở nên đục, sau đó lại trở nên trong suốt ở cuối vòng đời của chúng.
- 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

- Đặt ZOffset thành 1 để dịch chuyển kết cấu ra xa một chút khỏi miệng hố.
- Đặt Lifetime thành 1.5 để đặt vòng đời của mỗi hạt thành 1.5 giây.
- Đặt Rate thành 8 để phát ra một hạt mỗi 8 giây.
- Đặt Rotation thành 0, 360 để ngẫu nhiên định hướng mỗi hạt theo một nửa vòng tròn.
- Đặt RotSpeed thành -50, 50 để ngẫu nhiên phát ra mỗi hạt giữa -50 và 50 độ mỗi giây.
- Đặt Speed thành 12, 20 để ngẫu nhiên phát ra mỗi hạt giữa 12 và 20 studs mỗi giây.
- Đặt SpreadAngle thành 45, 45 để phát ra các hạt theo một góc dọc theo trục X và Z.
- Đặt Acceleration thành 0, -25, 0 để mô phỏng trọng lực và kéo các hạt trở lại xuống.
- Đặt Drag thành 1 để các hạt mất tốc độ với sự suy giảm theo cấp số nhân.
- Đặt LightEmission thành 1 để làm sáng rõ rệt các hạt.
- Đặt LightInfluence thành 0 để ngăn ánh sáng môi trường ảnh hưởng đến màu sắc của các hạt.
- Đặt Brightness thành 8 để tăng cường ánh sáng phát ra từ bộ phát.
Dòng dung nham
Một dòng dung nham là một khối dung nham phun ra và chảy ra từ miệng hố và trên bề mặt trái đất trong một vụ phun trào núi lửa. Khi dung nham nguội đi do tiếp xúc với không khí, nó đông đặc và biến thành đá rắn, tạo ra đất mới.
Để mô phỏng quy trình này, mẫu xếp chồng nhiều đối tượng Beam lên nhau với các kết cấu liền mạch và cấu hình thuộc tính mô phỏng các đặc điểm hành vi của dung nham nguội đi khi nó di chuyển xa hơn từ miệng hố:
- Lớp dưới cùng phát ra một màu phẳng chuyển từ màu ấm sang màu mát để truyền đạt rằng dung nham bắt đầu giảm nhiệt độ, chẳng hạn như từ đỏ sáng đến đỏ sẫm.
- Lớp giữa phát ra một kết cấu màu đen trông giống như lớp vỏ tối với các lỗ cho thấy dung nham đang phát sáng bên dưới.
- Lớp trên cùng phát ra cùng một kết cấu như lớp giữa với tốc độ chậm hơn, các gắn kết lật ngược, và các cấu hình thuộc tính ngược lại. Điều này đảm bảo rằng các kết cấu không bao giờ có cơ hội hoàn toàn khớp với nhau trong khi render theo cùng một hướng, điều này sẽ cho phép người chơi dễ dàng phát hiện sự lặp lại không thực tế của kết cấu.



Việc xếp chồng ba đối tượng Beam tạo ra một ảo giác về parallax để làm cho dung nham có vẻ như có chiều sâu và thể tích nơi mà dung nham chảy với các tốc độ khác nhau, mặc dù chúng chỉ là ba hình ảnh 2D. Điều này cho phép người chơi biết rằng có một cảm giác hỗn loạn trong hẻm núi, cả trên và dưới bề mặt dung nham.

Để tái tạo magma chảy từ miệng hố trong tệp mẫu Volcano Island - Complete:
Trong cửa sổ Explorer, tạo một Thư mục trong Workspace để chứa tất cả các đối tượng magma chảy, sau đó đổi tên thư mục thành FlowingMagma.
Chèn một phần khối vào thư mục FlowingMagma, sau đó đổi tên nó thành MagmaRiverBeam.
Di chuyển MagmaRiverBeam xuống một chút dưới mép của miệng hố.

Cấu hình các gắn kết cho tất cả các chùm magma chảy từ miệng hố để sử dụng để render các kết cấu của chúng.
- Chèn một gắn kết vào MagmaRiverBeam, sau đó xoay gắn kết cho đến khi hỗ trợ màu vàng chỉ về phía miệng hố.
- Chèn một gắn kết khác vào MagmaRiverBeam, định vị nó về phía nhánh trong khe nứt, sau đó xoay gắn kết cho đến khi hỗ trợ màu vàng chỉ xuống đất.

Chèn một Beam vào MagmaRiverBeam, sau đó đổi tên nó thành Magma.
Gán các gắn kết của phần cho Magma.
- Trong cửa sổ Explorer, chọn Magma.
- Trong cửa sổ Properties,
- Đặt Attachment0 thành gắn kết ở mép của miệng hố.
- Đặt Attachment1 thành gắn kết ở nhánh trong khe nứt. Chùm ánh sáng render kết cấu mặc định của nó giữa hai gắn kết.

Tùy chỉnh diện mạo trực quan của chùm ánh sáng để nó trông giống như magma chảy.
Trong cửa sổ Explorer, xác nhận rằng Magma vẫn được chọn.
Trong cửa sổ Properties,
- Đặt Width0 thành 50 để mở rộng kết cấu từ trục mà nó bắt đầu render.
- Đặt Width1 thành 50 để mở rộng kết cấu khi nó gặp nhánh trong khe nứt.
- Đặt CurveSize0 thành -50 để uốn cong kết cấu ra khỏi đáy khe nứt.
- Đặt CurveSize1 thành 5 để uốn cong kết cấu vào nhánh trong khe nứt.
- Đặt Color thành một chuỗi màu bắt đầu từ đỏ sáng và trở thành đỏ sẫm trong suốt vòng đời của chùm ánh sáng để mô phỏng magma nguội đi.
- Time = 0, RGB Value = 255, 51, 0
- Time = 0.5, RGB Value = 211, 39, 0
- Time = 1, RGB Value = 118, 24, 0

- Đặt Transparency thành một chuỗi số cho phép magma trở nên sống động hơn giữa các điểm gắn kết.
- Time = 0, Value = 1
- Time = 0.0916, Value = 0
- Time = 0.867, Value = 0
- Time = 0.941, Value = 0.725
- Time = 1, Value = 1

- Đặt LightEmission thành 1 để làm sáng rõ rệt chùm ánh sáng.
- Đặt LightInfluence thành 0 để ngăn ánh sáng môi trường ảnh hưởng đến màu sắc của chùm ánh sáng.
- Đặt Brightness thành 8 để tăng cường ánh sáng phát ra từ chùm ánh sáng.
Chèn một Beam khác vào MagmaRiverBeam, đổi tên nó thành Crust1, sau đó gán các gắn kết của phần cho Crust1 bằng cách sử dụng cùng một quy trình trong bước 6.
Tùy chỉnh diện mạo trực quan của chùm ánh sáng để nó trông giống như lớp vỏ trên dung nham.
Trong cửa sổ Explorer, xác nhận rằng Crust1 vẫn được chọn.
Trong cửa sổ Properties,
- Đặt Texture thành rbxassetid://17023930265 để render một kết cấu mới trông giống như lớp vỏ chảy.
- Đặt Width0 thành 35 để mở rộng kết cấu từ trục mà nó bắt đầu render.
- Đặt Width1 thành 25 để mở rộng kết cấu khi nó gặp nhánh trong khe nứt.
- Đặt TextureSpeed thành 0.01 để làm chậm đáng kể dòng chảy của kết cấu.
- Đặt TextureLength thành 3 để kéo dài một chút chiều dài của kết cấu.
- Đặt CurveSize0 thành -50 để uốn cong kết cấu ra khỏi đáy khe nứt.
- Đặt CurveSize1 thành 5 để uốn cong kết cấu vào nhánh trong khe nứt.
- Đặt Color thành 83, 83, 83 để nhuộm chùm ánh sáng thành màu xám.
- Đặt Transparency thành một chuỗi số cho phép lớp vỏ trở nên sống động hơn giữa các điểm gắn kết.
- Time = 0, Value = 1
- Time = 0.22, Value = 0
- Time = 0.85, Value = 0
- Time = 1, Value = 1

- Đặt ZOffset thành 1 để dịch chuyển kết cấu ra xa một chút khỏi miệng hố.
Nhân đôi Crust1, đổi tên nó thành Crust2, sau đó trong cửa sổ Properties,
- Đặt Attachment0 thành gắn kết ở nhánh trong khe nứt.
- Đặt Attachment1 thành gắn kết ở mép của miệng hố.
- Đặt Width0 thành 25 để mở rộng kết cấu từ trục mà nó bắt đầu render.
- Đặt Width1 thành 35 để mở rộng kết cấu khi nó gặp nhánh trong khe nứt.
- Đặt TextureSpeed thành -0.008 để làm chậm đáng kể dòng chảy của kết cấu.
- Đặt TextureLength thành 2 để làm giảm một chút chiều dài của kết cấu.
- Đặt CurveSize0 thành -5 để uốn cong kết cấu ra khỏi đáy khe nứt.
- Đặt CurveSize1 thành 50 để uốn cong kết cấu vào nhánh trong khe nứt.
- Đặt ZOffset thành 2 để dịch chuyển kết cấu ra xa các lớp vỏ khác.
1.
TÙY CHỌNSử dụng quy trình này, tạo thêm nhiều chùm xung quanh cái nĩa trong khe để phân tán magma. Hãy chắc chắn điều chỉnh các thuộc tính để làm chậm các kết cấu và mô phỏng magma có màu tối hơn khi nó nguội đi.
Chùm khói
Một chùm khói từ miệng núi lửa phát ra khí nóng áp suất, hơi nước và tro núi lửa vào bầu khí quyển. Hỗn hợp phát thải núi lửa này có thể nhìn thấy từ xa trong thế giới thực, vì vậy thiết kế núi lửa thường bao gồm các chùm khói lớn để trở thành một điểm nhấn quan trọng trong không gian 3D.
Thay vì phát ra khói dày, pyroclastic mà người ta thấy ngay sau một vụ phun trào mạnh, mẫu này sử dụng một đối tượng ParticleEmitter để phát ra các hạt trông giống như hơi khói mỏng mà thay đổi màu sắc khi chúng bay lên. Kỹ thuật này đạt được hai mục tiêu:
- Nó phá vỡ hình dáng của miệng núi lửa phía sau, tạo ra nhiều sự quan tâm về mặt hình ảnh xung quanh vụ phun trào núi lửa.
- Nó cho phép khói trông như thể nó nhận ánh sáng từ môi trường trong khi vẫn phát ra một sự hiện diện tối tăm như thể khói đang đốt cháy các tạp chất vào không khí trước khi chuyển sang màu xám như bầu trời đêm.

Để tái tạo chùm khói từ miệng núi lửa trong mẫu Đảo Núi Lửa - Hoàn Thành:
Chèn một phần khối vào thư mục Miệng Núi Lửa, sau đó đổi tên thành ChùmKhói.
Đặt ChùmKhói dưới miệng núi lửa, sau đó điều chỉnh kích thước cho phù hợp với diện tích bề mặt của miệng núi lửa.

Chèn một ParticleEmitter vào ChùmKhói, sau đó đổi tên bộ phát thành Khói.
Chọn Khói, sau đó trong cửa sổ Thuộc tính,
- Đặt Kết cấu thành rbxassetid://16830673704 để hiển thị các hạt trông giống như khói dày.
- Đặt Màu thành một chuỗi màu trong đó các hạt mô phỏng ánh sáng trong môi trường từ miệng núi lửa lên bầu trời bằng cách bắt đầu từ màu đen, trở thành màu đào nhạt, sau đó là màu xám.
- Thời gian = 0, Giá trị RGB = 0, 0, 0
- Thời gian = 0.374, Giá trị RGB = 195, 104, 76
- Thời gian = 0.469, Giá trị RGB = 225, 121, 86
- Thời gian = 0.709, Giá trị RGB = 111, 111, 111
- Thời gian = 1, Giá trị RGB = 113, 113, 113

- Đặt Độ trong suốt thành một chuỗi số trong đó các hạt bắt đầu trong suốt, trở nên hoàn toàn đục sớm trong vòng đời của chúng, sau đó lại trở nên trong suốt gần cuối vòng đời của chúng.
- Thời gian = 0, Giá trị = 1
- Thời gian = 0.0622, Giá trị = 0
- Thời gian = 0.845, Giá trị = 0
- Thời gian = 0, Giá trị = 1

- Đặt ZOffset thành -10 để điều chỉnh kết cấu gần hơn với đỉnh của miệng núi lửa.
- Đặt Thời gian sống thành 50, 60 để ngẫu nhiên đặt thời gian sống của mỗi hạt giữa 50 và 60 giây.
- Đặt Tốc độ thành 0.3 để phát ra một hạt khoảng mỗi 3 giây.
- Đặt Góc quay thành -360, 360 để ngẫu nhiên định hướng mỗi hạt trong một vòng tròn.
- Đặt Tốc độ quay thành -5, 5 để ngẫu nhiên phát ra mỗi hạt giữa -5 và 5 độ mỗi giây.
- Đặt Góc phân tán thành 5, 5 để phát ra các hạt trong một góc nhỏ dọc theo trục X và Z.
- Đặt Gia tốc thành 0, 7, 0 để mô phỏng lực hướng lên và kéo các hạt lên bầu trời.
- Đặt Kéo thành 1 để các hạt mất tốc độ với sự suy giảm theo cấp số nhân.
- Bật Gió Ảnh hưởng đến Kéo để gió trong môi trường đẩy khói xung quanh.
- Đặt Phát sáng thành 0.1 để làm sáng nhẹ các hạt.
- Đặt Ảnh hưởng của Ánh sáng thành 0.06 để giảm đáng kể mức độ ánh sáng môi trường ảnh hưởng đến màu sắc của các hạt.
Trong Command Bar, nhập chuỗi sau để tăng kích thước mỗi hạt từ 40 đến 100 studs trong suốt vòng đời của chúng với một khoảng biến đổi nhỏ:
workspace.Caldera.ChùmKhói.Khói.KíchThước = NumberSequence.new{NumberSequenceKeypoint.new(0,40,5), NumberSequenceKeypoint.new(1,100,15)}