动画事件

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

您可以在时间线范围内定义动画 事件标记 ,并使用GetMarkerReachedSignal()来检测这些标记,当动画运行时。

显示事件

默认情况下,事件跟踪不可见。要显示事件跟踪:

  1. 导航到 时间线 的右侧,然后单击 装备 标志。弹出菜单显示。

  2. 选择 显示动画事件 。这将打开媒体和播放控制件下方的 动画事件 栏。

您现在可以创建检测重复事件。

创建事件

事件标记是动画事件开始的视觉指示器。创建事件标记后,您可以将其移至时间线上的任何框架位置。

要创建一个新的事件标记:

  1. 导航到 时间线 ,然后单击并拖动 清洁器 到事件应发生的框位置。

  2. 导航到 事件跟踪 ,然后单击 编辑动画事件 按钮。显示 编辑动画事件 对话框。

  3. 编辑动画事件 对话框中,单击 +添加事件 ,然后输入一个事件名称。

  4. (可选)参数 字段中,输入事件的参数字符串。

  5. 点击 保存 按钮。在时间线内的事件栏中,新的标记符号显示在框架位置。

检测事件

要在 LocalScript 中检测动画事件,请将函数连接到 GetMarkerReachedSignal() 函数的 AnimationTrack 。例如:


local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- 创建新的“动画”实例
local walkAnim = Instance.new("Animation")
-- 将其“动画ID”设置为相应的动画资产ID
walkAnim.AnimationId = "rbxassetid://5432167890"
-- 将动画加载到动画师
local walkAnimTrack = animator:LoadAnimation(walkAnim)
-- 将“GetMarkerReachedSignal”事件连接到特定命名的关键帧
walkAnimTrack:GetMarkerReachedSignal("FootStep"):Connect(function(paramString)
print(paramString)
end)

重复事件

当您创建事件时,它们可用于整个动画的使用,不仅仅在您最初创建它们的框架位置。例实例,你可以在角色的 离开 脚落地点创建一个“脚步”事件标记,然后在角色的 右脚落地时使用相同的事件。

要复制一个事件:

  1. 导航到 时间线 ,然后在 事件栏 中单击一个 事件标记

  2. 按下 Ctrl C ( C 在 Mac 上).

  3. 单击并拖动 清洁器 到框位置,在那里你想复制事件。

  4. 按下 Ctrl V ( V 在 Mac 上).

如果原始事件使用了参数,但复制的事件应使用修改的参数,请执行以下步骤:

  1. 右击复制的事件标记。弹出菜单显示。
  2. 选择 编辑动画 事件。显示 编辑动画事件 对话框。
  3. 做出更改,然后单击 保存 按钮。