Roblox สำหรับนักพัฒนา Unreal

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

หน้านี้มีข้อมูลที่จะช่วยให้นักพัฒนาที่มีประสบการณ์จาก Unreal Engine เริ่มต้นใช้งาน Roblox รวมถึงการชี้แนะพื้นฐาน การเปรียบเทียบแนวคิด และความแตกต่างที่สำคัญระหว่างสองแพลตฟอร์ม

การชี้แนะ

ส่วนติดต่อผู้ใช้ของ Unreal Editor พร้อมการทำเครื่องหมายเพื่อแสดงหน้าต่างและแผงที่ต่างๆ ส่วนติดต่อผู้ใช้ของ Roblox Studio พร้อมการทำเครื่องหมายเพื่อแสดงหน้าต่างและแผงที่ต่างๆ

Outliner ของ Unreal และ Explorer ของ Roblox Studio เป็นหน้าต่างหลักสำหรับจัดระเบียบองค์ประกอบในพื้นที่ 3D ทั้งคู่แสดงลำดับชั้นของวัตถุและโฟลเดอร์ อย่างไรก็ตาม Outliner มีโครงสร้างที่แบนกว่าและไม่ชัดเจน และจะแสดงเพียง Actors เท่านั้น ส่วนหน้าต่าง Explorer มีโครงสร้างที่ลุ่มลึกและเข้มงวด แสดงวัตถุทั้งหมดเป็นส่วนหนึ่งของลำดับชั้น แม้จะเป็นวัตถุที่ถือว่าเป็นส่วนประกอบใน Unreal

Asset Manager ของ Roblox Studio และ Toolbox จะทับซ้อนกับ Content Browser ของ Unreal Asset Manager ช่วยให้คุณจัดการสินทรัพย์ทั้งหมดภายในเกมของคุณ ขณะที่ Toolbox ช่วยให้คุณเข้าถึงสินทรัพย์ที่คุณได้เผยแพร่แล้ว Toolbox ยังช่วยให้คุณค้นหา Creator Store สำหรับสินทรัพย์จาก Roblox หรือชุมชน คล้ายกับ Marketplace ของ Unreal Engine แต่เข้าถึงได้โดยตรงจากส่วนติดต่อผู้ใช้ของ Studio

ความแตกต่างเชิงปรัชญา

Roblox เป็น "เอนจินจำลอง" มากกว่าที่จะเป็นเอนจินเกมแบบดั้งเดิม Actors ใน Unreal และ Parts ใน Roblox ทั้งคู่ทำหน้าที่เป็นบล็อกพื้นฐาน แต่ในทางปฏิบัติแล้ว ทั้งสองนั้นแตกต่างกันมาก:

  • การแสดงผล: Actors ใน Unreal เป็นแนวคิดระดับสูงสำหรับวัตถุใดๆ ในระดับหนึ่ง ขณะที่ Parts ใน Roblox ออกแบบมาเพื่อแสดงวัตถุทางกายภาพเช่นบล็อกไม้และลูกบอลพลาสติก
  • ฟิสิกส์: เพื่อทำการจำลองฟิสิกส์ใน Unreal คุณจะต้องเปิดใช้งานฟิสิกส์ภายในส่วนประกอบบางอย่าง (เช่น StaticMeshComponent) หรือโดยการเพิ่มส่วนประกอบให้กับ Actors เช่นข้อจำกัดทางฟิสิกส์ ใน Roblox ฟิสิกส์จะถูกสร้างเข้าสู่วัตถุประเภท Parts; เอนจินจะจัดการและตอบสนองต่อการโต้ตอบโดยอัตโนมัติ

คุณจะเห็นความแตกต่างได้ทันทีหากคุณสร้าง Actor และ Part Actor มีข้อมูลเพียงแค่ตำแหน่ง การหมุน และขนาด ขณะที่ Part มีข้อมูลเดียวกันนี้ รวมทั้งวัสดุและสี ค่าของการสะท้อนและความโปร่งใส มวลและรูปทรง และอีกมากมาย ทั้งสองเริ่มมีคุณสมบัติที่คล้ายกันก็ต่อเมื่อคุณเปรียบเทียบ StaticMeshActor ใน Unreal กับ MeshPart ใน Roblox

