角色外观

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

大多数体验允许玩家使用他们自己的 Roblox 虚拟形象,尽管有一些实现了“在体验中自定义”系统,例如 服装展示 模块。其他体验对玩家虚拟形象施加限制 修改 ,例如头盔、翅膀或配件,与其主题型相匹配。

要创建一个独特的体验,改变用户的外观,您可以使用以关注中/正在关注内容来自定义默认角色属性:

  • 配置虚拟形象游戏设置以为所有用户设置基础的全球虚拟形象外观。
  • 在任何时候使用 人形描述 来为您的体验中的一个或多个用户添加广泛的特定角色定制。

游戏设置

在 游戏设置 菜单中,您可以快速设置多个全球角色属性在您的体验。 当编辑 Avatar Game Settings 时,您的头像在工作区中显示为视觉预览。

您可以使用虚拟形象游戏设置调整以下角色属性:

设置描述
预设应用一个通用集合的 BodyTypeScaleProportionScale 组合。您可以通过选择预设后的 HumanoidDescription 来更进一步调整这些属性。
虚拟形象类型将默认虚拟形象类型设置为 R15R6
动画Class.Animation|Animations 用户可以访问的集合。
碰撞为体验中的角色设置碰撞边界
身体部件Class.HumanoidDescription.Face|Face ,HeadTorso
服装经典 ShirtPantsShirtGraphic 图像文本,您可以应用到角色。

虚拟形象类型

虚拟形象类型 设置将您的体验仅加载 R15R6 角色模型。

  • R15 是默认的现代虚拟形象,拥有 15 个关节。此虚拟形象允许更灵活的自定义、配件选项和动画。

  • R6 是一个经典简单的虚拟形象,拥有6个手臂。此虚拟形象类型提供一个复古的感觉,但是在动画和其他定制方面有限。身体缩放属性的更改不会影响R6角色。

R15 角色模型。
R6 角色模型。

碰撞边界

碰撞设置为角色在体验中的碰撞界限。这不会影响角色在您的体验中的物理外观。

将此选项设置为 外部箱子 ,会动态缩放角色的碰撞箱根据其个人模型。这是大多数体验的默认和建议设置。

将此选项设置为 内部箱子 为您的体验提供固定的碰撞边界。

人形描述

可玩角色模型包含一个 Humanoid 对象,该对象允许模型特殊特性,例如行走、跳跃、装备物品和与环境交互。要自定义一个 Humanoid 角色的外观,您可以应用一个新的 HumanoidDescription 来更改角色属性。

您可以使用 HumanoidDescription 在您的体验中调整以下角色属性:

角色属性描述
缩放对物理特性的数值 heightwidthhead , 1> Class.HumanoidDescription.BodyTypeScale|体型1> 和
配件一个角色装备的“Class.Accessory|accessories”的资产ID。
经典服装Class.Shirt 、PantsShirtGraphic 图像文本,您可以应用到角色。
身体部件Class.HumanoidDescription.Face|Face ,HeadTorso
身体颜色个人部件的 BodyColors
动画Class.Animation|Animations 的资产ID,您可以在角色上使用。

您可以使用以下步骤使用 HumanoidDescription 来定制一个角色:

  1. 从用户角色创建一个描述 从特定服装ID,或从特定用户ID。
  2. 修改描述, 自定义你想要应用到 Humanoid 角色的属性。

创建人形描述

您可以在 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 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 属性的示例:


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 对特定 Humanoid 角色在您的体验中使用 Humanoid:ApplyDescription() 或 1> Class.Player:LoadCharacterWithHumanoidDescription1> 。

在单个角色上

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"
-- 将“描述克隆”应用到人形
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
-- 创建一个人形描述
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)
-- 创建一个人形描述
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)