角色外觀

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

大多數體驗讓玩家使用自己的 Roblox 虛擬人偶,雖然有一些實現了隨時隨地自訂體驗的自訂系統,例如 服裝攤 模組。其他體驗對玩家虛擬人偶進行限定的 修改,例如頭盔、翅膀或配件,以符合類類別。

要創建一個獨特的體驗,改變用戶的外觀,您可以使用以追蹤中項目來自訂預設角色屬性:

  • 設定虛擬人偶 遊戲設定 以設定所有用戶的基本虛擬人偶外觀預設值。
  • 在任何時間使用 HumanoidDescription 來對一個或多個用戶在您的體驗中添加廣泛的特定角色自訂項目。

遊戲設定

遊戲設定 選單中的 虛擬人偶 區域讓您快速設置您的虛擬人偶在您的體驗中的多個全球角色屬性。當編輯 1>遊戲設定1> 時,您的虛擬人偶會在工作區為視覺預覽顯示。

您可以使用虛擬人偶遊戲設定調整以下角色屬性:

設置說明
預設應用一組常見的 BodyTypeScaleProportionScale 組合。您可以進一步調整這些屬性與 HumanoidDescription 後選擇預設值。
頭像類型將預設 頭像類型 設為 R15 或 R6 。
動畫一個用戶可以使用的Animations
衝突設定衝突界線對於體驗中的角色。
身體零件Class.HumanoidDescription.Head|Head、HeadTorso
服裝Class.Shirt 、PantsShirtGraphic 圖像文字模型,您可以應用到角色。

虛擬人偶類型

設置 虛擬人偶類型 將您的體驗設置為只載入 R15R6 角色模型。

  • R15 是預設的現代虛擬人偶,15個手臂。這個虛擬人偶允許更多的自訂選項、配件選項和動畫。

  • R6 是一個經典的簡單虛擬人偶,6個手臂。這個虛擬人偶類型提供一個復古的感覺,但是在動畫和額外的自訂方面有限。身體大小屬性對R6角色沒有影響。

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

衝突界限

設置 碰撞 將體驗中的角色碰撞界限設置為字元。這不會影響您的體驗中角色的物理外觀。

將此選項設為 外殼箱 會動態擴大角色的衝突箱,根據他們的個別模型。這是大多數體驗的預設和建議設定。

將此選項設為 內部箱子 為您的體驗提供固定的衝突界限。

人形描述

可玩角色模型包含一個 Humanoid 對象,讓模型特殊屬性,例如走路、跳躍、裝備物品和與環境交互。要自訂 Humanoid 角色的外觀,您可以應用新 HumanoidDescription 來變更角色屬性。

您可以使用 HumanoidDescription 調整您的體驗中的角色屬性:

角色屬性說明
比例物理特徵的數值 height , width , head , 1> Class.HumanoidDescription.BodyTypeScale|體輸入
配件裝備的 accessories 的資產 ID。
經典服裝Class.Shirt 、PantsShirtGraphic 圖像文字模型,您可以應用到角色。
身體零件Class.HumanoidDescription.Head|Head、HeadTorso
身體顏色個別零件的 BodyColors
動畫Class.Animation|Animations 的資產 ID。 你可以在角色上使用。

您可以使用以下步驟自訂角色:HumanoidDescription 使用:

  1. 從使用者的角色創建說明 或從特定的服裝 ID 或從特定的使用者 ID 創建。

正在創建人形描述

您可以在 HumanoidDescription 實例內直接創建新的 Script 實例或在 Class.Script 內使用以下代碼:


local humanoidDescription = Instance.new("HumanoidDescription")

在大多數情況下,您應該使用現有的 HumanoidDescription 而不是預設的新 HumanoidDescription ,這是通過參考現有玩家角色 Class.HumanoidDescription 、頭像服裝 2>Class.HumanoidDescription2> 或使用用戶ID 5>Class.HumanoidDescription5> 來做到的。

從玩家角色

使用以下代碼示例來創建基於玩家角色當前屬性的新 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 從使用 Players:GetHumanoidDescriptionFromUserId() 的用戶ID:


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() 來作成配件相關更新。以下代碼示例添加了一個層次的毛衣和外套在那個順序 to a 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)
-- 以「workspace.StudioHumanoidDescription」生成人物
player:LoadCharacterWithHumanoidDescription(workspace.StudioHumanoidDescription)
end
-- 連接 "PlayerAdded" 事件到 "onPlayerAdded()" 函數
Players.PlayerAdded:Connect(onPlayerAdded)