ตัวอย่าง Unreal actor ในแผงรายละเอียด
แผงรายละเอียดของ Unreal Editor
ตัวอย่าง Roblox part ในหน้าต่าง Properties
หน้าต่าง Properties ของ Roblox Studio

การเปรียบเทียบที่มีประโยชน์อีกอย่างคือ Actor ของ Unreal กับ Model ของ Roblox โมเดลทำหน้าที่เป็นภาชนะสำหรับการรวมกลุ่มของส่วนต่างๆ ในลักษณะเดียวกับที่ Actors ใน Unreal เป็นภาชนะสำหรับส่วนประกอบ คุณกำหนดให้หนึ่งในส่วนของโมเดลเป็น ส่วนหลัก เพื่อกำหนดจุดหมุน โมเดลยังสามารถถือสคริปต์ อนิเมชั่น เอฟเฟ็กต์เสียง คำแนะนำ ข้อจำกัด ตัวปล่อยอนุภาค และอื่นๆ

ตัวอย่างเช่น Actor ของ Unreal อาจมี NiagaraComponent ที่ใช้ตัวปล่อยหลายตัวเพื่อบรรลุเอฟเฟ็กต์ตามที่ต้องการ โมเดลที่มีลักษณะ รูปร่าง ข้อจำกัดทางฟิสิกส์เพื่อเพิ่มความยืดหยุ่น และสคริปต์สำหรับการโต้ตอบของผู้เล่น ใน Outliner คุณจะเห็น Actor รายเดียวชื่อ SpringyFireball

ใน Roblox โมเดลที่เทียบเท่ากับ SpringyFireball ในหน้าต่าง Explorer อาจดูประมาณนี้:


Model
|- ParticleEmitter
|- MeshPart
|- SpringConstraint
|- ClickDetector
| |- Script

ปรัชญาการใช้ฟิสิกส์เป็นค่าเริ่มต้นของ Roblox ยังคงต่อยอดไปยังขั้นตอนการสร้างโมเดล 3D ใน Roblox การเชื่อมหลายส่วนเข้าด้วยกันเป็น assembly เป็นวิธีที่ดีในการสร้างสิ่งต่างๆ ได้อย่างรวดเร็ว เนื่องจาก Roblox ถือว่าชิ้นส่วนที่เชื่อมต่อกันเป็นร่างกายที่แข็งแกร่งเดียว วิธีการนี้ไม่เหมาะสมใน Unreal

แทนที่จะใช้หน่วยมาตรฐานสำหรับความยาวและมวล Roblox ใช้หน่วยเชิงแนวคิดเรียกว่า studs และ Roblox Mass Units (RMUs) สำหรับการแปลงและคำแนะนำเกี่ยวกับการใช้งานในรูปแบบเมตริกโดยประมาณ โปรดดูที่ Units

ตำแหน่งสำคัญ

เกมใน Roblox เป็นหลายผู้เล่นตามค่าเริ่มต้น ดังนั้น Roblox Studio จึงรวมสถานที่จัดเก็บที่แตกต่างกันมากมายซึ่งมีพฤติกรรมเฉพาะ สำหรับข้อมูลเพิ่มเติม โปรดดูที่ client-server runtime และ object organization

