โมเดลข้อมูล

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ทุกสถานที่จะถูกแทนที่ด้วยโมเดลข้อมูล ซึ่งเป็นลำดับชั้นของวัตถุที่อธิบายทุกอย่างเกี่ยวกับสถานที่โมเดลข้อมูลมีวัตถุทั้งหมดที่ประกอบขึ้นเป็นโลก 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 .
  • ไคลเอนต์ - คอนเทนต์และโลจิสติกสำหรับด้านไคลเอนต์, เช่น StarterPlayer และ StarterGui
  • แชท - คอนเทนเนอร์สำหรับวัตถุที่เปิดใช้งานคุณลักษณะการแชท เช่น VoiceChatService และ TextChatService

นอกจากนี้คุณยังสามารถจัดระเบียบวัตถุของคุณต่อไปด้วยวัตถุต่อไปนี้:

  • โฟลเดอร์ - 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 แทนที่คุณสมบัติการแชทเสียงแบบใกล้ชิดที่จำลองการสื่อสารที่เป็นจริงตามความใกล้ชิดที่คุณมีกับผู้ใช้รายอื่นคุณสามารถใช้บริการนี้เพื่อสลับคุณสมบัติเปิดและปิด

สำหรับข้อมูลเพิ่มเติม ดู การแชทเสียง

โฟลเดอร์และรูปแบบ

มีสองวิธีหลักในการจัดกลุ่มวัตถุในโมเดลข้อมูล: โฟลเดอร์ และ โมเดล ทั้งสองเป็นคอนเทนเนอร์สำหรับวัตถุ แต่มีวัตถุประสงค์ที่แตกต่างกัน

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

คุณควรตั้งชื่อวัตถุของคุณอย่างครอบคลุมเสมอ ซึ่งทำให้ง่ายต่อการค้นหาและแก้ไขวัตถุในภายหลังหากจำเป็น

The Explorer window with a demonstration of a folder organization structure.
วัตถุที่จัดระเบียบเป็น Folders
The Explorer window with a demonstration of a model organization structure in several services.
รูปแบบ "แผนที่" หลากหลายที่จะสลับกันระหว่าง Workspace และ ServerStorage