تسمح معظم الألعاب للاعبين باستخدام صورة رمزية خاصة بهم في Roblox، على الرغم من أن بعض الألعاب تنفذ نظام تخصيص داخل اللعبة مثل قالب UGC Homestore. تقوم ألعاب أخرى بإجراء تعديلات محدودة على صور رمزية اللاعبين مثل الخوذ، الأجنحة، أو الإكسسوارات التي تتناسب مع النوع.
لإنشاء لعبة فريدة تغير مظهر مستخدميك، يمكنك تخصيص الخصائص الافتراضية للشخصية من خلال إعدادات صورة الرمزية أو تعديل المظهر يدويًا.
إعدادات صورة الرمزية العالمية
يسمح لك ملف ⟩ إعدادات صورة الرمزية في الاستوديو بضبط العديد من خصائص شخصية اللاعب العالمية في لعبتك بسرعة. تنطبق هذه الإعدادات عالميًا على جميع نماذج شخصية اللاعب التي تنضم إلى لعبتك. لتعديل شخصيات معينة، مثل نماذج الشخصيات غير القابلة للعب، انظر تعديل المظهر يدويًا.
في هذه النافذة، يمكنك ضبط مجموعة متنوعة من الإعدادات المسبقة للملابس، الإكسسوارات، أجزاء الجسم، سلوك الاصطدام، الرسوم المتحركة والمزيد. عند تعديل هذه الإعدادات، يتم عرض المعاينة للإعدادات المطبقة في مساحة العمل.
لمزيد من المعلومات، انظر إعدادات صورة الرمزية.
تعديل المظهر يدويًا
تحتوي نماذج الشخصيات على كائن 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: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 للـ Roblox والنماذج غير R15.
لا يمكن تحميل تنفيذ مخصص للإكسسوارات الطبقية، مثل نموذج يستخدم خريطة UV فريدة، ونشرها في السوق. لمزيد من المعلومات، انظر مواصفات الإكسسوارات الطبقية.
سواء كنت تقوم بتنفيذ إكسسوارات طبقية على هيكل صورة رمزية R15، أو تستخدم هيكلًا مخصصًا، تأكد من تضمين إكسسواراتك وأجسامك ما يلي:
- يحتوي النموذج المستهدف، والذي يكون عادةً الجسم، على مكون WrapTarget على الشبكات التي يقصد تغليف نماذج إضافية من حولها.
- يحتوي نموذج الطبقات، والذي يكون عادةً الملابس أو الإكسسوار، على مكون WrapLayer على الشبكات المقصودة لتغليف النموذج المستهدف.
- يجب أن تحتوي القفص الخارجي للنموذج المستهدف، و القفص الداخلي والخارجي لنموذج الطبقات على خرائط UV متطابقة.
- يجب أن تحتوي الرؤوس المقابلة على القفص المستهدف على نفس خرائط UV مثل تلك الرؤوس على قفص الطبقات.
- إذا كان نموذجك المستهدف R15 ويتضمن Humanoid، يتم إنشاء هذا التلحيم تلقائيًا.