LocationDescription
Workspaceแทนโลก 3D ของเกม สถานที่นี้ทำงานได้ดีสำหรับสคริปต์ของเซิร์ฟเวอร์ที่เชื่อมต่อโดยตรงกับวัตถุและควบคุมพฤติกรรมของมัน
ReplicatedFirstมีวัตถุที่ทำซ้ำไปยังไคลเอนต์ก่อนสิ่งอื่นใด สถานที่นี้เหมาะสำหรับเซ็ตวัตถุและสคริปต์ของไคลเอนต์ที่ต้องใช้ขั้นต่ำที่สุดเพื่อแสดงหน้าจอโหลด
ReplicatedStorageมีวัตถุที่ถูกทำซ้ำไปยังทั้งไคลเอนต์และเซิร์ฟเวอร์ สถานที่นี้เหมาะสำหรับ ModuleScripts ที่คุณต้องการใช้ทั้งในเซิร์ฟเวอร์และไคลเอนต์ LocalScripts จะไม่ทำงานจากสถานที่นี้ แต่ Scripts ที่มี RunContext เป็น Client จะทำงาน
ServerScriptServiceมีสคริปต์ของเซิร์ฟเวอร์ สถานที่นี้เหมาะสำหรับสคริปต์ที่ต้องการเข้าถึงฟังก์ชันการทำงานหรือวัตถุฝั่งเซิร์ฟเวอร์ เช่น เกมลอจิกและคลาวด์สโตเรจ
ServerStorageมีวัตถุฝั่งเซิร์ฟเวอร์ สถานที่นี้เหมาะสำหรับวัตถุขนาดใหญ่ที่ไม่จำเป็นต้องถูกทำซ้ำไปยังไคลเอนต์ในทันทีเมื่อพวกเขาเข้าร่วมเกม สคริปต์จะไม่ทำงานจากสถานที่นี้ แต่คุณสามารถเก็บ ModuleScripts ฝั่งเซิร์ฟเวอร์ที่นี่ได้
StarterPlayerStarterCharacterScriptsมี LocalScripts ที่ทำงานเมื่ออักขระเกิดขึ้น
StarterPlayerStarterPlayerScriptsมี LocalScripts ที่ใช้งานทั่วไปซึ่งทำงานเมื่อผู้เล่นเข้าร่วมเกม
StarterGuiมีองค์ประกอบ GUI ที่ไคลเอนต์แสดงเมื่อโหลดเกม LocalScripts สามารถทำงานจากสถานที่นี้ สถานที่นี้เหมาะสำหรับสคริปต์ที่ปรับเปลี่ยนอินเทอร์เฟซผู้ใช้ของเกม เช่น การเพิ่มปุ่ม เมนู และป๊อปอัป
StarterPackโดยทั่วไปจะมีเพียง Tools แต่ก็สามารถรวมถึง LocalScripts สำหรับตั้งค่ากระเป๋าผู้เล่นได้

การเขียนสคริปต์

Roblox games support three different types of Luau scripts:

  • Client scripts

    สคริปต์เหล่านี้ทำงานบนเครื่องลูกข่าย และเซิร์ฟเวอร์ไม่มีความสามารถในการมองเห็นพฤติกรรมของพวกเขา ด้วยเหตุผลด้านความเข้ากันได้ สคริปต์เหล่านี้สามารถอยู่ในรูปแบบของ LocalScripts หรือ Scripts โดยมีค่า RunContext เป็น Client สคริปต์ลูกข่ายมักเก็บไว้ใน ReplicatedStorage, StarterPlayerScripts, หรือ StarterCharacterScripts

  • Server scripts

    สคริปต์เหล่านี้ทำงานบนเซิร์ฟเวอร์ และลูกข่ายไม่มีความสามารถในการมองเห็นพฤติกรรมของพวกเขา สคริปต์เซิร์ฟเวอร์มีค่า RunContext เป็น Server และมักเก็บไว้ใน ServerScriptService ซึ่งเนื้อหาของมันจะไม่ถูกกระจายไปยังลูกข่าย

  • Module scripts

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

Unreal ไม่มีแนวคิดของประเภทสคริปต์ที่แตกต่างกัน หากคุณเลือกที่จะทำเกมหลายผู้เล่น คุณต้องเขียนโค้ดเพิ่มเติมเพื่อทำให้สถานะของเกมซิงโครไนซ์ระหว่างเซิร์ฟเวอร์และไคลเอนต์

