ทุกสถานที่จะถูกแทนที่ด้วยโมเดลข้อมูล ซึ่งเป็นลำดับชั้นของวัตถุที่อธิบายทุกอย่างเกี่ยวกับสถานที่โมเดลข้อมูลมีวัตถุทั้งหมดที่ประกอบขึ้นเป็นโลก 3D เช่นชิ้นส่วน พื้นที่ แสงสว่าง และองค์ประกอบสิ่งแวดล้อมอื่นๆนอกจากนี้ยังมีวัตถุที่สามารถควบคุมพฤติกรรมการทำงานได้ เช่น สคริปต์ที่แก้ไขคุณสมบัติ เรียกวิธีและฟังก์ชัน และตอบสนองต่อเหตุการณ์ที่เปิดใช้งานพฤติกรรมไดนามิกและการโต้ตอบ
เครื่องยนต์ Roblox ใช้โมเดลข้อมูลเป็นแหล่งความจริงสำหรับสถานะของสถานที่ดังนั้นจึงสามารถจำลองและแสดงบนอุปกรณ์เคลื่อนที่ได้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ Roblox เอนจินตีความรูปแบบข้อมูล ดูที่ เวลารันไคลเอนต์-เซิร์ฟเวอร์
วัตถุ
คุณวางและจัดระเบียบวัตถุในโมเดลข้อมูลเพื่ออธิบายสถานที่ใน Robloxทุกวัตถุใน Roblox มีพื้นฐานมาจากคลาส Instance ซึ่งกำหนดคุณสมบัติ วิธีการ และอีเวนต์ทั่วไปที่เป็นสามัญสำหรับวัตถุทั้งหมดวัตถุยังกำหนดลักษณะเฉพาะของตนเองขึ้นอยู่กับฟังก์ชันที่วัตถุให้บริการมีหลายประเภทของวัตถุที่มีหลากหลายการใช้งาน แต่คุณมักจะทำงานร่วมกับวัตถุ BasePart และ LuaSourceContainer ซึ่งมักเรียกว่าชิ้นส่วนและสคริปต์
สำหรับรายการที่ครอบคลุมของคุณสมบัติทั้งหมดของ Roblox Engine ดูเอกสารอ้างอิง
บล็อกการสร้าง 3D
BasePart เป็นคลาสหลักสำหรับบล็อกการสร้าง 3D ที่จำลองทางกายภาพในโลกมันกำหนดคุณสมบัติและวิธีการทั่วไปสำหรับวัตถุทางกายภาพทั้งหมดที่มีคุณสมบัติเช่นตำแหน่ง ขนาด และทิศทาง
วัตถุ | คําอธิบาย |
---|---|
Part | ส่วนพื้นฐาน ที่สามารถรับรูปร่างของบล็อก ลูกบอล ทรงกระบอก บล็อกลิ่ม หรือมุมลิ่ม |
MeshPart | เมช นำเข้า จากซอฟต์แวร์การโมเดลลิ่ง 3D เช่น Maya หรือ Blender |
TrussPart | เสาค้ำที่ตัวละครสามารถปีนขึ้นได้เหมือนบันได |
แม้ว่าคุณจะสามารถสร้างประสบการณ์ Roblox ที่ใช้งานได้เต็มรูปแบบโดยใช้ชิ้นส่วนง่ายๆ เพียงไม่กี่ชิ้น คุณอาจจะนำเข้า เมช และรวมชิ้นส่วนพื้นฐานเข้ากับวัตถุและโครงสร้างที่ซับซ้อนมากขึ้นผ่าน การโมเดล링แข็ง
สคริปต์
คุณสามารถเพิ่มความโต้ตอบและพฤติกรรมให้กับโลก 3D ของสถานที่ของคุณและกำหนดโลจิสติกด้วยสคริปต์คุณเขียนสคริปต์ในภาษา Luau เพื่อทำสิ่งต่างๆ เช่น ย้ายชิ้นส่วน เรียกสคริปต์อื่น และตอบสนองต่อเหตุการณ์เนื่องจาก Roblox ทำงานในรูปแบบไคลเอนต์-เซิร์ฟเวอร์คุณสามารถรันสคริปต์บนเซิร์ฟเวอร์ ไคลเอนต์ หรือให้พวกเขาสื่อสารข้ามขอบเขตเครือข่ายได้
- วัตถุ Script แทนที่สคริปต์ที่สามารถรันได้เฉพาะบนเซิร์ฟเวอร์
- วัตถุ LocalScript แทนที่สคริปต์ที่สามารถรันได้เฉพาะบนไคลเอนต์
- วัตถุ ModuleScript แทนที่สคริปต์ที่ใช้ซ้ำได้ที่คุณสามารถ require() จากทั้งสคริปต์เซิร์ฟเวอร์และไคลเอนต์
เพื่อให้สคริปต์ทำงานอย่างถูกต้อง คุณต้องวางไว้ในคอนเทนเนอร์ที่ถูกต้องในโมเดลข้อมูลสำหรับข้อมูลเพิ่มเติม ดูส่วน เซิร์ฟเวอร์ และ ไคลเอนต์
องค์กรวัตถุ
ในขณะที่คุณมีความยืดหยุ่นมากในการจัดระเบียบโมเดลข้อมูลของคุณ เครื่อง Roblox คาดว่าวัตถุบางอย่างจะอยู่ในบริการคอนเทนเนอร์บางอย่าง ที่เป็นวัตถุที่มีพฤติกรรมเฉพาะและสามารถส่งผลต่อพฤติกรรมของวัตถุที่พวกเขามีได้ ซึ่งเป็นวัตถุที่มีพฤติกรรมเฉพาะและสามารถส่งผลต่อพฤติกรรมของวัตถุที่พวกเขามีหมวดหมู่หลักของบริการคอนเทนเนอร์รวมถึง:
- พื้นที่ทำงาน - Workspace เก็บวัตถุทั้งหมดที่แสดงในโลก 3D
- สภาพแวดล้อม - คอนเทนเนอร์เช่น Lighting และ SoundService ที่มีวัตถุสำหรับการตั้งค่าและองค์ประกอบสิ่งแวดล้อม
- การจำลอง - คอนเทนเนอร์สำหรับเนื้อหาและโลจิสติกที่สามารถจำลองระหว่างเซิร์ฟเวอร์และไคลเอนต์ได้ เช่น ReplicatedStorage และ ReplicatedFirst
- เซิร์ฟเวอร์ - คอนเทนต์และโลจิสติกส์ด้านเซิร์ฟเวอร์เท่านั้น, เช่น ServerScriptService และ ServerStorage .
นอกจากนี้คุณยังสามารถจัดระเบียบวัตถุของคุณต่อไปด้วยวัตถุต่อไปนี้:
- โฟลเดอร์ - A Folder สำหรับวัตถุประสงค์ทางองค์กรและไม่กำหนดพฤติกรรมใดๆตัวอย่างเช่น คุณสามารถใช้โฟลเดอร์เพื่อกลุ่มวัตถุที่คล้ายกันเช่นชุดของสคริปต์ในคลังเซิร์ฟเวอร์
- รูปแบบ - A Model ส่วนใหญ่มีจุดมุ่งหมายเพื่อการจัดกลุ่มทางภาคภูมิศาสตร์ของชิ้นส่วน เช่น การจัดกลุ่มชุดโต๊ะที่มีเก้าอี้ โต๊ะ และโคมไฟเพื่อจัดระเบียบชุดที่ซับซ้อนมากขึ้น คุณสามารถแยกโมเดลภายในโมเดลได้
พื้นที่ทำงาน
Workspace มีวัตถุทั้งหมดที่ทำให้เป็นโลก 3D ของสถานที่คุณสามารถเพิ่มวัตถุในพื้นที่ทำงานเพื่อปรับแต่งโลก 3D ของคุณ เช่น ชิ้นส่วนพื้นฐาน ชิ้นส่วนเมช และโมเดลไคลเอนต์แสดงทุกอย่างที่ปรากฏในคอนเทนเนอร์นี้และไม่มีอะไรอยู่นอกเหนือจากมันดังนั้นคุณสามารถควบคุมสิ่งที่ผู้ใช้เห็นและโต้ตอบกับในสถานที่ของคุณได้แม้ว่าจะไม่ถูกเรนเดอร์จริงๆ คุณยังสามารถเพิ่มสคริปต์ที่เป็นพ่อของชิ้นส่วนและโมเดลที่พวกเขาเกี่ยวข้องได้โดยค่าเริ่มต้นพื้นที่ทำงานจะถูกเติมด้วยวัตถุ Terrain และ Camera
กล้อง
Camera กำหนดวิธีที่ไคลเอนต์มองเห็นโลก 3Dโดยค่าเริ่มต้นจะมีกล้องหนึ่งตัวในพื้นที่ทำงาน แต่คุณสามารถเพิ่มวัตถุกล้องหลายตัวเพื่อสร้างมุมมองและมุมมองที่แตกต่างกันได้ทุกไคลเอนต์ใช้การตั้งค่าเหล่านี้และสร้างมุมมองกล้องของตนเองที่เซิร์ฟเวอร์ไม่สามารถแก้ไขได้โดยตรง
ตัวอย่างเช่น คุณสามารถตั้งกล้องให้ติดตามการเคลื่อนไหวของผู้ใช้หรืออยู่คงที่ในตำแหน่งเฉพาะได้คุณยังสามารถปรับค่ามุมมอง ระยะทาง และมุมเพื่อสร้างเอฟเฟกต์ภาพที่แตกต่างกันของวิธีที่ผู้ใช้ดูโลก 3D ของคุณ
สำหรับข้อมูลเพิ่มเติม ดู ปรับแต่งกล้อง
พื้นที่
Terrain ช่วยให้คุณสามารถสร้างทิวทัศน์สำหรับสถานที่ของคุณคุณสามารถใช้วัสดุกับพื้นที่เพื่อจำลองสภาพแวดล้อมทางธรรมชาติที่ต้องการ เช่น หญ้า น้ํา ทราย หรือวัสดุที่กําหนดเองแม้ว่าคุณจะสามารถมีวัตถุพื้นที่เพียงหนึ่งสำหรับโลก 3D ของคุณและใช้วัสดุหนึ่งชิ้นสำหรับพื้นที่นั้น คุณสามารถใช้ เครื่องมือตัวแก้ไขพื้นที่ เพื่อแก้ไขภูมิภาคของพื้นที่ของคุณ
สำหรับข้อมูลเพิ่มเติม ดู พื้นที่สภาพแวดล้อม
สภาพแวดล้อม
เอฟเฟกต์แสงและเสียงสามารถทำให้โลก 3D ของคุณมีความสมจริงและสมจริงมากขึ้นแม้ว่าจะไม่จำเป็นต้องเพิ่มเอฟเฟกต์เหล่านี้ให้กับสถานที่ของคุณ แต่พวกเขาสามารถทำให้มันน่าสนใจทางสายตาและเสียงได้มากขึ้น
แสง
Lighting มีวัตถุที่ควบคุมการตั้งค่าแสงทั่วโลกของสถานที่ของคุณ เช่น Atmosphere เพื่อจำลองเอฟเฟกต์บรรยากาศหรือ Sky เพื่อเปลี่ยนดวงอาทิตย์ ดวงจันทร์ และดาวในสภาพแวดล้อมของคุณ
สำหรับข้อมูลเพิ่มเติม ดู แสง
เสียง
SoundService สามารถควบคุมการตั้งค่าระดับเสียงและการเล่นของวัตถุลูก Sound สำหรับเพลงพื้นหลังหรือเสียงเอฟเฟกต์สิ่งแวดล้อม
สำหรับข้อมูลเพิ่มเติม ดู เสียง
การเลียนแบบ
การสําเนา เป็นกระบวนการที่เซิร์ฟเวอร์สynchronize สถานะของสถานที่ของคุณกับลูกค้าทั้งหมดที่เชื่อมต่อเครื่องยนต์ Roblox สามารถสําเนาข้อมูล ฟิสิกส์ และข้อความแชทระหว่างเซิร์ฟเวอร์และไคลเอนต์ได้อย่างชาญฉลาดและอัตโนมัติในหลายกรณี แต่คุณยังสามารถระบุวัตถุบางอย่างที่จะสําเนาโดยวางไว้ในคอนเทนเนอร์ที่เฉพาะเจาะจงได้
สําเนาครั้งแรก
ReplicatedFirst มีวัตถุที่คุณต้องการที่จะสําเนาไปยังไคลเอนต์เมื่อมันเข้าร่วมสถานที่ของคุณมันมักจะมีวัตถุที่จำเป็นสำหรับการเริ่มต้นผู้เล่น เช่น วัตถุด้านลูกค้า LocalScript และวัตถุที่เกี่ยวข้องกับสคริปต์เนื้อหาทั้งหมดในคอนเทนเนอร์นี้จะถูกสําเนาจากเซิร์ฟเวอร์ไปยังไคลเอนต์เพียงครั้งเดียว
ที่เก็บซ้ำ
ReplicatedStorage มีวัตถุที่สามารถใช้ได้ทั้งกับเซิร์ฟเวอร์และลูกค้าที่เชื่อมต่อการเปลี่ยนแปลงใดๆ ที่เกิดขึ้นบนไคลเอนต์จะยังคงอยู่ แต่จะไม่ถูกส่งไปยังเซิร์ฟเวอร์เซิร์ฟเวอร์สามารถเขียนทับการเปลี่ยนแปลงบนไคลเอนต์เพื่อรักษาความสอดคล้องได้คอนเทนเนอร์นี้มักใช้สำหรับวัตถุ ModuleScript ที่ต้องการแชร์และเข้าถึงโดยทั้ง Script (ด้านเซิร์ฟเวอร์) และ LocalScript (ด้านไคลเอนต์) วัตถุนอกจากนี้คุณสามารถใช้คอนเทนเนอร์นี้เพื่อสร้างซ้ำวัตถุใดๆ ที่ไม่จำเป็นต้องมีอยู่ในโลก 3D จนกว่าจะจำเป็น เช่น ParticleEmitter สําหรับการโคลนและปลูกฝังตัวละครทั้งหมดที่เข้ามา
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่การสําเนาทํางาน ดู การรันไทม์ไคลเอนต์-เซิร์ฟเวอร์
เซิร์ฟเวอร์
โมเดลข้อมูลกำหนดคอนเทนเนอร์สำหรับวัตถุด้านเซิร์ฟเวอร์เท่านั้นที่ไม่เคยถูกสําเนาไปยังไคลเอนต์สิ่งนี้ช่วยให้เซิร์ฟเวอร์สามารถมีอิทธิพลต่อพฤติกรรมและสถานะของไคลเอนต์โดยไม่เปิดเผยวัตถุและโลจิสติกของเซิร์ฟเวอร์ให้กับไคลเอนต์
บริการสคริปต์เซิร์ฟเวอร์
มีวัตถุ วัตถุที่จำเป็นสำหรับสคริปต์เซิร์ฟเวอร์ และวัตถุที่เกี่ยวข้องกับการเขียนสคริปต์อื่นๆ ที่มีจุดประสงค์เพื่อใช้งานเซิร์ฟเวอร์เท่านั้นหากสคริปต์ของคุณต้องการวัตถุอื่นที่ไม่ใช่สคริปต์คุณต้องวางไว้ใน ServerStorageสคริปต์ในคอนเทนเนอร์นี้จะไม่ถูกส่งไปยังไคลเอนต์ ซึ่งทำให้คุณสามารถมีโลจิสติกทางเซิร์ฟเวอร์ที่ปลอดภัยได้
พื้นที่เก็บของเซิร์ฟเวอร์
ServerStorage มีวัตถุที่มีไว้สำหรับการใช้งานเซิร์ฟเวอร์เท่านั้นคุณสามารถใช้คอนเทนเนอร์นี้เพื่อเก็บวัตถุที่คุณต้องการโคลนและพ่วงไปยังพื้นที่ทำงานหรือคอนเทนเนอร์อื่นในระหว่างการทำงานตัวอย่างเช่น คุณสามารถเก็บวัตถุขนาดใหญ่เช่นแผนที่ในคอนเทนเนอร์นี้จนกว่าจะต้องการและย้ายไปยังพื้นที่ทำงานเฉพาะเมื่อจำเป็น ซึ่งช่วยให้คุณลดการจราจรเครือข่ายไคลเอนต์ในระหว่างการเข้าร่วมครั้งแรก
ไคลเอนต์
บริการคอนเทนเนอร์ลูกค้ามีไว้สำหรับวัตถุที่จะถูกเลียนแบบไปยังลูกค้าที่เชื่อมต่อทั้งหมดหมวดหมู่ของคอนเทนเนอร์นี้จะสําเนาไปยังลูกค้าที่เชื่อมต่อทั้งหมดและมักจะมีวัตถุ 3D และวัตถุที่เกี่ยวข้อง LocalScriptวัตถุทั้งหมดที่คุณเก็บไว้ในคอนเทนเนอร์เหล่านี้จะไม่ยั่งยืนในระหว่างเซสชันและรีเซ็ตทุกครั้งที่ไคลเอนต์เข้าร่วมใหม่คุณสามารถใส่วัตถุในคอนเทนเนอร์เหล่านี้เช่น GUI ของผู้เล่น สคริปต์ด้านลูกค้า และวัตถุอื่นๆ ที่เกี่ยวข้องกับลูกค้าเท่านั้น
เมื่อไคลเอนต์เชื่อมต่อกับเซิร์ฟเวอร์ บริการคอนเทนเนอร์ Players จะฟังผู้ใช้ที่เข้าร่วมสถานที่ของคุณและสร้างวัตถุ Player สำหรับแต่ละไคลเอนต์เซิร์ฟเวอร์คัดลอกวัตถุจากคอนเทนเนอร์ลูกค้าในโมเดลข้อมูลแก้ไขไปยังตำแหน่งที่เหมาะสมในโมเดลข้อมูลระหว่างการทำงานภายในวัตถุ Playersตารางต่อไปนี้อธิบายถึงคอนเทนเนอร์เดิมที่อยู่ในคอนเทนเนอร์และคอนเทนเนอร์ที่เกิดขึ้นซึ่งพวกเขาถูกคัดลอกไปยังไคลเอนต์:
แก้ไขโมเดลข้อมูล | โมเดลข้อมูลเวลาทำงาน | บันทึก |
---|---|---|
StarterPack | ผู้เล่น.กระเป๋าสะพายหลัง | สคริปต์ที่ตั้งค่าสินค้าคงคลังของผู้เล่นและโดยทั่วไปมีวัตถุ Tool แต่มักจะมีสคริปต์ท้องถิ่นด้วยเช่นกัน |
StarterGui | ผู้เล่น.PlayerGui | สคริปที่สามารถจัดการ GUI ท้องถิ่นของผู้เล่นได้เมื่อผู้เล่นเกิดใหม่ เนื้อหาของ PlayerGui จะถูกล้างเซิร์ฟเวอร์คัดลอกวัตถุภายใน StarterGui ไปยัง PlayerGui |
StarterPlayerScripts | สคริปต์ผู้เล่น.PlayerScripts | สคริปต์จุดประสงค์ทั่วไปสำหรับไคลเอนต์ตัวอย่างเช่น หากคุณต้องการสร้างเอฟเฟกต์พิเศษบนไคลเอนต์เมื่อตรงตามเงื่อนไขบางอย่าง คุณสามารถวางสคริปต์ท้องถิ่นในคอนเทนเนอร์นี้เพื่อทำเช่นนั้นเซิร์ฟเวอร์ไม่สามารถเข้าถึงคอนเทนเนอร์นี้ได้ |
StarterCharacterScripts | ผู้เล่น.ตัวละคร | สคริปต์ที่ถูกคัดลอกไปยังไคลเอนต์เมื่อพวกมันเกิด สคริปต์เหล่านี้จะไม่ยังคงอยู่เมื่อผู้เล่นเกิดใหม่ |
ReplicatedFirst | เนื้อหาของคอนเทนเนอร์นี้จะถูกสําเนาไปยังลูกค้าทั้งหมด (แต่ไม่กลับไปที่เซิร์ฟเวอร์) ก่อนสิ่งอื่นใด |
แชท
บริการ TextChat
TextChatService แทนบริการที่จัดการภารกิจแชทข้อความที่หลากหลายในประสบการณ์ เช่น การจัดการช่อง การตกแต่งข้อความ การกรองข้อความ การสร้างคําสั่ง และการพัฒนาอินเทอร์เฟซแชทที่กําหนดเอง
สำหรับข้อมูลเพิ่มเติม ดู ระบบแชทข้อความในประสบการณ์
บริการแชทเสียง
VoiceChatService แทนที่คุณสมบัติการแชทเสียงแบบใกล้ชิดที่จำลองการสื่อสารที่เป็นจริงตามความใกล้ชิดที่คุณมีกับผู้ใช้รายอื่นคุณสามารถใช้บริการนี้เพื่อสลับคุณสมบัติเปิดและปิด
สำหรับข้อมูลเพิ่มเติม ดู การแชทเสียง
โฟลเดอร์และรูปแบบ
มีสองวิธีหลักในการจัดกลุ่มวัตถุในโมเดลข้อมูล: โฟลเดอร์ และ โมเดล ทั้งสองเป็นคอนเทนเนอร์สำหรับวัตถุ แต่มีวัตถุประสงค์ที่แตกต่างกัน
- โฟลเดอร์ เหมาะสำหรับเก็บส่วนของสภาพแวดล้อม เช่น ล็อบบี้หรือสนามรบ
- รูปแบบ ใช้สำหรับชุดของวัตถุ เช่น ชุดโต๊ะที่มีเก้าอี้ โต๊ะ และโคมไฟเพื่อจัดระเบียบชุดที่ซับซ้อนมากขึ้น วางโมเดลภายในโมเดล
คุณควรตั้งชื่อวัตถุของคุณอย่างครอบคลุมเสมอ ซึ่งทำให้ง่ายต่อการค้นหาและแก้ไขวัตถุในภายหลังหากจำเป็น

