一個 情緒 是一種面部動畫,適用於 可動畫頭部,無限循環,允許用戶表達自己並對他人做出反應,展現持久的面部情感。情緒與其他角色的 默認動畫 同時播放,例如行走、攀爬和游泳,如果默認動畫有面部動畫,則默認動畫會與角色的情緒混合。
創建情緒
如果您有一個可動畫頭部的角色模型,您可以使用 面部動畫編輯器 創建任何您能想到的情緒動畫。如果您不想使用 方形 或 哥布林 參考角色模型,您可以在第三方建模軟件中創建或修改現有模型以支持動畫頭部,例如 Blender 或 Maya。關於如何創建可動畫頭部的信息,請參見 創建基本頭部。
要創建情緒:
將一個可動畫頭部的角色模型添加到視口中。
在 面部動畫編輯器 中,調整您想要操作的面部部位的滑塊。您操作的每個面部部位的動畫軌道會自動顯示在軌道列表中,並顯示您當前在時間線上的關鍵幀。角色的面部在視口中也會更新。
- 要撤銷滑塊上的一步,按 CtrlZ (⌘Z)。
- 要重做滑塊上的一步,按 CtrlY (⌘Y)。
- 要將滑塊重置為其默認值,右鍵單擊滑塊。會顯示上下文菜單。選擇 重置選定。
當您完成創建動畫後,導航到 媒體和播放控制,然後點擊 … 按鈕。會顯示彈出菜單。

選擇 保存 或 另存為 以保存情緒動畫。該動畫會顯示在 Explorer 窗口中,作為 AnimSaves 對象的子項(該對象本身是 rig 的子項)。

- 可選要為您的情緒動畫分配資產 ID 並將其保存到 工具箱 以便在您的遊戲中使用,
在 Explorer 窗口中,右鍵單擊您的新情緒動畫。會顯示上下文菜單。
選擇 保存到 Roblox。 資產配置 窗口顯示。
填寫以下字段:
- 標題:插件的名稱。
- 描述:描述潛在用戶應該期望插件執行的描述。
- 創建者:您希望歸屬為插件創建者的創建者。
點擊 提交 按鈕。稍後,資產配置對話框會顯示您情緒的 Animation.AnimationID,您可以用來在您的遊戲中設置角色的情緒。

設置情緒
每個具有可動畫頭部的角色都有一個子 Animate LocalScript,其中包含一個子 mood StringValue,該值包含在角色頭部播放的情緒動畫。情緒動畫的默認 Animation.AnimationID 播放微笑動畫,但您可以通過直接編輯情緒 StringValue 中的 Animation.AnimationID,或使用 HumanoidDescription 系統來將角色的情緒更改為其他情緒。

編輯 AnimationIds
您可以通過在用戶觸發事件時編輯他們的情緒 Animation.AnimationID 來為遊戲中的每個角色設置特定的情緒。例如,以下 Script 在用戶進入遊戲時將任何先前設置的情緒編輯為一個 張嘴的動畫:
local Players = game:GetService("Players")
local function onCharacterAdded(character)
local humanoid = character:WaitForChild("Humanoid")
local animateScript = character:WaitForChild("Animate")
animateScript.mood.Animation1.AnimationId = "rbxassetid://7715145252" -- 情緒
end
local function onPlayerAdded(player)
player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)使用 HumanoidDescription
您還可以使用 HumanoidDescription 系統來查找用戶角色並編輯其 AnimationIDs 以適應任何默認動畫。例如,以下 Script 在角色閒置時將任何先前設置的情緒編輯為一個在他們臉部左側顯示 半微笑 的動畫:
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
local descriptionClone = humanoid:GetAppliedDescription()
descriptionClone.IdleAnimation = 10725833199
-- 將修改過的 "descriptionClone" 應用於 humanoid
humanoid:ApplyDescription(descriptionClone)
end禁用情緒
要在您的遊戲中禁用情緒,您可以刪除 Animate LocalScript 下的情緒對象。例如,以下 Script 在每個角色加入遊戲時立即移除他們的 mood StringValue:
local Players = game:GetService("Players")
local function onCharacterAdded(character)
local humanoid = character:WaitForChild("Humanoid")
local animateScript = character:WaitForChild("Animate")
animateScript.mood:Destroy()
end
local function onPlayerAdded(player)
player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)