ภูเขาไฟคือหลุมในเปลือกโลกที่พ่นลาวาและควันออกมาเนื่องจากแรงดันภายในจากแมกม่าและก๊าซที่ละลาย เกมมักจะมีภูเขาไฟอยู่ในพื้นที่การเล่นที่ท้าทาย เช่น สถานที่ที่ผู้เล่นต้องรักษาสมดุลระหว่างอันตรายจากลาวาและอันตรายจากหินหลอมเหลวกับรางวัลจากทรัพยากรที่มีค่า สังเวียนการต่อสู้กับบอส หรือสภาพแวดล้อมที่เปลี่ยนแปลงได้ตามการระเบิดของภูเขาไฟที่เกิดขึ้นเป็นระยะ
โดยใช้ไฟล์ Volcano Island - Start .rbxl เป็นจุดเริ่มต้นและ Volcano Island - Complete เป็นข้อมูลอ้างอิง บทช่วยสอนนี้จะแสดงให้คุณเห็นว่าคุณจะเปลี่ยนสภาพแวดล้อมให้เป็นการระเบิดของภูเขาไฟด้วยแสงและวัตถุ VFX ที่กำหนดเองซึ่งแสดงถึงพฤติกรรมทางกายภาพในโลกจริง รวมถึงคำแนะนำเกี่ยวกับ:
- การแบ่งเนื้อหาที่อ้างอิงออกเป็นส่วนประกอบแต่ละส่วนที่มีลักษณะทางภาพและพฤติกรรมที่แตกต่างกัน
- การกำหนดคลื่นผิวเพื่อเลียนแบบของเหลวร้อนที่ลอยขึ้นสู่ผิวและรบกวนผิวของแคลเดอรา
- การกำหนดเถ้าถ่านเพื่อเลียนแบบชิ้นส่วนของหินหลอมเหลวที่เย็นตัวอย่างรวดเร็วเมื่อพวกมันลอยขึ้นสู่ชั้นบรรยากาศ
- การกำหนดลาวาที่กระเด็นและไหลออกจากแคลเดอราเพื่อเลียนแบบสถานะความหนืดของลาวาหลายประเภท
- การกำหนดพวยควันเพื่อเลียนแบบสิ่งสกปรกที่รุนแรงลอยขึ้นสู่ท้องฟ้าที่ดึงดูดความสนใจของผู้เล่น


แบ่งเนื้อหาอ้างอิง
ในการสร้างภูเขาไฟที่เชื่อถือได้ สิ่งสำคัญคือต้องอ้างอิงการระเบิดของภูเขาไฟในโลกจริงในกระบวนการออกแบบ เพราะมันช่วยให้คุณแบ่งเนื้อหาที่เกี่ยวข้องออกเป็นส่วนประกอบแต่ละส่วนที่มีลักษณะทางภาพและพฤติกรรมที่แตกต่างกัน ตัวอย่างเช่น เกมตัวอย่าง Volcano Island - Complete อ้างอิงการระเบิดของภูเขาไฟในไอซ์แลนด์เพื่อแจ้งการตัดสินใจเกี่ยวกับพื้นผิวและการออกแบบ VFX ทั้งหมดที่เกี่ยวข้องกับแคลเดอราและภูมิประเทศโดยรอบ

การแบ่งภูเขาไฟที่กำลังระเบิดออกเป็นส่วนประกอบแต่ละส่วนจะช่วยให้คุณวางแผนวิธีการใช้วัตถุ VFX ที่แตกต่างกันเพื่อเลียนแบบคู่หูในโลกจริงของพวกมัน เพื่อแสดงให้เห็น บทช่วยสอนนี้จะแบ่งภูเขาไฟตัวอย่างออกเป็นห้าส่วนประกอบที่ไม่ซ้ำกัน:
- คลื่นผิว – คลื่นเล็ก ๆ ของลาวาบนผิวของแคลเดอรา
- เถ้าถ่าน – ชิ้นส่วนเล็ก ๆ ที่มีน้ำหนักของหินหลอมเหลวที่ลอยขึ้นสู่ท้องฟ้าจากแคลเดอรา
- ลาวากระเด็น – หินหลอมเหลวที่บางซึ่งพุ่งออกจากแคลเดอราเนื่องจากแรงดันภายในภูเขาไฟ
- การไหลของลาวา – หินหลอมเหลวที่มีความหนืดซึ่งไหลออกจากแคลเดอรา
- พวยควัน – ก๊าซที่อบอุ่นและพวยพุ่งขึ้นสู่ท้องฟ้าจากแคลเดอรา


ส่วนถัดไปจะให้การวิเคราะห์เชิงลึกเกี่ยวกับการตัดสินใจด้านการออกแบบและเทคนิคที่คุณสามารถใช้เพื่อสร้างแต่ละส่วนประกอบเหล่านี้ เมื่อคุณตรวจสอบการตัดสินใจเหล่านี้และทดลองกับแสงต่าง ๆ คุณจะได้เรียนรู้วิธีการใช้แสงและ VFX เพื่อแก้ไขความต้องการด้านสิ่งแวดล้อมที่ไม่เหมือนใครสำหรับเกมของคุณเอง
กำหนดแสง
เพื่อทำให้ส่วนประกอบของสิ่งแวดล้อมเป็นจุดสนใจภายในเกมของคุณ สิ่งสำคัญคือต้องเพิ่มความแตกต่างให้กับมันจากสิ่งแวดล้อมโดยรวมเพื่อให้มันโดดเด่นเป็นสิ่งที่ผู้เล่นควรสำรวจ ตัวอย่างเช่น เพื่อดึงดูดผู้เล่นเข้าสู่แคลเดอรา คุณสามารถกำหนดแหล่งแสงของคุณให้ลาวาของภูเขาไฟดูเหมือนจะเปล่งประกายเป็นแหล่งแสงเดียวในสภาพแวดล้อมที่มืด
Studio มีแหล่งแสงระดับสูงสองประเภทที่คุณสามารถใช้สำหรับเทคนิคนี้:
- แสงทั่วโลก - สร้างแสงสำหรับทั้งสภาพแวดล้อมกลางแจ้ง
- แสงท้องถิ่น - สร้างแสงรอบ ๆ ตำแหน่งที่คุณวางไว้ภายในเกมของคุณ
ส่วนนี้ของบทช่วยสอนจะสอนคุณเกี่ยวกับการใช้แหล่งแสงทั้งสองประเภทเพื่อทำให้การระเบิดของภูเขาไฟของคุณเป็นจุดสนใจที่สำคัญที่สุดในฉากของคุณ รวมถึงสร้างผลกระทบที่น่าทึ่งสำหรับการเล่าเรื่องในสิ่งแวดล้อมของคุณ เพื่อแสดงให้เห็น ให้ตรวจสอบว่าภูเขาไฟสุดท้ายที่ไม่มีแสงที่กำหนดเองรู้สึกเหมือนอันตรายที่ไม่เด่นในสภาพแวดล้อมที่สดใส ในขณะที่ภูเขาไฟที่มีแสงที่กำหนดเองรู้สึกเหมือนเป็นอันตรายที่มีอยู่ในสภาพแวดล้อมที่มืดและเศร้า


