A 心情 是一種類型的面部動畫,可以無限循環在動畫的頭部上,讓用戶能夠表達自己並對他人表達持久的面部情緒。情緒與其他角色的默認動畫同時播放,例如走路、攀爬和游泳,如果默認動畫具有面部動畫,則默認動畫會與角色的情緒融合。
創建心情
如果您有一個具有可動畫頭的角色模型,您可以使用 面動畫編輯器 創建任何可想到的心情動畫。如果您不想使用 方塊化 或 戈布林 參考角色模型,您可以創建或修改現有模型,以在第三方建模軟件中支持動畫頭,例如 Blender 或 Maya。有關如何創建可動頭的信息,請參閱 創建基本頭 。
要創建一個心情:
將具有可動畫頭的角色模型添加到視角。
開啟 面動畫編輯器 。
從工具欄的頭像標籤,單擊動畫編輯器。動畫編輯器窗口顯示。
在視角中,選擇具有可動畫頭的角色模型。會話框顯示。
在 動畫名稱 欄位中,輸入新的動畫名稱,然後點擊 創建 按鈕。動畫編輯器窗口顯示 媒體和播放控件 、 時間線 和 播放列表 。
在動畫編輯器的 軌道列表 中,單擊 面 按鈕。 面動畫編輯器 顯示在軌道列表的左側。
在 面動畫編輯器 中,調整滑塊以獲得你想要操縱的面部部位。您自動操作的每個面部部位的動畫軌道會與時間線上您當前位置的關鍵框一起顯示在跟蹤列表中。角色的面也會在視角中更新。
- 要取消滑動條上的一個步驟,請按 Ctrl Z ( ⌘ Z )。
- 若要重做滑動條上的步驟,請按 Ctrl Y ( ⌘ Y )。
- 若要將滑塊重設為預設值,請單擊滑動條。一個上下文選單顯示。選擇 重設選擇 。
當您完成創建動畫時,導航到 媒體和播放控件 並點擊 … 按鈕。一個彈出菜單顯示。
選擇 儲存 或 儲存為 來儲存心情動畫。動畫在 勘误器 窗口中顯示為 AnimSaves 對象的兒子(本身是勘误器的兒骨架)。
(可選) 為您的情緒動畫分配一個資產ID並將其保存到工具箱以在您的體驗中使用
在 導航器 窗口中,右鍵單擊您的新心情動畫。一個上下文菜單顯示。
選擇 儲存到 Roblox 。顯示 資產配置對話框 。
填寫以下欄位:
- 標題 :您外掛程式的名稱。
- 說明 : 一個描述潛在用戶應該期望插件做什麼的說明。
- 創作者 : 您想將創作者標為外掛程式的創作者。
點擊 提交 按鈕。一會兒後,資產配置對話框會顯示你可以使用的心情Animation.AnimationID來設置心情到你體驗中的角色。
設定心情
每個擁有可動畫頭的角色都有一個孩子 動畫 LocalScript 有一個孩子 心情 StringValue 包含播放在角色頭部的心情動畫。情緒動畫的預設 Animation.AnimationID 播放微笑動畫,但您可以通過直接編輯 Animation.AnimationID 內的情緒 StringValue 或使用 HumanoidDescription 系統來將角色的情緒變更為其他東西。

編輯動畫ID
您可以在體驗中為每個角色設置特定心情,通過編輯其心情的 Animation.AnimationID 每當使用者觸發事件時。例如,下列 編輯任何先前設定的情緒到一個動畫,該動畫會在使用者進入體驗時立即打開角色的嘴:
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 系統找到使用者角色並編輯其 AnimationIDs 以找到任何預設動畫。例如,下列 Script 編輯任何先前設定的情緒到一個動畫,讓角色在任何時候閒置時在左側的臉上獲得 半笑:
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")if humanoid thenlocal descriptionClone = humanoid:GetAppliedDescription()descriptionClone.IdleAnimation = 10725833199-- 將修改的「說明複製」應用於人形humanoid:ApplyDescription(descriptionClone)end
停用心情
若要停用體驗的情緒,您可以刪除在 動畫 LocalScript。例如,下列 Script 移除每個角色的 情緒 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)