大多数体验允许玩家使用他们自己的 Roblox 虚拟形象,尽管有一些实现了“在体验中自定义”系统,例如 服装展示 模块。其他体验对玩家虚拟形象施加限制 修改 ,例如头盔、翅膀或配件,与其主题型相匹配。
要创建一个独特的体验,改变用户的外观,您可以使用以关注中/正在关注内容来自定义默认角色属性:
游戏设置
在 游戏设置 菜单中,您可以快速设置多个全球角色属性在您的体验。 当编辑 Avatar Game Settings 时,您的头像在工作区中显示为视觉预览。
您可以使用虚拟形象游戏设置调整以下角色属性:
设置 | 描述 |
---|---|
预设 | 应用一个通用集合的 BodyTypeScale 和 ProportionScale 组合。您可以通过选择预设后的 HumanoidDescription 来更进一步调整这些属性。 |
虚拟形象类型 | 将默认虚拟形象类型设置为 R15 或 R6 。 |
动画 | Class.Animation|Animations 用户可以访问的集合。 |
碰撞 | 为体验中的角色设置碰撞边界。 |
身体部件 | Class.HumanoidDescription.Face|Face ,Head ,Torso |
服装 | 经典 Shirt 、 Pants 和 ShirtGraphic 图像文本,您可以应用到角色。 |
虚拟形象类型
虚拟形象类型 设置将您的体验仅加载 R15 或 R6 角色模型。
R15 是默认的现代虚拟形象,拥有 15 个关节。此虚拟形象允许更灵活的自定义、配件选项和动画。
R6 是一个经典简单的虚拟形象,拥有6个手臂。此虚拟形象类型提供一个复古的感觉,但是在动画和其他定制方面有限。身体缩放属性的更改不会影响R6角色。
碰撞边界
碰撞设置为角色在体验中的碰撞界限。这不会影响角色在您的体验中的物理外观。
将此选项设置为 外部箱子 ,会动态缩放角色的碰撞箱根据其个人模型。这是大多数体验的默认和建议设置。
将此选项设置为 内部箱子 为您的体验提供固定的碰撞边界。
人形描述
可玩角色模型包含一个 Humanoid 对象,该对象允许模型特殊特性,例如行走、跳跃、装备物品和与环境交互。要自定义一个 Humanoid 角色的外观,您可以应用一个新的 HumanoidDescription 来更改角色属性。
您可以使用 HumanoidDescription 在您的体验中调整以下角色属性:
角色属性 | 描述 |
---|---|
缩放 | 对物理特性的数值 height , width , head , 1> Class.HumanoidDescription.BodyTypeScale|体型1> 和 |
配件 | 一个角色装备的“Class.Accessory|accessories”的资产ID。 |
经典服装 | Class.Shirt 、Pants 和 ShirtGraphic 图像文本,您可以应用到角色。 |
身体部件 | Class.HumanoidDescription.Face|Face ,Head ,Torso |
身体颜色 | 个人部件的 BodyColors 。 |
动画 | Class.Animation|Animations 的资产ID,您可以在角色上使用。 |
您可以使用以下步骤使用 HumanoidDescription 来定制一个角色:
- 从用户角色创建一个描述 从特定服装ID,或从特定用户ID。
创建人形描述
您可以在 HumanoidDescription 实例创建的新实例直接在 Script 中或在 Class.HumanoidDescription 下使用以下验证码:
local humanoidDescription = Instance.new("HumanoidDescription")
在大多数情况下,您应该使用现有的 HumanoidDescription 而不是默认的 HumanoidDescription 通过引用现有玩家角色 Class.HumanoidDescription ,或 2>avatar 服装2> 或 5>用户ID5> 来。
从玩家角色
使用以下代码示例创建一个基于玩家角色当前属性的新 HumanoidDescription:
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")local humanoidDescription = Instance.new("HumanoidDescription")if humanoid thenhumanoidDescription = humanoid:GetAppliedDescription()end
从现有服装
使用以下示例代码创建一个 HumanoidDescription 从服装 ID 使用 Players.GetHumanoidDescriptionFromOutfitID 创建的服装:
local Players = game:GetService("Players")local outfitId = 480059254local humanoidDescriptionFromOutfit = Players:GetHumanoidDescriptionFromOutfitId(outfitId)
从特定用户
使用以下示例代码创建一个 HumanoidDescription 从用户 ID 使用 Players:GetHumanoidDescriptionFromUserId() :
local Players = game:GetService("Players")local userId = 491243243local humanoidDescriptionFromUser = Players:GetHumanoidDescriptionFromUserId(userId)
修改人形描述
要自定义 HumanoidDescription 属性,请将它们直接设置在 HumanoidDescription 上或使用指定方法在应用 HumanoidDescription 到角色。
下面的代码示例提供了设置不同类型的 HumanoidDescription 属性的示例:
local 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 的次序。
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 对特定 Humanoid 角色在您的体验中使用 Humanoid:ApplyDescription() 或 1> Class.Player:LoadCharacterWithHumanoidDescription1> 。
在单个角色上
ApplyDescription() 可以选择任何 Humanoid 。使用以下代码添加新的太阳镜和新的躯干对玩家角色:
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")if humanoid thenlocal descriptionClone = humanoid:GetAppliedDescription()descriptionClone.Torso = 86500008-- 多个面部配件资产允许在分号后的字符串中descriptionClone.FaceAccessory = descriptionClone.FaceAccessory .. ",2535420239"-- 将“描述克隆”应用到人形humanoid:ApplyDescription(descriptionClone)end
对于所有玩家角色
使用以下示例代码应用 HumanoidDescription 到所有游戏中的当前玩家:
local Players = game:GetService("Players")for _, player in Players:GetPlayers() dolocal humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")if humanoid then-- 创建一个人形描述local 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:
local Players = game:GetService("Players")
-- 停止自动生成,以便在“PlayerAdded” 回调中执行
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- 创建一个人形描述
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)
-- 生成人形描述
player:LoadCharacterWithHumanoidDescription(humanoidDescription)
end
-- 将“PlayerAdded”事件连接到“onPlayerAdded()”函数
Players.PlayerAdded:Connect(onPlayerAdded)
如果 HumanoidDescription 实例在 Explorer 中创建并关联到工作区,请使用 Script 在 Class.Script 中访问工作区实例:
local Players = game:GetService("Players")
-- 停止自动生成,以便在“PlayerAdded” 回调中执行
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- 使用“工作区.StudioHumanoidDescription”生成角色
player:LoadCharacterWithHumanoidDescription(workspace.StudioHumanoidDescription)
end
-- 将“PlayerAdded”事件连接到“onPlayerAdded()”函数
Players.PlayerAdded:Connect(onPlayerAdded)