แสงท้องถิ่น
แสงท้องถิ่นคือแสงจากแหล่ง แสงท้องถิ่น ในเกมของคุณ เช่น วัตถุ SpotLight, SurfaceLight, และ PointLight แสงท้องถิ่นมีความสำคัญในการเพิ่มให้กับภูเขาไฟของคุณ เพราะในขณะที่คุณสามารถใช้ความสว่างกับพื้นผิว ParticleEmitter และ Beam ของคุณได้ แต่พวกมันไม่สามารถเติมแคนยอนด้วยแสงได้เพียงพอเพื่อเลียนแบบวิธีที่แคลเดอราและลาวาที่ไหลจะส่องสว่างสิ่งแวดล้อมในโลกจริง


เป็นประโยชน์ในการกำหนดแสงท้องถิ่นของคุณก่อนแสงทั่วโลกสำหรับบทช่วยสอนนี้ เพราะหากไม่มีแหล่งแสงท้องถิ่น คุณจะไม่สามารถมองเห็นพื้นที่ 3D เพื่อกำหนดวัตถุ VFX ของคุณได้ อย่างไรก็ตาม การทำงานทั่วไปมักต้องการให้คุณทำงานทั้งแสงท้องถิ่นและแสงทั่วโลกพร้อมกันเพื่อดูผลกระทบของการเปลี่ยนแปลงของคุณต่อวัตถุ VFX ดังนั้นจึงเป็นสิ่งสำคัญที่จะต้องยืดหยุ่นต่อความต้องการในการออกแบบของเกมของคุณเอง
ในการสร้างแสงท้องถิ่นสำหรับภูเขาไฟในไฟล์ตัวอย่าง Volcano Island - Complete:
ในหน้าต่าง Explorer สร้าง Folder ใน Workspace เพื่อเก็บวัตถุแหล่งแสงท้องถิ่นทั้งหมด จากนั้นเปลี่ยนชื่อโฟลเดอร์เป็น LocalLighting.
แทรกชิ้นส่วน block สามชิ้นลงในโฟลเดอร์ LocalLighting จากนั้นเปลี่ยนชื่อเป็น LightCaldera, LightMagma, และ LightOutflow ตามลำดับ
ย้ายชิ้นส่วนไปยังตำแหน่งที่สามารถส่องสว่างภูเขาไฟทั้งหมดได้
- ย้าย LightCaldera ไปยังกลางพื้นที่ระหว่างแคลเดอราและหน้าผา
- ย้าย LightMagma ไปยังกลางรอยแยกระหว่างแคลเดอราและการไหลของแมกม่า
- ย้าย LightOutflow ไปยังตำแหน่งที่สูงกว่าที่การไหลแยกออกเป็นสองสาย

แทรก Pointlight ลงในแต่ละชิ้นส่วน

เลือก PointLight ที่เป็นลูกของ LightCaldera จากนั้นในหน้าต่าง Properties,
- ตั้งค่า Brightness เป็น 15 เพื่อทำให้แหล่งแสงสว่างขึ้นมาก
- ตั้งค่า Color เป็น 255, 85, 0 เพื่อทำให้แสงมีสีส้มเข้ม
- ตั้งค่า Range เป็น 60 เพื่อส่องสว่างพื้นที่แคลเดอราให้ทั่วถึง

เลือก PointLight ที่เป็นลูกของ LightMagma และ LightOutflow จากนั้นในหน้าต่าง Properties,
- ตั้งค่า Brightness เป็น 2 เพื่อทำให้แหล่งแสงสว่างขึ้นเล็กน้อย
- ตั้งค่า Color เป็น 255, 81, 0 เพื่อทำให้แสงมีสีส้ม
- ตั้งค่า Range เป็น 50 เพื่อส่องสว่างพื้นที่รอยแยกและการไหล

ในหน้าต่าง Explorer เลือกชิ้นส่วนบล็อกทั้งหมดในโฟลเดอร์ LocalLighting จากนั้นในหน้าต่าง Properties ตั้งค่า Transparency เป็น 1 เพื่อทำให้บล็อกมองไม่เห็น

แสงทั่วโลก
แสงทั่วโลกคือแสงจากดวงอาทิตย์หรือดวงจันทร์ในเกม โดยการปรับค่าคุณสมบัติเริ่มต้นบางอย่างในบริการ Lighting และวัตถุเอฟเฟกต์การประมวลผลหลังที่เป็นลูก คุณสามารถเปลี่ยนแปลงวิธีที่แสงทั่วโลกปรากฏต่อผู้เล่นได้อย่างมาก รวมถึงวิธีที่มันมีปฏิสัมพันธ์กับวัตถุอื่น ๆ ที่คุณวางในเกม รวมถึงพื้นผิว ParticleEmitter และ Beam
ตัวอย่างเช่น เพื่อให้แน่ใจว่าพื้นผิว Beam ที่ผลิตเอฟเฟกต์ลาวาไหลในภายหลังในบทช่วยสอนสามารถเปล่งแสงได้ คุณต้องกำหนดคุณสมบัติของ BloomEffect เพื่อทำให้แสงมีความเข้มข้นมากขึ้นเหมือนกล้องที่มองไปที่แสงสว่าง นอกจากนี้ เพื่อจำลองสีที่สมจริงมากขึ้นในเวลากลางคืน คุณต้องปรับคุณสมบัติของเอฟเฟกต์เพื่อทำให้สีในสิ่งแวดล้อมมีความอิ่มตัวน้อยลง


ในการสร้างแสงทั่วโลกในไฟล์ตัวอย่าง Volcano Island - Complete:
ในหน้าต่าง Explorer เลือกบริการ Lighting จากนั้นในหน้าต่าง Properties,
- ตั้งค่า Ambient เป็น 133, 152, 176 เพื่อกำหนดสีเทาอ่อนทั่วทั้งสภาพแวดล้อมกลางแจ้ง
- ตั้งค่า Brightness เป็น 2 เพื่อทำให้แหล่งแสงทั่วโลกสว่างน้อยลงเล็กน้อย
- ตั้งค่า ColorShift_Top เป็น 207, 178, 72 เพื่อกำหนดสีเหลืองให้กับแสงที่สะท้อนจากพื้นผิวที่หันหน้าไปทางแหล่งแสงทั่วโลก
- ตั้งค่า LightingStyle เป็น Realistic เพื่อใช้เทคโนโลยีแสงที่ทันสมัยที่สุดของ Roblox
- ตั้งค่า ClockTime เป็น 4.3 เพื่อกำหนดเวลาในวันประมาณสี่โมงเช้าครึ่ง
- ตั้งค่า GeographicLatitude เป็น 199 เพื่อปรับตำแหน่งของดวงจันทร์
- ตั้งค่า ExposureCompensation เป็น -1 เพื่อเปิดเผยสิ่งแวดล้อมให้มีการเปิดเผยเพียงครึ่งเดียวจากดวงจันทร์

ในหน้าต่าง Explorer เลือก Bloom ที่เป็นลูกของบริการ Lighting จากนั้นในหน้าต่าง Properties,
- ตั้งค่า Intensity เป็น 0.75 เพื่อทำให้สีทั้งหมดในสิ่งแวดล้อมมีความเข้มข้นน้อยลงเล็กน้อย
- ตั้งค่า Size เป็น 80 เพื่อสร้างเอฟเฟกต์บลูมที่กว้างขึ้น
- ตั้งค่า Threshold เป็น 0.85 เพื่อให้สีในสิ่งแวดล้อมมีโอกาสเปล่งแสงมากขึ้น

