动画事件

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

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

显示事件

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

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

  2. 选择 显示动画事件 。这将打开 动画事件 栏位,直接放置在媒体和播放控控制下。

您现在可以创建、检测和复制事件。

创建事件

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

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

  1. 导航到 时间轴 ,然后单击-拖动 清除器 到框架位置, где该事件应该发生。

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

  3. 在<a href=\"#编辑动画事件\">编辑动画事件</a>对话框中,单击<a href=\"#+ 添加事件\">添加事件</a>,然后输入一个事件名称。

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

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

检测事件

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


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")
-- 将其“AnimationId”设置为对应的动画资产ID
walkAnim.AnimationId = "rbxassetid://5432167890"
-- 在动画师上加载动画
local walkAnimTrack = animator:LoadAnimation(walkAnim)
-- 将“获取标记关键帧”事件连接到特定名称的 keyframe
walkAnimTrack:GetMarkerReachedSignal("FootStep"):Connect(function(paramString)
print(paramString)
end)

复制事件

当您创建事件时,它们可以在整个动画中使用,不仅在您创建它们的原始位置。例实例,您可以在角色的 脚下使用一个 "足迹" 事件标记,然后在角色的 脚下使用相同的事件。

要复制一个事件:

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

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

  3. 单击并拖动 scrapber 到您想要复制事件的框架位置。

  4. 按下 CtrlV ( V 在 Mac 上)。

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

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