一个 心情 是一种类型的可动画头,可以无限循环,允许用户以持续的面部情绪表达自己并反应于他人。情绪与其他角色同时播放默认动画,例如步行、攀登和游泳,如果默认动画具有面部动画,默认动画将与角色的情绪融合
创建心情
如果您有一个具有可动画头的角色模型,您可以使用 面部动画编辑器 创建任何您想使用的心情动画。如果你不想使用 块状 或 哥布林 参考角色模型,你可以创建或修改现有模型以支持在第三方建模软件中动画头部,例如 Blender 或 Maya。了解有关如何创建可动头的信息,请参阅创建基本头。
要创建一个心情:
将带有可动画头的角色模型添加到视图。
打开 脸部动画编辑器 。
从工具栏的虚拟形象选项卡,单击动画编辑器。显示动画编辑器窗口。
在视图中,选择带有可动头的角色模型。会话框显示。
在 动画名称 字段中,输入新的动画名称,然后单击 创建 按钮。动画编辑器窗口显示了 媒体和播放控件 、 时间线 和 播放列表 。
在动画编辑器的 轨道列表 中,单击 脸 按钮。 面向动画编辑器 显示在轨道列表的左边。
在 脸部动画编辑器 中,调整滑块以适应你想要操纵的面部部件。你自动操作的每个面部部分的动画轨道会与时间线上当前位置的关键帧一起显示在跟踪列表中。角色的面也在视图中更新。
- 要撤销调滚动条上的一步,请按 Ctrl Z ( ⌘ Z )。
- 要重做滚动条上的步骤,请按 Ctrl Y ( ⌘ Y )。
- 要将滑块重置为默认值,请单击滚动条。一个上下文菜单显示。选择 重置选定 。
当您完成创建动画时,导航到 媒体和播放控件 并单击 … 按钮。弹出菜单显示。
选择 保存 或 保存为 以保存心情动画。动画在 探索器 窗口中显示为 AnimSaves 对象的孩子(它自己是rig的孩骨架)
(可选) 为你的心情动画分配一个资产ID并将其保存到工具箱以便在你的体验中使用
在 探索器 窗口中,右击您的新心情动画。一个上下文菜单显示。
选择 保存到 Roblox 。显示 资产配置对话框 。
填写以下字段:
- 标题 :您插件的名称。
- 描述 : 一个描述潜在用户应该期望插件做什么的描述。
- 创建者 : 您想将创建者归为插件创建者的创建者。
点击 提交 按钮。一段时间后,资产配置对话框会显示你可以使用的心情Animation.AnimationID,用于将心情设置为体验中的角色。
设置心情
每个带有可动头的角色都有一个孩子 动画 LocalScript 有一个孩子 心情 StringValue 包含角色头部播放的心情动画。情绪动画的默认 播放微笑动画,但您可以通过直接编辑情绪 内的字符或使用 系统将角色的情绪更改为其他东西。

编辑动画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-- 将修改的“descriptionClone”应用于人形humanoid:ApplyDescription(descriptionClone)end
禁用心情
要禁用体验中的心情,您可以删除 动画 下面的心情对象。例如,以下 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)