KeyframeMarker

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Un Marker Keyframe è un'istanza pensata per rappresentare un evento che verrà eventualmente attivato quando un Keyframe sarà colpito.

Uso di un marcatore keyframe

I segnaposto Keyframe devono sempre essere parented a Keyframe tramite impostazione diretta del padre o utilizzando la funzione Keyframe:AddMarker() di Keyframe. I segnaposto Keyframe possono anche essere rimossi direttamente o utilizzando la funzione Keyframe:RemoveMarker() , e polled to check which segnaposto sono attaccati a un segnaposto specifico Keyframe utilizzando Class.

Quando viene rilevato un Keyframe come un'animazione in esecuzione, verrà visualizzato un evento per ciascun Keyframe Marker che è parented al Keyframe. Questi eventi sono identificabili dal nome del Keyframe Marker. Puoi recuperare e ascoltare questi eventi usando la funzione AnimationTrack.GetKeyframeMarkerReached. In opzione, puoi impostare la

Eriereda la proprietà Keyframe.Name da Class.Instance e si comporta identificativamente. I nomi vengono utilizzati per l'identificazione e non devono essere unici. Quando più KeyFrameMarkers con lo stesso nome vengono attaccati a un KeyFrame, gli eventi come quello riportato da Instance vengono attivati per ogni marchio.

Vedi anche:

  • Keyframe , contiene il Poses applicato alle articolazioni in un Model a un punto di tempo specificato in un'animazioni
  • AnimationTrack , controlla il riproduzione di un'animazione su un Humanoid o AnimationController
  • Animation , contiene un riferimento ai dati di animazione richiesti per giocare animazioni personalizzate sui personaggi o altri modelli usando il sistema di animazione Roblox

Campioni di codice

Get Keyframe Markers Attached to a Keyframe

local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local marker1 = Instance.new("KeyframeMarker")
marker1.Name = "FootStep"
marker1.Value = 100
local marker2 = Instance.new("KeyframeMarker")
marker2.Name = "Wave"
marker2.Value = 100
keyframe:AddMarker(marker1) --marker.Parent = keyframe
keyframe:AddMarker(marker2) --marker.Parent = keyframe
local markers = keyframe:GetMarkers()
for _, marker in pairs(markers) do
print(marker.Name)
end
Listening to Keyframe Markers

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.Character:Wait()
local humanoid = character:WaitForChild("Humanoid")
-- Create new "Animation" instance
local kickAnimation = Instance.new("Animation")
-- Set its "AnimationId" to the corresponding animation asset ID
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Load animation onto the humanoid
local kickAnimationTrack = humanoid:LoadAnimation(kickAnimation)
-- Play animation track
kickAnimationTrack:Play()
-- If a named event was defined for the animation, connect it to "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)

Proprietà

Value

Lettura Parallela

Un valore che viene specificato per un Class.KeyframeMarker . Quando il segnale creato da Class.AnimationTrack:GetMarkerReachedSignal() viene attivato, questo valore viene passato nella funzione connessa.

Vedi anche:

Campioni di codice

Get Keyframe Markers Attached to a Keyframe

local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local marker1 = Instance.new("KeyframeMarker")
marker1.Name = "FootStep"
marker1.Value = 100
local marker2 = Instance.new("KeyframeMarker")
marker2.Name = "Wave"
marker2.Value = 100
keyframe:AddMarker(marker1) --marker.Parent = keyframe
keyframe:AddMarker(marker2) --marker.Parent = keyframe
local markers = keyframe:GetMarkers()
for _, marker in pairs(markers) do
print(marker.Name)
end
Add Marker/Remove Marker

local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local marker = Instance.new("KeyframeMarker")
marker.Name = "FootStep"
marker.Value = 100
keyframe:AddMarker(marker) --marker.Parent = keyframe
task.wait(2)
keyframe:RemoveMarker(marker) --marker.Parent = nil

Metodi

Eventi