ในหน้าต่าง Explorer แทรกวัตถุ ColorCorrection ลงในบริการ Lighting จากนั้นในหน้าต่าง Properties,
- ตั้งค่า Brightness เป็น 0.017 เพื่อปรับสีของพิกเซลของคุณเล็กน้อย
- ตั้งค่า Contrast เป็น 0.25 เพื่อสร้างความแตกต่างที่ชัดเจนระหว่างสีสว่างและมืดในสิ่งแวดล้อม
- ตั้งค่า Saturation เป็น -0.15 เพื่อทำให้สีในสิ่งแวดล้อมมีความอิ่มตัวน้อยลง
- ตั้งค่า TintColor เป็น 255, 214, 143 เพื่อทำให้พิกเซลมีสีเหลืองอ่อน

- OPTIONALให้แสงอ้อมด้วยเมฆในท้องฟ้า
- ในหน้าต่าง Explorer แทรกวัตถุ Clouds ลงในบริการ Terrain
- เลือกวัตถุ Clouds จากนั้นในหน้าต่าง Properties,
- ตั้งค่า Cover เป็น 1 เพื่อให้มีเมฆปกคลุมท้องฟ้าเต็มที่
- ตั้งค่า Density เป็น 0.08 เพื่อทำให้การปกคลุมของเมฆมีความหนาน้อยลง
- ตั้งค่า Color เป็น 136, 143, 152 เพื่อกำหนดสีเทาอ่อนให้กับการปกคลุมของเมฆ

กำหนดภูเขาไฟ
ตอนนี้การกำหนดแสงท้องถิ่นและแสงทั่วโลกของคุณเสร็จสิ้นแล้ว ถึงเวลาที่จะกำหนดวัตถุ VFX ทั้งหมดที่เกี่ยวข้องกับภูเขาไฟจริงและภูมิประเทศโดยรอบ ขณะที่คุณทำตามคำแนะนำเหล่านี้ที่สร้างสภาพแวดล้อมสุดท้ายในไฟล์ตัวอย่าง Volcano Island .rbxl สังเกตว่าทุกขั้นตอนทำงานร่วมกันเพื่อเพิ่มลักษณะ การเคลื่อนไหว และการส่องสว่างให้กับสิ่งแวดล้อม
คลื่นผิว
คลื่นผิว คือคลื่นลาวาเล็ก ๆ ที่ไหลข้ามผิวของแคลเดอราเนื่องจากแมกม่าและก๊าซที่มีแรงดันสูงเคลื่อนที่ขึ้นมาจากใต้เปลือกโลก ปรากฏการณ์ทางภาพนี้สื่อถึงกระบวนการทางกายภาพในโลกจริงของการพาความร้อน หรือการเคลื่อนไหวภายในของของเหลวเมื่อของเหลวที่ร้อนกว่าลอยขึ้นสู่ผิว และมันเพิ่มความสมจริงให้กับฉากของคุณ
คลื่นผิวให้ข้อมูลที่มีค่าแก่ผู้เล่นเกี่ยวกับสถานะของการระเบิดของภูเขาไฟ ตัวอย่างเช่น หากแมกม่าและก๊าซเคลื่อนที่ขึ้นมาด้วยแรงพอที่จะรบกวนสถานะของลาวาบนยอดแคลเดอราและทำให้มันหมุนวน ผู้เล่นสามารถสรุปได้ว่าภูเขาไฟกำลังระเบิดด้วยแมกม่าที่เดือด ดังนั้นพวกเขาควรระมัดระวังรอบ ๆ พื้นที่การเล่นนี้

เพื่อแสดงกระบวนการนี้ ตัวอย่างใช้วัตถุ ParticleEmitter ที่อยู่ต่ำกว่าฐานของแคลเดอราเพื่อปล่อยอนุภาคที่แบนและสว่างซึ่งขยายและหดตัวช้า ๆ บนพื้นหลังที่มืด สิ่งนี้ช่วยให้อนุภาคเลียนแบบพฤติกรรมของลาวาที่หมุนวนอย่างราบรื่นและต่อเนื่องในลักษณะที่คล้ายกับวิธีที่องค์ประกอบเคลื่อนที่ในธรรมชาติ

ในการสร้างคลื่นผิวบนยอดแคลเดอราในไฟล์ตัวอย่าง Volcano Island - Complete:
ในหน้าต่าง Explorer สร้าง Folder ใน Workspace เพื่อเก็บวัตถุแคลเดอราทั้งหมด จากนั้นเปลี่ยนชื่อโฟลเดอร์เป็น Caldera.
สร้างพื้นหลังเพื่อให้มีพื้นหลังที่มีความแตกต่างสูงสำหรับคลื่นผิว
แทรกชิ้นส่วน block ลงในโฟลเดอร์ Caldera จากนั้นเปลี่ยนชื่อเป็น Backdrop.
วางตำแหน่งและปรับขนาด Backdrop ให้เกินพื้นที่ผิวทั้งหมดของแคลเดอรา ชิ้นส่วนนี้ดูเหมือนจะเปล่งแสงเพราะอยู่ใกล้กับแหล่งแสงท้องถิ่นของแคลเดอรา

เลือก Backdrop จากนั้นในหน้าต่าง Properties,
ตั้งค่า Color เป็น 0, 0, 0 เพื่อทำให้บล็อกเป็นสีดำ
ตั้งค่า Material เป็น Foil เพื่อให้พื้นผิวมีลักษณะ

สร้างเอฟเฟกต์คลื่น
- ทำสำเนา Backdrop เปลี่ยนชื่อเป็น MagmaRipples จากนั้นปรับขนาดให้เล็กลงเล็กน้อยให้พอดีกับพื้นที่ผิวของแคลเดอรา
- เลือก MagmaRipples จากนั้นในหน้าต่าง Properties ตั้งค่า Transparency เป็น 1 เพื่อทำให้บล็อกมองไม่เห็น
- แทรก ParticleEmitter ลงใน MagmaRipples จากนั้นเปลี่ยนชื่ออีมิตเตอร์เป็น Ripples.
- เลือก Ripples จากนั้นในหน้าต่าง Properties,
ตั้งค่า Texture เป็น rbxassetid://16829556885 เพื่อสร้างอนุภาคที่ดูเหมือนคลื่นฟอง
ตั้งค่า Orientation เป็น VelocityPerpendicular เพื่อปล่อยอนุภาคในแนวตั้งฉากกับทิศทางการเคลื่อนที่ของพวกมัน
ตั้งค่า Color เป็นลำดับสีที่อนุภาคมีสีน้ำตาล เปลี่ยนเป็นสีแดงสด จากนั้นเปลี่ยนเป็นสีแดงเข้ม
- คลิกที่คุณสมบัติ Color จากนั้นคลิกที่ปุ่ม ⋯ จะมีป๊อปอัพลำดับสีแสดงขึ้น

แต่ละสามเหลี่ยมบนแกนล่างของลำดับสีคือ keypoint ที่กำหนดค่าของสีในจุดนั้นของอายุของอนุภาค
- ตั้งค่าคุณสมบัติเวลาและค่าต่อไปนี้ในลำดับสี:
- Time = 0, RGB Value = 130, 53, 2
- Time = 0.5, RGB Value = 224, 37, 0
- Time = 1, RGB Value = 147, 5, 0

ตั้งค่า Size เป็นลำดับหมายเลขที่อนุภาคเพิ่มขนาดขึ้นในช่วงกลางของอายุของพวกมันก่อนที่จะกลับไปที่ขนาดเดิมด้วยช่วงเล็กน้อยของความแปรปรวน
- คลิกที่คุณสมบัติ Size จากนั้นคลิกที่ปุ่ม ⋯ จะมีป๊อปอัพลำดับหมายเลขแสดงขึ้น โดยค่าเริ่มต้น กราฟจะเป็นเส้นตรงและภาพจะมีขนาดเท่าเดิมจากซ้ายไปขวา

