KeyframeMarker

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Seorang Marker Keyframe adalah instansi yang dimaksudkan untuk mewakili acara yang akhirnya akan diaktifkan saat sebuah Keyframe dihantam.

Menggunakan Pembuat Keyframe

Para pemasang Keyframe harus selalu dianggap sebagai anak untuk Keyframe dengan menetapkan orang tua langsung atau menggunakan fungsi Keyframe:AddMarker() dari Keyframe. KeyframeMarkers juga dapat dihapus secara langsung atau menggunakan fungsi Keyframe:RemoveMarker() , dan dipolling untuk memeriksa man

Saat Keyframe terdeteksi sebagai animasi berjalan, akan ada acara yang dibakar untuk setiap Keyframe Marker yang bermarkas di Keyframe. Acara ini dapat diidentifikasi dengan nama Keyframe Marker. Anda dapat mengambil dan mendengarkan acara ini menggunakan fungsi Class.AnimationTrack.GetKeyframeMarker

Ini mewarisi Keyframe.Name property dari Instance dan bersikap sama. Nama digunakan untuk identifikasi dan tidak perlu unik. Saat beberapa KeyFrameMarkers dengan nama yang sama diangkat ke KeyFrame, acara seperti yang dikembalikan oleh AnimationTrack:GetMarkerReachedSignal()

Lihat juga:

  • Keyframe , menahan Poses yang diterapkan ke joint di dalam Class.Model pada titik waktu tertentu dalam animasi
  • AnimationTrack , mengontrol pemutaran animasi pada Humanoid atau AnimationController
  • Animation , menyimpan referensi data animasi yang dibutuhkan untuk memutar animasi khusus pada karakter atau model lain yang menggunakan sistem animasi Roblox

Contoh Kode

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)

Properti

Value

Baca Paralel

Nilai yang ditentukan untuk KeyframeMarker . Setiap kali sinyal yang dibuat dari AnimationTrack:GetMarkerReachedSignal() diaktifkan, nilai ini akan ditransmisikan ke fungsi yang terhubung.

Lihat juga:

Contoh Kode

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

Metode

Acara