您可以在時間範圍內定義動畫 事件標記 並使用 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")
-- 創建新的「動畫」實個體、實例
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)
重複事件
當您創建事件時,它們將在整個動畫期間可用,不僅在您最初創建它們的框位置。例個體、實例,你可以在角色的 左腳落地 時創建一個「腳步」事件標記,然後在角色的 右腳落地 時使用相同的事件。
要複製事件:
導航到 時間線 ,然後在 事件欄 中點擊一個 事件標記 。
按下 Ctrl C (在 Mac 上按 ⌘C)。
點擊並拖動 清潔器 到你想要複製事件的框位置。
按下 Ctrl V (在 Mac 上按 ⌘V)。
如果原始事件使用參數,但複製的事件應使用修改的參數,請執行以下步驟:
- 右鍵單擊複製的事件標記。一個彈出菜單顯示。
- 選擇 編輯動畫 事件。顯示 編輯動畫事件 對話框。
- 做出變更,然後點擊 儲存 按鈕。