แต่ละสี่เหลี่ยมที่จุดเริ่มต้นและจุดสิ้นสุดของลำดับหมายเลขคือ keypoint ที่กำหนดค่าของขนาดในจุดนั้นของพื้นผิวจากซ้ายไปขวา
ตั้งค่าคุณสมบัติเวลาและค่าต่อไปนี้ในลำดับหมายเลข:
- 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

ตั้งค่า Transparency เป็นลำดับหมายเลขที่อนุภาคเริ่มต้นเป็นโปร่งใส เปลี่ยนเป็นทึบมากขึ้นในช่วงกลางของอายุของพวกมัน จากนั้นกลับมาโปร่งใสอีกครั้งในตอนท้ายของอายุของพวกมัน
คลิกที่คุณสมบัติ Transparency จากนั้นคลิกที่ปุ่ม ⋯
ตั้งค่าคุณสมบัติเวลาและค่าต่อไปนี้ในลำดับหมายเลข:
- 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 = 1, Value = 1, Envelope = 0

ตั้งค่า ZOffset เป็น -2 เพื่อเลื่อนพื้นผิวให้ห่างจากแคลเดอราเล็กน้อย
ตั้งค่า Lifetime เป็น 5, 8 เพื่อกำหนดอายุของอนุภาคแต่ละตัวแบบสุ่มระหว่าง 5 ถึง 8 วินาที
ตั้งค่า Rate เป็น 12 เพื่อปล่อยอนุภาค 12 ตัวต่อวินาที
ตั้งค่า Rotation เป็น -360, 360 เพื่อให้อนุภาคแต่ละตัวมีการหมุนแบบสุ่มในวงกลม
ตั้งค่า Speed เป็น 0.01 เพื่อปล่อยอนุภาคแต่ละตัวที่หนึ่งในสิบของ stud ต่อวินาที
ตั้งค่า LightEmission เป็น 1 เพื่อทำให้อนุภาคสว่างขึ้นอย่างมีนัยสำคัญ
ตั้งค่า LightInfluence เป็น 0 เพื่อป้องกันไม่ให้แสงในสิ่งแวดล้อมมีผลต่อสีของอนุภาค
ตั้งค่า Brightness เป็น 15 เพื่อปรับขนาดแสงที่ปล่อยออกจากอีมิตเตอร์
เถ้าถ่าน
เถ้าถ่าน คือชิ้นส่วนเล็ก ๆ ที่มีน้ำหนักของหินหลอมเหลวที่พุ่งออกจากแคลเดอรา ปล่อยความร้อนอย่างรวดเร็วเมื่อพวกมันลอยขึ้นสู่ชั้นบรรยากาศ คล้ายกับคลื่นผิว เถ้าถ่านเผยให้เห็นว่าแรงดันภายในใต้เปลือกโลกกำลังดันขึ้น ทำให้ส่วนประกอบร้อน ๆ แตกออกจากแรงดันของลาวา
ตัวอย่างจำลองกระบวนการนี้โดยใช้วัตถุ ParticleEmitter เพื่อปล่อยอนุภาคที่มีการเบลอการเคลื่อนไหวที่ถูกบันทึกไว้ในพื้นผิว ขณะที่อนุภาคลอยขึ้นและถึงจุดสิ้นสุดของอายุของพวกมัน อีมิตเตอร์จะบีบอนุภาคให้มีอัตราส่วน 1:1 เพื่อปรับรูปอนุภาคให้เป็นวงกลม เทคนิคนี้ช่วยให้อนุภาคดูเหมือนกำลังเคลื่อนที่อย่างรวดเร็วเมื่อออกจากแคลเดอรา จากนั้นช้าลงเมื่อพวกมันกระจายออกไปในท้องฟ้า

นอกจากนี้ ขณะที่อนุภาคลอยขึ้น พวกมันจะเปลี่ยนสี ความทึบ และขนาดเพื่อสะท้อนอุณหภูมิที่เปลี่ยนแปลงของพวกมัน ตัวอย่างเช่น พวกมันเริ่มต้นอายุเป็นอนุภาคสีน้ำตาลขนาดใหญ่ แต่เปลี่ยนเป็นอนุภาคสีส้มเล็ก ๆ จากนั้นเป็นอนุภาคสีแดงเข้ม เทคนิคนี้ยังมีข้อดีในการสะท้อนแสงในหุบเขาอย่างละเอียด เพิ่มความมีส่วนร่วมของผู้เล่นในสิ่งแวดล้อม
ในการสร้างเถ้าถ่านที่เปล่งแสงจากผิวของแคลเดอราในไฟล์ตัวอย่าง Volcano Island - Complete:
แทรกชิ้นส่วน cylinder ลงในโฟลเดอร์ Caldera จากนั้นเปลี่ยนชื่อเป็น GlowingEmbers.
วาง GlowingEmbers ให้อยู่บนคลื่นผิว จากนั้นปรับขนาดจนเต็มพื้นที่ภายในแคลเดอรา ชิ้นส่วนนี้ดูเหมือนจะเปล่งแสงเพราะอยู่ใกล้กับแหล่งแสงท้องถิ่นของแคลเดอรา

เลือก GlowingEmbers จากนั้นในหน้าต่าง Properties ตั้งค่า Transparency เป็น 1 เพื่อทำให้ทรงกระบอกมองไม่เห็น
แทรก ParticleEmitter ลงใน GlowingEmbers จากนั้นเปลี่ยนชื่ออีมิตเตอร์เป็น Embers.
เลือก Embers จากนั้นในหน้าต่าง Properties,
- ตั้งค่า Texture เป็น rbxassetid://17581858560 เพื่อสร้างอนุภาคที่ดูเหมือนวงรีที่ยาวในแนวนอนและแนวตั้ง
- ตั้งค่า Orientation เป็น VelocityParallel เพื่อปล่อยอนุภาคขนานกับทิศทางการเคลื่อนที่ของพวกมัน
- ตั้งค่า Color เป็นลำดับสีที่อนุภาคมีสีน้ำตาล เปลี่ยนเป็นสีส้ม จากนั้นเปลี่ยนเป็นสีแดงเข้ม
- Time = 0, RGB Value = 130, 53, 2
- Time = 0.5, RGB Value = 224, 82, 0
- Time = 1, RGB Value = 147, 5, 0

- ตั้งค่า Size เป็นลำดับหมายเลขที่อนุภาคลดขนาดลงอย่างช้า ๆ ตลอดอายุของพวกมัน
- Time = 0, Value = 0.313, Envelope = 0.1
- Time = 1, Value = 0, Envelope = 0

- ตั้งค่า Squash เป็นลำดับหมายเลขที่อนุภาคยืดออกเล็กน้อยในช่วงกลางของอายุของพวกมัน
- Time = 0, Value = -3, Envelope = 0
- Time = 0.323, Value = -0.188, Envelope = 0
- Time = 1, Value = -0.5, Envelope = 0

- ตั้งค่า Transparency เป็นลำดับหมายเลขที่อนุภาคเปลี่ยนความทึบแบบสุ่มเพื่อจำลองเถ้าถ่านที่เปล่งแสงขณะที่พวกมันลอยขึ้น ค่าจริงไม่สำคัญ เพียงแค่พวกมันเปลี่ยนแปลงมากในระหว่างอายุของพวกมัน