ใน Unreal ความสามารถหลายอย่างของเอนจินสามารถเข้าถึงได้โดยการขยายคลาสในตัวเช่น UObject, ACharacters, ULevel และ UWorld ใน C++ หรือ Blueprint Unreal รองรับเหตุการณ์ที่กำหนดเอง แต่หลายคลาสรวมถึงเหตุการณ์ที่เอนจินเรียกใช้โดยอัตโนมัติเป็นส่วนหนึ่งของวัฏจักรชีวิตตามธรรมชาติของระดับ

เปรียบเทียบกับระบบ "การกระตุ้น" ของ Unreal สคริปต์ของ Roblox จะเป็นระบบที่ขึ้นอยู่กับเหตุการณ์มากกว่า คุณสามารถเข้าถึงความสามารถของเอนจินที่คล้ายกันได้โดยการสมัครสมาชิกบริการและฟังการอัปเดต

C++ และ Luau

สำหรับการเขียนสคริปต์ Unreal ใช้ C++ ในขณะที่ Roblox ใช้ Luau ซึ่งเป็นภาษาสคริปต์ที่ได้จาก Lua 5.1

เมื่อเปรียบเทียบกับ Luau C++ มีข้อได้เปรียบด้านประสิทธิภาพโดยรวม ซึ่งอาจมีความสำคัญหรือตรงกันข้ามในประเภทเกมที่คุณต้องการสร้าง Luau มีการกำหนดประเภทโดยค่อยเป็นค่อยไปและมีไวยกรณ์ที่น้อยลง ในโปรเจ็กใหญ่ๆ อย่างไรก็ตาม การกำหนดประเภทแบบค่อยเป็นค่อยไปอาจทำให้เกิดประเภทของข้อผิดพลาดที่ภาษาแบบเข้มงวดเช่น C++ หลีกเลี่ยง ดังนั้นควรพิจารณาเปิดใช้งาน การตรวจสอบประเภทอย่างเข้มงวด ในสคริปต์ Roblox

Unreal ยังมีระบบการเขียนสคริปต์แบบภาพที่เรียกว่า Blueprints Roblox มีปลั๊กอินของบุคคลที่สามที่ให้ฟังก์ชันการทำงานที่คล้ายกัน แต่ไม่มีระบบที่เปรียบเทียบกันในตัว

ตัวอย่างโค้ด Luau

ตัวอย่างโค้ด Luau ต่อไปนี้แสดงให้เห็นถึงวิธีการที่หลังจากผู้เล่นสวมอุปกรณ์ที่มีเบ็ดตกปลา ให้ฟังการป้อนข้อมูลของผู้ใช้ (ในกรณีนี้คือปุ่ม E) และเรียกใช้ฟังก์ชันเพิ่มเติม:


