เกมส่วนใหญ่ให้ผู้เล่นสามารถใช้ภาพอวตาร์ Roblox ของตนเองได้ แม้ว่าบางเกมจะมีระบบปรับแต่งในเกม เช่น เทมเพลต UGC Homestore เกมอื่น ๆ ทำการ ปรับเปลี่ยน อวตาร์ของผู้เล่นในขอบเขตที่จำกัด เช่น หมวก ปีก หรืออุปกรณ์เสริมที่ตรงกับแนวเกม
เพื่อสร้างเกมที่เป็นเอกลักษณ์ที่เปลี่ยนแปลงรูปลักษณ์ของผู้ใช้ คุณสามารถปรับแต่งคุณสมัติตัวละครเริ่มต้นได้ผ่าน การตั้งค่าอวตาร์ หรือ ปรับเปลี่ยนรูปลักษณ์ด้วยตนเอง
การตั้งค่าอวตาร์ทั่วโลก
เมนู ไฟล์ ⟩ การตั้งค่าอวตาร์ ของ Studio ช่วยให้คุณสามารถตั้งค่าคุณสมัติตัวละครของผู้เล่นทั่วโลกในเกมของคุณได้อย่างรวดเร็ว การตั้งค่าเหล่านี้จะมีผลทั่วโลกกับโมเดลตัวละครของผู้เล่นทุกคนที่เข้าร่วมเกมของคุณ หากต้องการปรับเปลี่ยนตัวละครเฉพาะ เช่น โมเดลตัวละครที่ไม่ใช่ผู้เล่น ให้ดูที่ ปรับเปลี่ยนรูปลักษณ์ด้วยตนเอง
ในหน้าต่างนี้ คุณสามารถตั้งค่าพรีเซ็ตต่าง ๆ สำหรับเสื้อผ้า อุปกรณ์เสริม ส่วนต่าง ๆ ของร่างกาย พฤติกรรมการชนกัน การเคลื่อนไหว และอื่น ๆ เมื่อแก้ไขการตั้งค่าเหล่านี้ จะมีการแสดงตัวอย่างการตั้งค่าที่ใช้ในพื้นที่ทำงาน
สำหรับข้อมูลเพิ่มเติม โปรดดูที่ การตั้งค่าอวตาร์.
ปรับเปลี่ยนรูปลักษณ์ด้วยตนเอง
โมเดลตัวละครมีวัตถุ Humanoid ที่ให้ลักษณะพิเศษกับโมเดล เช่น การเดิน กระโดด สวมใส่ไอเท็ม และโต้ตอบกับสิ่งแวดล้อม
คุณสามารถปรับเปลี่ยน Humanoid ได้อย่างรวดโดยการอัปเดต HumanoidDescription ซึ่งรวมถึงโมเดลตัวละครของผู้เล่นหรือโมเดลตัวละครที่ไม่ใช่ผู้เล่นในเกมของคุณ
คุณสามารถปรับแต่งคุณสมัติตัวละครต่อไปนี้ในเกมของคุณโดยใช้ HumanoidDescription:
| คุณสมัติตัวละคร | คำอธิบาย |
|---|---|
| ขนาด | ค่าตัวเลขสำหรับลักษณะทางกายภาพ สูง, กว้าง, ศีรษะ, ประเภทตัว, และ สัดส่วน. สิ่งนี้จะไม่ส่งผลต่อรูปแบบร่างกาย R6. |
| อุปกรณ์เสริม | รหัสทรัพย์สินของ อุปกรณ์เสริม ที่ติดตั้งโดยตัวละคร. |
| เสื้อผ้าแบบคลาสสิก | รหัสทรัพย์สินของ Shirt, Pants, และ ShirtGraphic ที่สามารถนำไปใช้กับตัวละคร. |
| ส่วนต่าง ๆ ของร่างกาย | รหัสทรัพย์สินของส่วนต่าง ๆ ของตัวละคร ใบหน้า, ศีรษะ, ลำตัว, แขนขวา, แขนซ้าย, ขาขวา และ ขาซ้าย. |
| สีของร่างกาย | สี BodyColors ของส่วนต่าง ๆ ของตัวละคร. |
| การเคลื่อนไหว | รหัสทรัพย์สินของ การเคลื่อนไหว ที่คุณสามารถใช้กับตัวละคร. |
ปรับแต่งตัวละครด้วย HumanoidDescription โดยทำตามขั้นตอนต่อไปนี้:
- สร้างคำอธิบาย จากตัวละครของผู้ใช้ รหัสชุดเฉพาะ หรือจาก ID ผู้ใช้เฉพาะ
- ปรับแต่งคำอธิบาย เพื่อปรับเปลี่ยนคุณสมัติที่คุณต้องการใช้กับตัวละคร Humanoid.
- ใช้คำอธิบาย กับตัวละครเดียว ตัวละครของผู้เล่นทั้งหมด หรือแม้แต่ตัวละครที่เกิดขึ้นทั้งหมด
สร้าง HumanoidDescription
คุณสามารถสร้างอินสแตนซ์ใหม่ของ HumanoidDescription ได้โดยตรงในลำดับชั้น Explorer หรือภายใน Script ด้วยโค้ดต่อไปนี้:
local humanoidDescription = Instance.new("HumanoidDescription")ในกรณีส่วนใหญ่ คุณควรใช้ HumanoidDescription ที่มีอยู่แทนที่จะเป็น HumanoidDescription ใหม่โดยการอ้างอิงตัวละครของผู้เล่นที่มีอยู่ ชุดอวตาร์ หรือ ID ผู้ใช้
จากตัวละครของผู้เล่น
ใช้โค้ดตัวอย่างต่อไปนี้เพื่อสร้าง HumanoidDescription ใหม่ตามคุณสมัติปัจจุบันของตัวละครผู้เล่น:
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
local humanoidDescription = Instance.new("HumanoidDescription")
if humanoid then
humanoidDescription = humanoid:GetAppliedDescription()
endจากชุดที่มีอยู่
ใช้โค้ดตัวอย่างต่อไปนี้เพื่อสร้าง HumanoidDescription จาก ID ชุดโดยใช้ Players.GetHumanoidDescriptionFromOutfitID:
local Players = game:GetService("Players")
local outfitId = 480059254
local humanoidDescriptionFromOutfit = Players:GetHumanoidDescriptionFromOutfitId(outfitId)จากผู้ใช้เฉพาะ
ใช้โค้ดตัวอย่างต่อไปนี้เพื่อสร้าง HumanoidDescription จาก ID ผู้ใช้โดยใช้ Players:GetHumanoidDescriptionFromUserId():
local Players = game:GetService("Players")
local userId = 491243243
local humanoidDescriptionFromUser = Players:GetHumanoidDescriptionFromUserId(userId)ปรับแต่ง HumanoidDescription
เพื่อปรับแต่งคุณสมัติของ HumanoidDescription ให้ตั้งค่าโดยตรงบน HumanoidDescription หรือใช้วิธีการที่กำหนดก่อนที่จะใช้ HumanoidDescription กับตัวละคร
โค้ดตัวอย่างต่อไปนี้ให้ตัวอย่างการตั้งค่าประเภทต่าง ๆ ของคุณสมัติ 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:SetAccessories() เพื่ออัปเดตที่เกี่ยวข้องกับอุปกรณ์เสริม โค้ดตัวอย่างต่อไปนี้เพิ่มสเวตเตอร์แบบเลเยอร์และแจ็คเก็ตตามลำดับลงใน HumanoidDescription:
local 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 ใดก็ได้ ใช้โค้ดต่อไปนี้เพื่อเพิ่มแว่นกันแดดใหม่และลำตัวใหม่ให้กับตัวละครผู้เล่น:
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
local descriptionClone = humanoid:GetAppliedDescription()
descriptionClone.Torso = 86500008
-- อนุญาตให้ใช้หลายทรัพย์สินของอุปกรณ์เสริมในสตริงที่คั่นด้วยเครื่องหมายจุลภาค
descriptionClone.FaceAccessory = descriptionClone.FaceAccessory .. ",2535420239"
-- ใช้ "descriptionClone" ที่แก้ไขแล้วกับ humanoid
humanoid:ApplyDescription(descriptionClone)
endในตัวละครของผู้เล่นทั้งหมด
ใช้โค้ดตัวอย่างต่อไปนี้เพื่อใช้ HumanoidDescription กับผู้เล่นที่มีอยู่ทั้งหมดในเกม:
local Players = game:GetService("Players")
for _, player in Players:GetPlayers() do
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- สร้าง 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)
humanoid:ApplyDescription(humanoidDescription)
end
endในตัวละครที่เกิดขึ้นทั้งหมด
ใช้โค้ดตัวอย่างต่อไปนี้เพื่อกำหนด HumanoidDescription เฉพาะสำหรับตัวละครของผู้เล่นที่เกิดขึ้นทั้งหมด:
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 และถูกจัดให้เป็นพาร์เรนต์ในพื้นที่ทำงาน คุณสามารถใช้โค้ดตัวอย่างต่อไปนี้ใน Script เพื่อเข้าถึงอินสแตนซ์ในพื้นที่ทำงาน:
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 อยู่บนโครงสร้างที่โมเดลเพิ่มเติมมีเจตนาให้พันรอบ
- โมเดลเลเยอร์ โดยทั่วไปคือเสื้อผ้าหรืออุปกรณ์เสริมมีองค์ประกอบ WrapLayer อยู่บนโครงสร้างที่มีเจตนาให้พันโมเดลเป้าหมาย
- กรงด้านนอกของโมเดลเป้าหมาย และ กรงด้านในและด้านนอกของโมเดลเลเยอร์ มีแผนภาพ UV ที่ตรงกัน
- จุดยอดที่ตรงกันบนกรงเป้าหมายควรมี UV เดียวกันกับจุดยอดของกรงเลเยอร์
- หากโมเดลเป้าหมายของคุณเป็นทั้ง R15 และรวม Humanoid การเชื่อมโยงนี้จะถูกสร้างขึ้นโดยอัตโนมัติ