- ตั้งค่า ZOffset เป็น 1 เพื่อเลื่อนพื้นผิวให้ห่างจากแคลเดอราเล็กน้อย
- ตั้งค่า Lifetime เป็น 1, 5 เพื่อกำหนดอายุของอนุภาคแต่ละตัวแบบสุ่มระหว่าง 1 ถึง 5 วินาที
- ตั้งค่า Speed เป็น 5, 8 เพื่อปล่อยอนุภาคแต่ละตัวระหว่าง 5 ถึง 8 studs ต่อวินาที
- ตั้งค่า SpreadAngle เป็น 180, 180 เพื่อปล่อยอนุภาคในมุมตามแกน X และ Z
- ตั้งค่า Acceleration เป็น 0, 10, 0 เพื่อจำลองแรงดันขึ้นและดึงอนุภาคขึ้นสู่ท้องฟ้า
- ตั้งค่า Drag เป็น 0.8 เพื่อให้อนุภาคสูญเสียความเร็วด้วยการลดลงแบบเอ็กซ์โพเนนเชียล
- ตั้งค่า LightEmission เป็น 1 เพื่อทำให้อนุภาคสว่างขึ้นอย่างมีนัยสำคัญ
- ตั้งค่า LightInfluence เป็น 0 เพื่อป้องกันไม่ให้แสงในสิ่งแวดล้อมมีผลต่อสีของอนุภาค
- ตั้งค่า Brightness เป็น 20 เพื่อปรับขนาดแสงที่ปล่อยออกจากอีมิตเตอร์
ลาวากระเด็น
ลาวากระเด็น คือการระเบิดของหินหลอมเหลวที่บางซึ่งพุ่งขึ้นจากภูเขาไฟเนื่องจากแรงดันภายในแมกม่าและก๊าซที่มีแรงดันสูงใช้แรงพอที่จะทำลายแรงตึงผิวของลาวาบนยอดแคลเดอรา ส่วนประกอบหลักนี้ของภูเขาไฟเป็นหนึ่งในสัญญาณที่พบบ่อยที่สุดในการกำหนดว่าภูเขาไฟไม่อยู่เฉยและกำลังระเบิดอยู่
ตัวอย่างแสดงกระบวนการนี้ด้วยวัตถุ ParticleEmitter สองตัวที่ใช้ flipbooks เพื่อทำให้พื้นผิวของอนุภาคเคลื่อนไหวตลอดอายุของพวกมัน อีมิตเตอร์อนุภาคตัวแรกปล่อยอนุภาคที่ดูเหมือนการกระเด็นที่หนาและมีความหนืดสูง ซึ่งหนักและหนา ทำให้พวกมันลอยขึ้นและตกลงกลับลงไปในภูเขาไฟ ในทางกลับกัน อีมิตเตอร์อนุภาคตัวที่สองปล่อยอนุภาคที่ดูเหมือนการกระเด็นที่เบาและมีความหนืดต่ำ ซึ่งทำให้พวกมันลอยขึ้นและตกลงอย่างรวดเร็ว


แต่ละอีมิตเตอร์อนุภาคเคลื่อนไหวพื้นผิวของพวกมันตลอด 64 เฟรมเพื่อเลียนแบบพฤติกรรมทางกายภาพที่ราบรื่นและมีชีวิตชีวา ในขณะที่คุณสามารถใช้เพียงอีมิตเตอร์อนุภาคเดียว การทำซ้ำของการเคลื่อนไหวจะชัดเจนและทำลายความมีส่วนร่วมของผู้เล่น เพราะพวกเขาจะเห็นการเคลื่อนไหวเดียวกันทุกครั้ง อย่างไรก็ตาม เมื่ออนุภาคสองตัวเคลื่อนไหว flipbooks ด้วยคุณสมบัติที่กำหนดเองที่แตกต่างกันเล็กน้อย จะทำให้ยากมากที่จะสังเกตเห็นการทำซ้ำ
ตัวอย่างยังมีวัตถุ ParticleEmitter ที่ปล่อยอนุภาคที่ดูเหมือนการกระเด็นที่มีอากาศเพื่อแสดงถึงการกระเด็นที่เบากว่า เทคนิคนี้เติมพื้นที่ด้วยการเคลื่อนไหวที่มีพลศาสตร์และซ่อนการทำซ้ำของการเคลื่อนไหวของ flipbook เพิ่มเติม หากเกมของคุณยังรวมถึงน้ำตกจาก Creating Waterfalls คุณสามารถใช้พื้นผิวเดียวกันสองครั้งในพื้นที่การเล่นที่แตกต่างกัน ช่วยประหยัดหน่วยความจำและปรับปรุงประสิทธิภาพในอุปกรณ์ที่มีประสิทธิภาพต่ำ

ในการสร้างลาวากระเด็นจากผิวของแคลเดอราในไฟล์ตัวอย่าง Volcano Island - Complete:
แทรกชิ้นส่วน cylinder ลงในโฟลเดอร์ Caldera จากนั้นเปลี่ยนชื่อเป็น SplashingLava.
วาง SplashingLava ให้อยู่บนคลื่นผิว จากนั้นปรับขนาดจนปกคลุมกลางแคลเดอราที่คุณต้องการให้ลาวากระเด็น ชิ้นส่วนนี้ดูเหมือนจะเปล่งแสงเพราะอยู่ใกล้กับแหล่งแสงท้องถิ่นของแคลเดอรา

เลือก SplashingLava จากนั้นในหน้าต่าง Properties ตั้งค่า Transparency เป็น 1 เพื่อทำให้ทรงกระบอกมองไม่เห็น
แทรก ParticleEmitter ลงใน SplashingLava จากนั้นเปลี่ยนชื่ออีมิตเตอร์เป็น WebbySplashes.
เลือก WebbySplashes จากนั้นในหน้าต่าง Properties,
- ตั้งค่า Texture เป็น rbxassetid://17363668312 เพื่อสร้างอนุภาคที่ดูเหมือนการกระเด็นที่เบา
- ตั้งค่า Orientation เป็น FacingCameraWorldUp เพื่อปล่อยอนุภาคที่หันหน้าไปทางกล้อง แต่หมุนเฉพาะในแนวแกน Y ของโลกที่ขึ้น
- ตั้งค่า Color เป็น 255, 152, 79 เพื่อทำให้อนุภาคมีสีส้มอ่อน
- ตั้งค่า Size เป็นลำดับหมายเลขที่อนุภาคเพิ่มขนาดขึ้นตลอดอายุของพวกมันด้วยช่วงของความแปรปรวน
- Time = 0, Value = 4.31, Envelope = 0.762
- Time = 1, Value = 6.2, Envelope = 0.875

- ตั้งค่า Squash เป็นลำดับหมายเลขที่อนุภาคยืดออกเล็กน้อยตลอดอายุของพวกมันด้วยช่วงของความแปรปรวน
- Time = 0, Value = -0.075, Envelope = 0.263
- Time = 1, Value = -0.413, Envelope = 0.412