local ContextActionService = game:GetService("ContextActionService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- รับสคริปต์โมดูลจาก ReplicatedStorage ที่คืนค่าฟังก์ชันเดียว
local performSomeAction = require(ReplicatedStorage.performSomeAction)
-- สมมติว่าสคริปต์นี้เป็นลูกของเบ็ดตกปลา
local fishingPole = script.Parent
local ACTION_CAST = "Cast"
-- ตรวจสอบว่าปุ่มถูกกดลง จากนั้นเรียกใช้ฟังก์ชันอื่น
local function castLine(_actionName, inputState, _inputObject)
if inputState == Enum.UserInputState.Begin then
performSomeAction()
end
end
-- เริ่มทำงานเมื่อผู้เล่นสวมเบ็ดตกปลา
fishingPole.Equipped:Connect(function()
ContextActionService:BindAction(ACTION_CAST, castLine, true, Enum.KeyCode.E)
end)
-- ปิดการทำงานเมื่อผู้เล่นถอดเบ็ดตกปลา
fishingPole.Unequipped:Connect(function()
ContextActionService:UnbindAction(ACTION_CAST)
end)

สคริปต์ของ Roblox สามารถมีความกระชับได้เพราะ Roblox มีสมมติฐานที่สร้างไว้มากมาย: Player ที่มีตัวเชื่อมต่อ Humanoid กับเซิร์ฟเวอร์และสามารถติดตั้ง Tools สมมติฐานเหล่านี้ไม่มีใน Unreal ดังนั้นการดำเนินการจะต่างออกไปมาก

สินทรัพย์

Unreal และ Roblox รองรับการนำเข้าชิ้นงานและโมเดลที่กำหนดเองในรูปแบบ .fbx ชนิดของสินทรัพย์บางประเภทอาจต้องการการกำหนดค่าเฉพาะและการตั้งค่าส่งออกจากซอฟต์แวร์โมเดลของคุณ สำหรับข้อมูลเพิ่มเติม โปรดดูที่หน้าเหล่านี้:

ใน Unreal สินทรัพย์จะนำเข้าไปในไดเรกทอรี Content ซึ่งมองเห็นได้ใน Content Browser ใน Roblox สินทรัพย์จะนำเข้าไปใน Workspace และไปยัง Toolbox หรือ Asset Manager

Roblox ยังมี ปลั๊กอิน Blender แบบโอเพนซอร์ส เพื่อช่วยในการนำเข้า ซึ่งคล้ายกับฟีเจอร์ Send to Unreal ของ Blender Tools

การเปลี่ยนแปลง

การแปลงของ Unreal Engine และ CFrames ของ Roblox มีวัตถุประสงค์ที่คล้ายกันในการแสดงการแปลง 3 มิติของวัตถุ:

  • ทั้งการแปลงและ CFrames แสดงตำแหน่งและการหมุนของวัตถุในพื้นที่ 3 มิติ การแปลงรวมถึงขนาด ในขณะที่ Roblox ใช้คุณสมบัติ BasePart.Size ซึ่งไม่เป็นส่วนหนึ่งของ CFrame
  • ทั้งคู่สนับสนุนการคูณสำหรับการแปลงที่ซับซ้อนและมีวิธีการในตัวสำหรับการจัดการอื่นๆ

ความร่วมมือ

ใน Unreal คุณทำงานร่วมกันกับระบบควบคุมเวอร์ชันเช่น Perforce หรือ SVN โดยทั่วไปผ่านส่วนติดต่อผู้ใช้ในตัวของ Unreal ระบบควบคุมเวอร์ชันเหล่านี้จะใช้โมเดล "เช็คเอาท์" ที่รวมศูนย์ซึ่งจะล็อกไฟล์เมื่อมีคนหนึ่งคนทำงานกับไฟล์นั้น

ไฟล์ใน Roblox จะอยู่ในระบบคลาวด์ (แม้ว่าคุณจะสามารถส่งออกสำเนาได้) ดังนั้น Roblox Studio จึงมีเวิร์กโฟลว์การทำงานร่วมกันในตัวสำหรับการแก้ไขพร้อมกัน การจัดการกลุ่ม สิทธิ์ การร่างสคริปต์ และอื่นๆ โปรดดูที่ Collaboration

ปลั๊กอิน

คล้ายกับ Unreal Roblox Studio รองรับ ปลั๊กอิน ซึ่งสามารถทำให้กระบวนการพัฒนาง่ายขึ้นหรือลงลึกในหลายๆ ด้าน ปลั๊กอินมีให้บริการใน Creator Store เช่นเดียวกับสินทรัพย์ โดยหลายอย่างฟรี

พจนานุกรม

UnrealRobloxหมายเหตุ
LevelPlace
ActorPart หรือ Modelดูที่ ความแตกต่างเชิงปรัชญา.
Blueprint ClassPackage
TransformCFrameCFrame ไม่รวมถึงข้อมูลขนาด ดูที่ Transforms.
OutlinerExplorer
Details panelProperties
Level Viewport3D viewport
Content BrowserAsset Manager หรือ Toolbox
Landscape ModeTerrain Editor
PlayerStartSpawnLocation
Output LogOutput
MarketplaceCreator Store
Menu barToolbar
PluginPlugin
©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