您可以在時間線範圍內定義動畫 事件標記 並使用 GetMarkerReachedSignal() 來檢測這些標記在動畫執行時。
顯示事件
預設情況下,事件追蹤不會顯示。要顯示事件追蹤:
導航到 時間線 的右邊,然後點擊 裝備 圖示。一個Pop-up菜單會顯示。
選擇 顯示動畫事件 。這會在媒體和播放控制直接下方的 動畫事件 欄中打開。
您現在可以 創建、檢測 和 複製 事件。
創建事件
事件標記是視覺指標,表示動畫事件的開始位置。 在創建事件標記後,您可以將它移動到時間線上的任何位置。
要創建新的事件標記:
導航至時間條,然後按一下並拖曳清除器到框位位置,在事件發生時將其拖曳到位置。
導航到 事件軌跡 ,然後單擊 編輯動畫事件 按鈕。 編輯動畫事件 對話框顯示。
在 編輯動畫事件 對話框中,單擊 + 新增事件 ,然後輸入事件名稱。
(可選) 在 參數 字段中,輸入事件的參數串。
點擊 儲存 按鈕。在時間線內的事件欄中,新的標記符號在框位位置顯示。
偵測事件
要偵測 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)
-- 連接 "GetMarkerReachedSignal" 事件到特定名稱的關鍵框
walkAnimTrack:GetMarkerReachedSignal("FootStep"):Connect(function(paramString)
print(paramString)
end)
重複事件
當您創建事件時,它們會在整個動畫中提供使用,不僅在您原創的位置,而是在角色的 左 腳觸地時,然後使用相同的事件來在角色的 右 腳觸地時使用。例個體、實例,您可以在角色的 左 腳觸地時創建一個 1>腳步1> 事件標
要複製事件:
導航到 時間條 ,然後在 事件條 中單擊一個 事件標記 。
按下 CtrlC ( ⌘C 在 Mac 上)。
按一下並拖曳 掃描機 到你想要複製事件的框位。
按下 Ctrl V ( ⌘ V 在 Mac 上)。
如果原始事件使用參數,但複製的事件使用修改的參數,請執行以下步驟:
- 右鍵單擊複製的事件標記。一個 pop-up 菜單顯示。
- 選擇 編輯動畫 事件。顯示 編輯動畫事件 對話框。
- 然後按一下 儲存 按鈕。