- ตั้งค่า ZOffset เป็น 1 เพื่อเลื่อนพื้นผิวให้ห่างจากแคลเดอราเล็กน้อย
- ตั้งค่า Lifetime เป็น 1.5, 2 เพื่อกำหนดอายุของอนุภาคแต่ละตัวแบบสุ่มระหว่าง 1.5 ถึง 2 วินาที
- ตั้งค่า Rate เป็น 0.37 เพื่อปล่อยอนุภาคประมาณทุก 3 วินาที
- ตั้งค่า RotSpeed เป็น -20, 20 เพื่อปล่อยอนุภาคแต่ละตัวแบบสุ่มระหว่าง -20 ถึง 20 องศาต่อวินาที
- ตั้งค่า Speed เป็น 2 เพื่อปล่อยอนุภาคแต่ละตัว 2 studs ต่อวินาที
- ตั้งค่า SpreadAngle เป็น 5, 5 เพื่อปล่อยอนุภาคในมุมเล็ก ๆ ตามแกน X และ Z
- ตั้งค่า FlipbookLayout เป็น Grid8x8 เพื่อเคลื่อนไหวพื้นผิวตลอดระยะเวลา 64 เฟรม
- ตั้งค่า FlipbookMode เป็น Oneshot เพื่อให้แน่ใจว่าการเคลื่อนไหวจะเล่นเพียงครั้งเดียวในระหว่างอายุของมัน
- ตั้งค่า Drag เป็น 0.5 เพื่อให้อนุภาคสูญเสียความเร็วด้วยการลดลงแบบเอ็กซ์โพเนนเชียล
- ตั้งค่า LightEmission เป็น 0.1 เพื่อทำให้อนุภาคสว่างขึ้นเล็กน้อย
- ตั้งค่า LightInfluence เป็น 0.25 เพื่อทำให้แสงในสิ่งแวดล้อมมีผลต่อสีของอนุภาคน้อยลง
ทำสำเนา DenseSplashes จากนั้นในหน้าต่าง Properties ปรับคุณสมบัติต่อไปนี้เพื่อให้มีความหลากหลายในการกระเด็นลาวาเพิ่มเติม
- ตั้งค่า Name เป็น DenseSplashes.
- ตั้งค่า Texture เป็น rbxassetid://17363669906 เพื่อสร้างอนุภาคที่ดูเหมือนการกระเด็นที่หนา
- ตั้งค่า Size เป็นลำดับหมายเลขที่อนุภาคเพิ่มขนาดขึ้นตลอดอายุของพวกมันด้วยช่วงของความแปรปรวน
- Time = 0, Value = 5.75, Envelope = 0.762
- Time = 1, Value = 7.37, Envelope = 0.875

- ตั้งค่า Squash เป็นลำดับหมายเลขที่อนุภาคยืดออกเล็กน้อยตลอดอายุของพวกมันด้วยช่วงของความแปรปรวน
- Time = 0, Value = 0, Envelope = 0.225
- Time = 1, Value = -0.262, Envelope = 0.15

- ตั้งค่า Rate เป็น 0.289 เพื่อปล่อยอนุภาคเกือบทุก ๆ หนึ่งในสี่ของวินาที
เติมแคลเดอราด้วยการกระเด็นเพิ่มเติม
แทรก ParticleEmitter ลงใน SplashingLava จากนั้นเปลี่ยนชื่ออีมิตเตอร์เป็น SplashFill.
เลือก SplashFill จากนั้นในหน้าต่าง Properties,
- ตั้งค่า Texture เป็น rbxassetid://17082061238 เพื่อสร้างอนุภาคที่ดูเหมือนการกระเด็นที่เบา
- ตั้งค่า Orientation เป็น FacingCameraWorldUp เพื่อปล่อยอนุภาคที่หันหน้าไปทางกล้อง แต่หมุนเฉพาะในแนวแกน Y ของโลกที่ขึ้น
- ตั้งค่า Color เป็น 255, 152, 33 เพื่อทำให้อนุภาคมีสีส้ม
- ตั้งค่า Size เป็นลำดับหมายเลขที่อนุภาคเพิ่มขนาดขึ้นตลอดอายุของพวกมันด้วยช่วงของความแปรปรวน
- Time = 0, Value = 1.25, Envelope = 0.388
- Time = 1, Value = 6.38, Envelope = 0.563

- ตั้งค่า Transparency เป็นลำดับหมายเลขที่อนุภาคเริ่มต้นเป็นโปร่งใส เปลี่ยนเป็นทึบ จากนั้นกลับมาโปร่งใสอีกครั้งในตอนท้ายของอายุของพวกมัน
- 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

- ตั้งค่า ZOffset เป็น 1 เพื่อเลื่อนพื้นผิวให้ห่างจากแคลเดอราเล็กน้อย
- ตั้งค่า Lifetime เป็น 1.5 เพื่อกำหนดอายุของอนุภาคแต่ละตัวเป็น 1.5 วินาที
- ตั้งค่า Rate เป็น 8 เพื่อปล่อยอนุภาคทุก 8 วินาที
- ตั้งค่า Rotation เป็น 0, 360 เพื่อให้อนุภาคแต่ละตัวมีการหมุนแบบสุ่มในครึ่งวงกลม
- ตั้งค่า RotSpeed เป็น -50, 50 เพื่อปล่อยอนุภาคแต่ละตัวแบบสุ่มระหว่าง -50 ถึง 50 องศาต่อวินาที
- ตั้งค่า Speed เป็น 12, 20 เพื่อปล่อยอนุภาคแต่ละตัวระหว่าง 12 ถึง 20 studs ต่อวินาที
- ตั้งค่า SpreadAngle เป็น 45, 45 เพื่อปล่อยอนุภาคในมุมตามแกน X และ Z
- ตั้งค่า Acceleration เป็น 0, -25, 0 เพื่อจำลองแรงโน้มถ่วงและดึงอนุภาคกลับลง
- ตั้งค่า Drag เป็น 1 เพื่อให้อนุภาคสูญเสียความเร็วด้วยการลดลงแบบเอ็กซ์โพเนนเชียล
- ตั้งค่า LightEmission เป็น 1 เพื่อทำให้อนุภาคสว่างขึ้นอย่างมีนัยสำคัญ
- ตั้งค่า LightInfluence เป็น 0 เพื่อป้องกันไม่ให้แสงในสิ่งแวดล้อมมีผลต่อสีของอนุภาค
- ตั้งค่า Brightness เป็น 8 เพื่อปรับขนาดแสงที่ปล่อยออกจากอีมิตเตอร์
การไหลของลาวา
การไหลของลาวา คือมวลของลาวาที่ระเบิดและไหลออกจากแคลเดอราและข้ามพื้นผิวโลกในระหว่างการระเบิดของภูเขาไฟ ขณะที่ลาวาเย็นตัวเนื่องจากการสัมผัสกับอากาศ มันจะกลายเป็นหินแข็งและเปลี่ยนเป็นหินแข็ง สร้างมวลดินใหม่
เพื่อจำลองกระบวนการนี้ ตัวอย่างจะซ้อนวัตถุ Beam หลายตัวซ้อนกันด้วยพื้นผิวที่ไร้รอยต่อและการกำหนดค่าคุณสมบัติที่เลียนแบบลักษณะพฤติกรรมของลาวาที่เย็นตัวเมื่อมันเคลื่อนที่ออกไปจากแคลเดอรา:
- ชั้นล่าง แสดงสีเรียบที่เปลี่ยนจากสีอบอุ่นไปเป็นสีเย็นเพื่อสื่อสารว่าลาวากำลังเริ่มลดอุณหภูมิ เช่น จากสีแดงสดไปเป็นสีแดงเข้ม
- ชั้นกลาง แสดงพื้นผิวสีดำที่ดูเหมือนเปลือกที่มืดซึ่งมีรูที่เผยให้เห็นลาวาที่เปล่งแสงอยู่ข้างใต้
- ชั้นบน แสดงพื้นผิวเดียวกันกับชั้นกลางในอัตราที่ช้ากว่า การติดตั้งกลับด้าน และการกำหนดค่าคุณสมบัติที่ตรงกันข้าม สิ่งนี้ทำให้แน่ใจว่าพื้นผิวไม่มีโอกาสที่จะเรียงกันอย่างเต็มที่ในขณะที่เรนเดอร์ในทิศทางเดียวกัน ซึ่งจะทำให้ผู้เล่นสามารถตรวจจับการทำซ้ำของพื้นผิวที่ไม่สมจริงได้ง่าย



