大多數體驗讓玩家使用自己的 Roblox 虛擬人偶,雖然有一些實現了隨時隨地自訂體驗的自訂系統,例如 服裝攤 模組。其他體驗對玩家虛擬人偶進行限定的 修改,例如頭盔、翅膀或配件,以符合類類別。
要創建一個獨特的體驗,改變用戶的外觀,您可以使用以追蹤中項目來自訂預設角色屬性:
- 設定虛擬人偶 遊戲設定 以設定所有用戶的基本虛擬人偶外觀預設值。
- 在任何時間使用 HumanoidDescription 來對一個或多個用戶在您的體驗中添加廣泛的特定角色自訂項目。
遊戲設定
在 遊戲設定 選單中的 虛擬人偶 區域讓您快速設置您的虛擬人偶在您的體驗中的多個全球角色屬性。當編輯 1>遊戲設定1> 時,您的虛擬人偶會在工作區為視覺預覽顯示。
您可以使用虛擬人偶遊戲設定調整以下角色屬性:
設置 | 說明 |
---|---|
預設 | 應用一組常見的 BodyTypeScale 和 ProportionScale 組合。您可以進一步調整這些屬性與 HumanoidDescription 後選擇預設值。 |
頭像類型 | 將預設 頭像類型 設為 R15 或 R6 。 |
動畫 | 一個用戶可以使用的Animations。 |
衝突 | 設定衝突界線對於體驗中的角色。 |
身體零件 | Class.HumanoidDescription.Head|Head、Head、Torso、 |
服裝 | Class.Shirt 、Pants 和 ShirtGraphic 圖像文字模型,您可以應用到角色。 |
虛擬人偶類型
設置 虛擬人偶類型 將您的體驗設置為只載入 R15 或 R6 角色模型。
R15 是預設的現代虛擬人偶,15個手臂。這個虛擬人偶允許更多的自訂選項、配件選項和動畫。
R6 是一個經典的簡單虛擬人偶,6個手臂。這個虛擬人偶類型提供一個復古的感覺,但是在動畫和額外的自訂方面有限。身體大小屬性對R6角色沒有影響。
衝突界限
設置 碰撞 將體驗中的角色碰撞界限設置為字元。這不會影響您的體驗中角色的物理外觀。
將此選項設為 外殼箱 會動態擴大角色的衝突箱,根據他們的個別模型。這是大多數體驗的預設和建議設定。
將此選項設為 內部箱子 為您的體驗提供固定的衝突界限。
人形描述
可玩角色模型包含一個 Humanoid 對象,讓模型特殊屬性,例如走路、跳躍、裝備物品和與環境交互。要自訂 Humanoid 角色的外觀,您可以應用新 HumanoidDescription 來變更角色屬性。
您可以使用 HumanoidDescription 調整您的體驗中的角色屬性:
角色屬性 | 說明 |
---|---|
比例 | 物理特徵的數值 height , width , head , 1> Class.HumanoidDescription.BodyTypeScale|體輸入 |
配件 | 裝備的 accessories 的資產 ID。 |
經典服裝 | Class.Shirt 、Pants 和 ShirtGraphic 圖像文字模型,您可以應用到角色。 |
身體零件 | Class.HumanoidDescription.Head|Head、Head、Torso、 |
身體顏色 | 個別零件的 BodyColors 。 |
動畫 | Class.Animation|Animations 的資產 ID。 你可以在角色上使用。 |
您可以使用以下步驟自訂角色:HumanoidDescription 使用:
- 從使用者的角色創建說明 或從特定的服裝 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 thenhumanoidDescription = humanoid:GetAppliedDescription()end
從現有服裝
使用以下示例代碼創建一個 HumanoidDescription 從服裝 ID 使用 Players.GetHumanoidDescriptionFromOutfitID 來創建:
local Players = game:GetService("Players")local outfitId = 480059254local humanoidDescriptionFromOutfit = Players:GetHumanoidDescriptionFromOutfitId(outfitId)
從特定用戶
使用以下示例代碼創建一個 HumanoidDescription 從使用 Players:GetHumanoidDescriptionFromUserId() 的用戶ID:
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() 來作成配件相關更新。以下代碼示例添加了一個層次的毛衣和外套在那個順序 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 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)
-- 以「workspace.StudioHumanoidDescription」生成人物
player:LoadCharacterWithHumanoidDescription(workspace.StudioHumanoidDescription)
end
-- 連接 "PlayerAdded" 事件到 "onPlayerAdded()" 函數
Players.PlayerAdded:Connect(onPlayerAdded)