تسمح معظم الألعاب للاعبين باستخدام أفاتار Roblox الخاص بهم، على الرغم من أن بعض الألعاب تنفذ نظام تخصيص داخل اللعبة مثل قالب متجر UGC. تقوم ألعاب أخرى بإجراء تعديلات محدودة على أفاتار اللاعبين مثل الخوذ، الأجنحة، أو الإكسسوارات التي تتناسب مع النوع.
لإنشاء لعبة فريدة تغير مظهر مستخدميك، يمكنك تخصيص الخصائص الافتراضية للشخصية من خلال إعدادات الأفاتار أو تعديل المظهر يدويًا.
إعدادات الأفاتار العالمية
تتيح لك ملف ⟩ إعدادات الأفاتار في الاستوديو ضبط العديد من خصائص شخصية اللاعب العالمية بسرعة في لعبتك. تنطبق هذه الإعدادات عالميًا على جميع نماذج شخصيات اللاعبين التي تنضم إلى لعبتك. لتعديل شخصيات معينة، مثل نماذج الشخصيات غير القابلة للعب، راجع تعديل المظهر يدويًا.
في هذه النافذة، يمكنك تعيين إعدادات مختلفة للملابس، الإكسسوارات، أجزاء الجسم، سلوك الاصطدام، الرسوم المتحركة والمزيد. عند تحرير هذه الإعدادات، يتم عرض معاينة للإعدادات المطبقة في مساحة العمل.
لمزيد من المعلومات، راجع إعدادات الأفاتار.
تعديل المظهر يدويًا
تحتوي نماذج الشخصيات على كائن Humanoid الذي يمنح النموذج خصائص خاصة، مثل المشي، القفز، تجهيز العناصر، والتفاعل مع البيئة.
يمكنك تعديل Humanoid برمجيًا عن طريق تحديث HumanoidDescription. يشمل ذلك نماذج شخصيات اللاعبين أو نماذج الشخصيات غير القابلة للعب في لعبتك.
يمكنك ضبط الخصائص التالية للشخصية في لعبتك باستخدام HumanoidDescription:
| خاصية الشخصية | الوصف |
|---|---|
| المقياس | قيم عددية للخصائص الفيزيائية الارتفاع، العرض، الرأس، نوع الجسم و النسبة. هذا لا يؤثر على أنواع الجسم R6. |
| الإكسسوارات | معرفات الأصول لـ الإكسسوارات المجهزة بواسطة شخصية. |
| الملابس الكلاسيكية | معرفات الأصول لـ Shirt، Pants، و ShirtGraphic التي يمكنك تطبيقها على الشخصية. |
| جزء الجسم | معرفات الأصول لـ الوجه، الرأس، الجذع، الذراع اليمنى، الذراع اليسرى، الساق اليمنى و الساق اليسرى لأجزاء الشخصية. |
| ألوان الجسم | الـ BodyColors لأجزاء الشخصية الفردية. |
| الرسوم المتحركة | معرفات الأصول لـ الرسوم المتحركة التي يمكنك استخدامها على شخصية. |
خصص شخصية باستخدام HumanoidDescription باتباع الخطوات التالية:
- إنشاء وصف من شخصية المستخدم، معرف زي محدد، أو من معرف مستخدم محدد.
- تعديل الوصف لتخصيص الخصائص التي تريد تطبيقها على شخصية Humanoid.
- تطبيق الوصف على شخصية واحدة، جميع شخصيات اللاعبين، أو حتى على جميع الشخصيات التي تظهر.
إنشاء HumanoidDescription
يمكنك إنشاء مثيل جديد من HumanoidDescription مباشرة داخل تسلسل Explorer أو داخل Script باستخدام الكود التالي:
local humanoidDescription = Instance.new("HumanoidDescription")في معظم الحالات، يجب عليك استخدام HumanoidDescription موجودة بدلاً من HumanoidDescription جديدة افتراضية عن طريق الإشارة إلى شخصية لاعب موجودة، زي أفاتار، أو معرف مستخدم.
من شخصية اللاعب
استخدم عينة الكود التالية لإنشاء HumanoidDescription جديدة بناءً على الخصائص الحالية لشخصية اللاعب:
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
local humanoidDescription = Instance.new("HumanoidDescription")
if humanoid then
humanoidDescription = humanoid:GetAppliedDescription()
endمن زي موجود
استخدم عينة الكود التالية لإنشاء HumanoidDescription من معرف زي باستخدام Players.GetHumanoidDescriptionFromOutfitID:
local Players = game:GetService("Players")
local outfitId = 480059254
local humanoidDescriptionFromOutfit = Players:GetHumanoidDescriptionFromOutfitId(outfitId)من مستخدم محدد
استخدم عينة الكود التالية لإنشاء HumanoidDescription من معرف مستخدم باستخدام 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")
-- إيقاف التوليد التلقائي حتى يمكن القيام بذلك في رد نداء "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")
-- إيقاف التوليد التلقائي حتى يمكن القيام بذلك في رد نداء "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.
لا يمكن تحميل ونشر تنفيذ مخصص للإكسسوارات المتعددة الطبقات، مثل نموذج يستخدم خريطة UV قفص فريدة، إلى السوق. ومع ذلك، يمكنك إنشاء شبكات قفص مخصصة للأصول داخل اللعبة مثل المباني، الملابس الخاصة باللعبة، والديكورات.
سواء كنت تنفذ الإكسسوارات المتعددة الطبقات على هيكل R15، أو تستخدم هيكل مخصص، تأكد من أن إكسسواراتك وأجسادك تتضمن ما يلي:
- يجب أن يحتوي النموذج المستهدف، عادةً الجسم، على مكون WrapTarget على الشبكات التي يُقصد بها لف النماذج الإضافية حولها.
- يجب أن يحتوي نموذج الطبقات، عادةً الملابس أو الإكسسوار، على مكون WrapLayer على الشبكات التي يُقصد بها لف النموذج المستهدف.
- يجب أن تحتوي القفص الخارجي للنموذج المستهدف، و القفص الداخلي والخارجي لنموذج الطبقات على خرائط UV متطابقة.
- يجب أن تحتوي الرؤوس المقابلة على قفص الهدف على نفس خرائط UV مثل تلك الرؤوس على قفص الطبقة.
- إذا كان نموذجك المستهدف R15 ويتضمن Humanoid، يتم إنشاء هذا اللحام تلقائيًا.