การซ้อนวัตถุ Beam สามตัวสร้างภาพลวงตาของพารัลแลกซ์เพื่อทำให้ลาวาดูเหมือนมีความลึกและปริมาตรที่ลาวาไหลในอัตราที่แตกต่างกัน แม้ว่าพวกมันจะเป็นเพียงภาพ 2D สามภาพก็ตาม สิ่งนี้ทำให้ผู้เล่นรู้ว่ามีความปั่นป่วนอยู่ภายในหุบเขา ทั้งบนและใต้ผิวของลาวา

ในการสร้างลาวาที่ไหลจากแคลเดอราในไฟล์ตัวอย่าง Volcano Island - Complete:
ในหน้าต่าง Explorer สร้าง Folder ใน Workspace เพื่อเก็บวัตถุแมกมาที่ไหลทั้งหมด จากนั้นเปลี่ยนชื่อโฟลเดอร์เป็น FlowingMagma.
แทรกชิ้นส่วน block ลงในโฟลเดอร์ FlowingMagma จากนั้นเปลี่ยนชื่อเป็น MagmaRiverBeam.
ย้าย MagmaRiverBeam ไปยังตำแหน่งที่อยู่ต่ำกว่าขอบของแคลเดอราเล็กน้อย

กำหนดการติดตั้งสำหรับบีมแมกมาทั้งหมดจากแคลเดอราเพื่อใช้ในการเรนเดอร์พื้นผิวของพวกมัน
- แทรกการติดตั้งลงใน MagmaRiverBeam จากนั้นหมุนการติดตั้งจนกว่าจุดช่วยสีเหลืองจะชี้ไปที่แคลเดอรา
- แทรกการติดตั้งอีกอันลงใน MagmaRiverBeam วางตำแหน่งไปยังจุดแยกในรอยแยก จากนั้นหมุนการติดตั้งจนกว่าจุดช่วยสีเหลืองจะชี้ลงไปในพื้นดิน

แทรก Beam ลงใน MagmaRiverBeam จากนั้นเปลี่ยนชื่อเป็น Magma.
กำหนดการติดตั้งของชิ้นส่วนให้กับ Magma.
- ในหน้าต่าง Explorer เลือก Magma.
- ในหน้าต่าง Properties,
- ตั้งค่า Attachment0 เป็นการติดตั้งที่ขอบของแคลเดอรา
- ตั้งค่า Attachment1 เป็นการติดตั้งที่จุดแยกในรอยแยก บีมจะเรนเดอร์พื้นผิวเริ่มต้นระหว่างการติดตั้งทั้งสอง

ปรับแต่งลักษณะของบีมเพื่อให้ดูเหมือนลาวาที่ไหล
ในหน้าต่าง Explorer ตรวจสอบให้แน่ใจว่า Magma ยังคงถูกเลือกอยู่
ในหน้าต่าง Properties,
- ตั้งค่า Width0 เป็น 50 เพื่อขยายพื้นผิวจากแกนที่เริ่มเรนเดอร์
- ตั้งค่า Width1 เป็น 50 เพื่อขยายพื้นผิวเมื่อมันถึงจุดแยกในรอยแยก
- ตั้งค่า CurveSize0 เป็น -50 เพื่อโค้งพื้นผิวออกจากพื้นของรอยแยก
- ตั้งค่า CurveSize1 เป็น 5 เพื่อโค้งพื้นผิวเข้าไปในจุดแยกในรอยแยก
- ตั้งค่า Color เป็นลำดับสีที่เริ่มต้นจากสีแดงสดและกลายเป็นสีแดงเข้มตลอดอายุของบีมเพื่อจำลองลาวาที่เย็นตัว
- Time = 0, RGB Value = 255, 51, 0
- Time = 0.5, RGB Value = 211, 39, 0
- Time = 1, RGB Value = 118, 24, 0

- ตั้งค่า Transparency เป็นลำดับหมายเลขที่ทำให้ลาวามีความสดใสมากขึ้นระหว่างจุดติดตั้ง
- 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. ตั้งค่า LightEmission เป็น 1 เพื่อทำให้ลำแสงสว่างขึ้นอย่างมีนัยสำคัญ
- ตั้งค่า LightInfluence เป็น 0 เพื่อป้องกันไม่ให้แสงจากสิ่งแวดล้อมมีผลต่อสีของลำแสง
- ตั้งค่า Brightness เป็น 8 เพื่อปรับขนาดของแสงที่ปล่อยออกมาจากลำแสง
แทรกลำแสง Beam อีกอันเข้าไปใน MagmaRiverBeam เปลี่ยนชื่อเป็น Crust1 จากนั้นเชื่อมต่อการติดตั้งของชิ้นส่วนกับ Crust1 โดยใช้กระบวนการเดียวกันในขั้นตอนที่ 6
ปรับแต่งลักษณะทางสายตาของลำแสงให้ดูเหมือนเปลือกบนมักมะ
ในหน้าต่าง Explorer ตรวจสอบให้แน่ใจว่า Crust1 ยังคงถูกเลือกอยู่
ในหน้าต่าง Properties,
- ตั้งค่า Texture เป็น rbxassetid://17023930265 เพื่อเรนเดอร์พื้นผิวใหม่ที่ดูเหมือนเปลือกที่ไหล
- ตั้งค่า Width0 เป็น 35 เพื่อขยายพื้นผิวจากแกนที่เริ่มเรนเดอร์
- ตั้งค่า Width1 เป็น 25 เพื่อขยายพื้นผิวเมื่อมันถึงจุดแยกในรอยแตก
- ตั้งค่า TextureSpeed เป็น 0.01 เพื่อทำให้การไหลของพื้นผิวช้าลงอย่างมีนัยสำคัญ
- ตั้งค่า TextureLength เป็น 3 เพื่อยืดความยาวของพื้นผิวเล็กน้อย
- ตั้งค่า CurveSize0 เป็น -50 เพื่อโค้งพื้นผิวออกจากพื้นของรอยแตก
- ตั้งค่า CurveSize1 เป็น 5 เพื่อโค้งพื้นผิวเข้าไปในจุดแยกในรอยแตก
- ตั้งค่า Color เป็น 83, 83, 83 เพื่อทำให้ลำแสงมีสีเทา
- ตั้งค่า Transparency เป็นลำดับหมายเลขที่อนุญาตให้เปลือกมีความสดใสมากขึ้นระหว่างจุดติดตั้ง
- Time = 0, Value = 1
- Time = 0.22, Value = 0
- Time = 0.85, Value = 0
- Time = 1, Value = 1

