您可以在時間線範圍內定義動畫 事件標記,並使用 GetMarkerReachedSignal() 在動畫運行時檢測這些標記。
默認情況下,事件軌道不可見。要顯示事件軌道:
導航到時間線的右側並點擊設定圖示。會顯示一個彈出菜單。

選擇 顯示動畫事件。這將在媒體和播放控制下方打開 動畫事件欄。

創建事件
事件標記是指示動畫事件開始位置的可視指示器。在您創建事件標記後,您可以將其移動到時間線上的任何幀位置。
要創建一個新的事件標記:
導航到時間線,然後點擊並拖動滑塊到事件應該發生的幀位置。
導航到 事件軌道,然後點擊 編輯動畫事件按鈕。

在對話框中,點擊 + 新增事件,然後輸入事件名稱。
- 選填在 參數欄位,輸入事件的參數字串。
點擊 儲存 按鈕。在時間線中的事件欄,將在該幀位置顯示新的標記符號。

檢測事件
要在 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")
-- 創建新的 "Animation" 實例
local walkAnim = Instance.new("Animation")
-- 將其 "AnimationId" 設置為對應的動畫資產 ID
walkAnim.AnimationId = "rbxassetid://5432167890"
-- 將動畫載入至動畫器
local walkAnimTrack = animator:LoadAnimation(walkAnim)
-- 將 "GetMarkerReachedSignal" 事件連接到特定命名的關鍵幀
walkAnimTrack:GetMarkerReachedSignal("FootStep"):Connect(function(paramString)
print(paramString)
end)
重複事件
隨著您創建事件,它們將在整個動畫中可用,而不僅僅是在您最初創建它們的幀位置。例如,您可以在角色的 左 足著地的點創建一個 FootStep 事件標記,然後在角色的 右 足著地時使用相同的事件。
要重複事件:
右鍵點擊事件欄中的 事件標記,然後從上下文菜單中選擇 複製所選。

在時間線的其他時間上右鍵點擊並選擇 粘貼事件。複製的事件將插入到您點擊的最接近的時間位置。
- 選填如果原始事件使用了 參數,但重複的事件應使用修改過的參數,請執行以下步驟:
- 右鍵點擊重複的事件標記,然後從上下文菜單中選擇 編輯動畫事件。將顯示 編輯動畫事件 對話框。
- 進行更改並點擊 儲存 按鈕。