เกมส่วนใหญ่อนุญาตให้ผู้เล่นใช้ Avatar ของ Roblox ของตนเอง แม้ว่าเกมบางเกมจะมีระบบการปรับแต่งภายในเกมเช่นเทมเพลต UGC Homestore เกมอื่น ๆ จะทำการ ปรับเปลี่ยน Avatar ของผู้เล่นในวิธีที่จำกัด เช่น หมวก ปีก หรืออุปกรณ์เสริมที่ตรงตามแนวเกม
เพื่อสร้างเกมที่ไม่ซ้ำกันซึ่งเปลี่ยนแปลงรูปลักษณ์ของผู้ใช้ คุณสามารถปรับแต่งคุณสมัติตัวละครเริ่มต้นผ่าน การตั้งค่า Avatar หรือ การปรับแต่งรูปลักษณ์แบบแมนวล
การตั้งค่า Avatar ทั่วไป
ไฟล์ ⟩ การตั้งค่าตัวละคร ของ Studio ช่วยให้คุณสามารถตั้งค่าคุณสมัติของตัวละครผู้เล่นในเกมของคุณได้อย่างรวดเร็ว การตั้งค่าเหล่านี้ใช้ทั่วโลกกับโมเดลตัวละครผู้เล่นทั้งหมดที่เข้าร่วมเกมของคุณ สำหรับการปรับแต่งตัวละครเฉพาะ เช่น โมเดลตัวละครที่ไม่ใช่ผู้เล่น ให้ดู การปรับแต่งรูปลักษณ์แบบแมนวล
ในหน้าต่างนี้ คุณสามารถตั้งค่าพรีเซ็ตต่าง ๆ สำหรับเสื้อผ้า อุปกรณ์เสริม ส่วนต่าง ๆ ของร่างกาย พฤติกรรมการชน การเคลื่อนไหว และอื่น ๆ เมื่อมีการแก้ไขการตั้งค่าเหล่านี้ จะมีการแสดงตัวอย่างการตั้งค่าที่ใช้ใน workspace
หากต้องการข้อมูลเพิ่มเติม ให้ดูที่ การตั้งค่า Avatar
การปรับแต่งรูปลักษณ์แบบแมนวล
โมเดลตัวละครมีวัตถุ Humanoid ที่ให้ลักษณะเฉพาะแก่โมเดล เช่น การเดิน กระโดด สวมใส่ไอเท็ม และมีปฏิสัมพันธ์กับสภาพแวดล้อม
คุณสามารถปรับเปลี่ยน Humanoid อย่างเป็นโปรแกรมโดยการอัปเดต HumanoidDescription ซึ่งรวมถึงโมเดลตัวละครของผู้เล่นหรือโมเดลตัวละครที่ไม่ใช่ผู้เล่นในเกมของคุณ
คุณสามารถปรับแต่งคุณสมัติตัวละครต่อไปนี้ในเกมของคุณโดยใช้ HumanoidDescription:
| คุณสมัติตัวละคร | คำอธิบาย |
|---|---|
| ขนาด | ค่าหมายเลขสำหรับลักษณะทางกายภาพ height, width, head, body type และ proportion วิธีนี้จะไม่ส่งผลกระทบต่อประเภท R6 |
| อุปกรณ์เสริม | ID ของสินทรัพย์ของ accessories ที่สวมใส่โดยตัวละคร |
| เสื้อผ้าคลาสสิก | ID ของสินทรัพย์ของ Shirt, Pants, และ ShirtGraphic รูปภาพที่คุณสามารถนำไปใช้กับตัวละคร |
| ส่วนต่าง ๆ ของร่างกาย | ID ของสินทรัพย์ของ Face, Head, Torso, RightArm, LeftArm, RightLeg และ LeftLeg ส่วนต่าง ๆ ของตัวละคร |
| สีร่างกาย | สี BodyColors ของส่วนต่าง ๆ ของตัวละคร |
| การเคลื่อนไหว | ID ของสินทรัพย์ของ Animations ที่คุณสามารถใช้กับตัวละคร |
ปรับแต่งตัวละครด้วย HumanoidDescription โดยใช้ขั้นตอนต่อไปนี้:
- สร้างคำบรรยาย จากตัวละครของผู้ใช้ ID ชุดเฉพาะ หรือจาก ID ผู้ใช้เฉพาะ
- ปรับปรุงคำบรรยาย เพื่อปรับแต่งคุณสมัติที่คุณต้องการนำไปใช้กับตัวละคร Humanoid
- นำคำบรรยายไปใช้ บนตัวละครเดี่ยว ตัวละครผู้เล่นทั้งหมด หรือแม้แต่ตัวละครที่เกิดขึ้นทั้งหมด
สร้าง HumanoidDescription
คุณสามารถสร้างอินสแตนซ์ HumanoidDescription ใหม่โดยตรงภายในลำดับชั้น Explorer หรือภายใน Script ด้วยโค้ดต่อไปนี้:
Create new HumanoidDescription instancelocal humanoidDescription = Instance.new("HumanoidDescription")
ในกรณีส่วนใหญ่ คุณควรใช้ HumanoidDescription ที่มีอยู่แทนที่จะเป็น HumanoidDescription ใหม่เริ่มต้น โดยการอ้างอิงถึงตัวละครผู้เล่นที่มีอยู่ ชุด Avatar หรือ ID ผู้ใช้
จากตัวละครผู้เล่น
ใช้ตัวอย่างโค้ดต่อไปนี้เพื่อสร้าง HumanoidDescription ใหม่ตามคุณสมัติปัจจุบันของตัวละครผู้เล่น:
Generate a HumanoidDescription from a player characterlocal humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")local humanoidDescription = Instance.new("HumanoidDescription")if humanoid thenhumanoidDescription = humanoid:GetAppliedDescription()end
จากชุดที่มีอยู่
ใช้ตัวอย่างโค้ดต่อไปนี้เพื่อสร้าง HumanoidDescription จาก ID ชุด โดยใช้ Players.GetHumanoidDescriptionFromOutfitID:
Generate a HumanoidDescription from an Outfit IDlocal Players = game:GetService("Players")local outfitId = 480059254local humanoidDescriptionFromOutfit = Players:GetHumanoidDescriptionFromOutfitId(outfitId)
จากผู้ใช้เฉพาะ
ใช้ตัวอย่างโค้ดต่อไปนี้เพื่อสร้าง HumanoidDescription จาก ID ผู้ใช้ โดยใช้ Players:GetHumanoidDescriptionFromUserId():
Generate a HumanoidDescription from a user IDlocal Players = game:GetService("Players")local userId = 491243243local humanoidDescriptionFromUser = Players:GetHumanoidDescriptionFromUserId(userId)
ปรับปรุง HumanoidDescription
เพื่อปรับแต่งคุณสมัติของ HumanoidDescription ให้ตั้งค่าโดยตรงใน HumanoidDescription หรือใช้วิธีการที่กำหนดไว้ก่อนที่จะนำ HumanoidDescription ไปใช้กับตัวละคร
ตัวอย่างโค้ดต่อไปนี้แสดงตัวอย่างการตั้งค่าประเภทต่าง ๆ ของคุณสมัติ HumanoidDescription:
Update various HumanoidDescription propertieslocal humanoidDescription = Instance.new("HumanoidDescription")humanoidDescription.HatAccessory = "2551510151,2535600138"humanoidDescription.BodyTypeScale = 0.1humanoidDescription.ClimbAnimation = 619521311humanoidDescription.Face = 86487700humanoidDescription.GraphicTShirt = 1711661humanoidDescription.HeadColor = Color3.new(0, 1, 0)
ตั้งค่าอุปกรณ์เสริมหลายรายการ
สำหรับการเปลี่ยนแปลงอุปกรณ์เสริมแบบเลเยอร์หรือแบบกลุ่ม คุณสามารถใช้ HumanoidDescription:SetAccessories() เพื่อทำการอัปเดตที่เกี่ยวข้องกับอุปกรณ์เสริม ตัวอย่างโค้ดต่อไปนี้เพิ่มเสื้อกันหนาวแบบเลเยอร์และแจ็คเก็ตตามลำดับใน HumanoidDescription:
Change multiple accessories at oncelocal humanoidDescription = Instance.new("HumanoidDescription")local accessoryTable = {{Order = 1,AssetId = 6984769289,AccessoryType = Enum.AccessoryType.Sweater},{Order = 2,AssetId = 6984767443,AccessoryType = Enum.AccessoryType.Jacket}}humanoidDescription:SetAccessories(accessoryTable, false)
นำ HumanoidDescription ไปใช้
นำ HumanoidDescription ไปใช้กับ Humanoid ตัวละครเฉพาะในเกมของคุณด้วย Humanoid:ApplyDescription() หรือ Humanoid.LoadCharacterWithHumanoidDescription
บนตัวละครเดี่ยว
ApplyDescription() สามารถเป้าหมายไปยัง Humanoid ใดก็ได้ ใช้โค้ดต่อไปนี้เพื่อเพิ่มแว่นตากันแดดและทรงตัวใหม่ให้กับตัวละครผู้เล่น:
Update HumanoidDescription for a specific player characterlocal humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")if humanoid thenlocal descriptionClone = humanoid:GetAppliedDescription()descriptionClone.Torso = 86500008-- อนุญาตให้สินทรัพย์อุปกรณ์เสริมหลาย ๆ ชิ้นอยู่ในสตริงที่คั่นด้วยลูกน้ำdescriptionClone.FaceAccessory = descriptionClone.FaceAccessory .. ",2535420239"-- นำ "descriptionClone" ที่ปรับแต่งมาใช้กับ humanoidhumanoid:ApplyDescription(descriptionClone)end
บนตัวละครผู้เล่นทั้งหมด
ใช้ตัวอย่างโค้ดต่อไปนี้เพื่อปรับแต่ง HumanoidDescription ให้กับผู้เล่นทั้งปัจจุบันในเกม:
Update HumanoidDescription for all current player characterslocal Players = game:GetService("Players")for _, player in Players:GetPlayers() dolocal humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")if humanoid then-- สร้าง HumanoidDescriptionlocal humanoidDescription = Instance.new("HumanoidDescription")humanoidDescription.HatAccessory = "2551510151,2535600138"humanoidDescription.BodyTypeScale = 0.1humanoidDescription.ClimbAnimation = 619521311humanoidDescription.Face = 86487700humanoidDescription.GraphicTShirt = 1711661humanoidDescription.HeadColor = Color3.new(0, 1, 0)humanoid:ApplyDescription(humanoidDescription)endend
บนตัวละครที่กำลังเกิดขึ้นทั้งหมด
ใช้ตัวอย่างโค้ดต่อไปนี้เพื่อตั้งค่า HumanoidDescription เฉพาะสำหรับตัวละครผู้เล่นที่กำลังเกิดขึ้นทั้งหมด:
Update HumanoidDescription for all spawning characters
local Players = game:GetService("Players")
-- หยุดการเกิดอัตโนมัติเพื่อให้สามารถทำได้ใน callback "PlayerAdded"
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- สร้าง HumanoidDescription
local humanoidDescription = Instance.new("HumanoidDescription")
humanoidDescription.HatAccessory = "2551510151,2535600138"
humanoidDescription.BodyTypeScale = 0.1
humanoidDescription.ClimbAnimation = 619521311
humanoidDescription.Face = 86487700
humanoidDescription.GraphicTShirt = 1711661
humanoidDescription.HeadColor = Color3.new(0, 1, 0)
-- สร้างตัวละครด้วย HumanoidDescription
player:LoadCharacterWithHumanoidDescription(humanoidDescription)
end
-- เชื่อมโยงเหตุการณ์ "PlayerAdded" ไปยังฟังก์ชัน "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)
หากอินสแตนซ์ HumanoidDescription ถูกสร้างใน Explorer และถูกจัดกลุ่มไปที่ workspace ให้ใช้ตัวอย่างโค้ดต่อไปนี้ใน Script เพื่อเข้าถึงอินสแตนซ์ใน workspace:
local Players = game:GetService("Players")
-- หยุดการเกิดอัตโนมัติเพื่อให้สามารถทำได้ใน callback "PlayerAdded"
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- สร้างตัวละครด้วย "workspace.StudioHumanoidDescription"
player:LoadCharacterWithHumanoidDescription(workspace.StudioHumanoidDescription)
end
-- เชื่อมโยงเหตุการณ์ "PlayerAdded" ไปยังฟังก์ชัน "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)
เสื้อผ้าแบบเลเยอร์บนโมเดลที่ไม่ใช่ R15
อุปกรณ์เสริมที่มีกรอบ เช่น เสื้อผ้าแบบเลเยอร์ ใช้ WrapTarget และ WrapLayer เพื่อยืดและห่อหุ้มโมเดล Model เปลือกเสื้อผ้าแบบเลเยอร์สามารถทำงานร่วมกับ ตัวละคร R15 ของ Roblox มาตรฐานและโมเดลที่ไม่ใช่ R15
การใช้งานเสื้อผ้าแบบเลเยอร์ที่มีการปรับแต่ง เช่น โมเดลที่ใช้แผนที่ UV ของกรอบเฉพาะ ไม่สามารถอัปโหลดและเผยแพร่ไปยัง Marketplace สำหรับข้อมูลเพิ่มเติม ดูที่ ข้อกำหนดเสื้อผ้าแบบเลเยอร์
ไม่ว่าคุณจะใช้อุปกรณ์เสริมแบบเลเยอร์บนโครงสร้างตัวละคร R15 หรือใช้โครงสร้างที่กำหนดเอง ให้แน่ใจว่าอุปกรณ์เสริมและร่างกายของคุณรวมถึงสิ่งต่อไปนี้:
- โมเดลเป้าหมาย ซึ่งปกติคือร่างกาย มีส่วนประกอบ WrapTarget บน mesh ที่โมเดลเพิ่มอื่น ๆ ถูกตั้งใจให้ห่อหุ้ม
- โมเดลการเลเยอร์ ซึ่งปกติคือเสื้อผ้าหรืออุปกรณ์เสริม มีส่วนประกอบ WrapLayer บน mesh ที่มีจุดประสงค์เพื่อห่อหุ้มโมเดลเป้าหมาย
- กรอบด้านนอกของโมเดลเป้าหมาย และ กรอบด้านในและด้านนอกของโมเดลการเลเยอร์ ต้องมีแผนที่ UV ที่ตรงกัน
- เส้นขอบที่ตรงกันบนกรอบเป้าหมายควรมี UVs เดียวกันกับจุดกระดุมเหล่านั้นบนกรอบเลเยอร์
- หากโมเดลเป้าหมายของคุณเป็นทั้ง R15 และรวมถึง Humanoid การเชื่อมนี้จะถูกสร้างโดยอัตโนมัติ