- ตั้งค่า ZOffset เป็น 1 เพื่อเลื่อนพื้นผิวให้ห่างจาก caldera เล็กน้อย
ทำซ้ำ Crust1 เปลี่ยนชื่อเป็น Crust2 จากนั้นในหน้าต่าง Properties,
- ตั้งค่า Attachment0 เป็นการติดตั้งที่จุดแยกในรอยแตก
- ตั้งค่า Attachment1 เป็นการติดตั้งที่ขอบของ caldera
- ตั้งค่า Width0 เป็น 25 เพื่อขยายพื้นผิวจากแกนที่เริ่มเรนเดอร์
- ตั้งค่า Width1 เป็น 35 เพื่อขยายพื้นผิวเมื่อมันถึงจุดแยกในรอยแตก
- ตั้งค่า TextureSpeed เป็น -0.008 เพื่อทำให้การไหลของพื้นผิวช้าลงอย่างมีนัยสำคัญ
- ตั้งค่า TextureLength เป็น 2 เพื่อยืดความยาวของพื้นผิวเล็กน้อย
- ตั้งค่า CurveSize0 เป็น -5 เพื่อโค้งพื้นผิวออกจากพื้นของรอยแตก
- ตั้งค่า CurveSize1 เป็น 50 เพื่อโค้งพื้นผิวเข้าไปในจุดแยกในรอยแตก
- ตั้งค่า ZOffset เป็น 2 เพื่อเลื่อนพื้นผิวให้ห่างจากเปลือกอื่น
- OPTIONALใช้กระบวนการเดียวกันนี้ สร้างลำแสงเพิ่มเติมรอบจุดแยกในรอยแตกเพื่อแยกมักมะ อย่าลืมปรับคุณสมบัติเพื่อทำให้พื้นผิวช้าลงและจำลองมักมะที่มีสีเข้มขึ้นเมื่อเย็นลง
ควันพุ่ง
ควันพุ่ง จาก caldera ปล่อยก๊าซร้อนที่มีความดัน, ไอน้ำ, และเถ้าภูเขาไฟเข้าสู่อากาศ การผสมผสานของการปล่อยภูเขาไฟนี้สามารถมองเห็นได้จากระยะไกลในโลกจริง ดังนั้นการออกแบบภูเขาไฟมักจะรวมถึงควันพุ่งขนาดใหญ่เพื่อเป็นจุดสนใจที่สำคัญในพื้นที่ 3D
แทนที่จะปล่อยควันหนาและพิโรคลาสติกที่เห็นได้ทันทีหลังจากการระเบิดที่รุนแรง ตัวอย่างนี้ใช้วัตถุ ParticleEmitter เพื่อปล่อยอนุภาคที่ดูเหมือนไอน้ำควันบาง ๆ ที่เปลี่ยนสีเมื่อมันลอยขึ้นไปข้างบน เทคนิคนี้บรรลุเป้าหมายสองประการ:
- มันทำให้ซิลลูเอทของหลุมหลังเบลอ ทำให้เกิดความน่าสนใจทางสายตารอบการระเบิดของภูเขาไฟ
- มันทำให้ควันดูเหมือนว่ามันรับแสงจากสิ่งแวดล้อมในขณะที่ยังคงปล่อยความมืดเหมือนกับว่าควันกำลังเผาสิ่งสกปรกในอากาศก่อนที่จะเปลี่ยนเป็นสีเทาเหมือนท้องฟ้ายามค่ำคืน

ในการสร้างควันพุ่งจาก caldera ในไฟล์ตัวอย่าง Volcano Island - Complete:
แทรกชิ้นส่วน block ลงในโฟลเดอร์ Caldera จากนั้นเปลี่ยนชื่อเป็น SmokePlume
วาง SmokePlume ใต้ caldera จากนั้นปรับขนาดให้ใกล้เคียงกับพื้นที่ผิวของ caldera

แทรก ParticleEmitter ลงใน SmokePlume จากนั้นเปลี่ยนชื่ออีมิตเตอร์เป็น Smoke
เลือก Smoke จากนั้นในหน้าต่าง Properties,
- ตั้งค่า Texture เป็น rbxassetid://16830673704 เพื่อเรนเดอร์อนุภาคที่ดูเหมือนควันหนา
- ตั้งค่า Color เป็นลำดับสีที่อนุภาคจำลองการให้แสงในสิ่งแวดล้อมจาก caldera สู่ท้องฟ้าโดยเริ่มจากสีดำ, กลายเป็นสีพีชอ่อน, แล้วเป็นสีเทา
- Time = 0, RGB Value = 0, 0, 0
- Time = 0.374, RGB Value = 195, 104, 76
- Time = 0.469, RGB Value = 225, 121, 86
- Time = 0.709, RGB Value = 111, 111, 111
- Time = 1, RGB Value = 113, 113, 113

- ตั้งค่า Transparency เป็นลำดับหมายเลขที่อนุภาคเริ่มต้นเป็นโปร่งใส, กลายเป็นทึบเต็มที่ในช่วงต้นของอายุขัย, แล้วกลับมาโปร่งใสอีกครั้งใกล้จบอายุขัย
- Time = 0, Value = 1
- Time = 0.0622, Value = 0
- Time = 0.845, Value = 0
- Time = 0, Value = 1

- ตั้งค่า ZOffset เป็น -10 เพื่อเลื่อนพื้นผิวให้ใกล้กับด้านบนของ caldera
- ตั้งค่า Lifetime เป็น 50, 60 เพื่อกำหนดอายุขัยของอนุภาคแต่ละตัวแบบสุ่มระหว่าง 50 ถึง 60 วินาที
- ตั้งค่า Rate เป็น 0.3 เพื่อปล่อยอนุภาคประมาณทุก 3 วินาที
- ตั้งค่า Rotation เป็น -360, 360 เพื่อจัดแนวอนุภาคแต่ละตัวแบบสุ่มในวงกลม
- ตั้งค่า RotSpeed เป็น -5, 5 เพื่อปล่อยอนุภาคแต่ละตัวแบบสุ่มระหว่าง -5 ถึง 5 องศาต่อวินาที
- ตั้งค่า SpreadAngle เป็น 5, 5 เพื่อปล่อยอนุภาคในมุมเล็ก ๆ ตามแกน X และ Z
- ตั้งค่า Acceleration เป็น 0, 7, 0 เพื่อจำลองแรงขึ้นและดึงอนุภาคไปยังท้องฟ้า
- ตั้งค่า Drag เป็น 1 เพื่อให้อนุภาคสูญเสียความเร็วด้วยการลดลงแบบเอ็กซ์โพเนนเชียล
- เปิดใช้งาน WindAffectsDrag เพื่อให้ลมในสิ่งแวดล้อมดันควันไปรอบ ๆ
- ตั้งค่า LightEmission เป็น 0.1 เพื่อทำให้อนุภาคสว่างขึ้นเล็กน้อย
- ตั้งค่า LightInfluence เป็น 0.06 เพื่อทำให้แสงจากสิ่งแวดล้อมมีผลต่อสีของอนุภาคน้อยลงอย่างมีนัยสำคัญ
ใน Command Bar ให้ป้อนสตริงต่อไปนี้เพื่อเพิ่มขนาดของอนุภาคแต่ละตัวจาก 40 เป็น 100 studs ตลอดอายุขัยของพวกมันด้วยช่วงการเปลี่ยนแปลงเล็กน้อย:
workspace.Caldera.SmokePlume.Smoke.Size = NumberSequence.new{NumberSequenceKeypoint.new(0,40,5), NumberSequenceKeypoint.new(1,100,15)}