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 Penanda Frame Kunci adalah instansi yang dimaksudkan untuk mewakili peristiwa yang akhirnya akan ditembak ketika sebuah Keyframe dipukul.

Menggunakan KeyframeMarker

Penanda Frame Kunci harus selalu diberi kepada Keyframe melalui pengaturan langsung orang tua atau menggunakan fungsi Keyframe:AddMarker() Keyframe.Penanda Frame Kunci juga dapat dihapus secara langsung atau menggunakan fungsi Keyframe:RemoveMarker() , dan diperiksa untuk memeriksa penanda mana yang terpasang ke Keyframe tertentu menggunakan Keyframe:GetMarkers() .

Setiap kali Keyframe terdeteksi sebagai animasi sedang berjalan, akan ada peristiwa yang ditembak untuk setiap KeyframeMarker yang diberikan ke Keyframe.Peristiwa ini dapat diidentifikasi dengan nama KeyframeMarker.Anda dapat memulihkan dan mendengarkan peristiwa ini menggunakan fungsi AnimationTrack.GetKeyframeMarkerReached.Opsi, Anda dapat mengatur properti KeyframeMarker.Value dari KeyframeMarker untuk melewati nilai dengan peristiwa yang ditembak.

Ia mewarisi properti Keyframe.Name dari Instance dan berperilaku sama.Nama digunakan untuk identifikasi dan tidak perlu unik.Ketika beberapa instansi KeyframeMarker dengan nama yang sama dilampirkan ke Keyframe , acara seperti yang dikembalikan oleh AnimationTrack:GetMarkerReachedSignal() akan ditembak untuk setiap penanda.

Lihat juga:

  • , menyimpan yang diterapkan pada persambungan di suatu titik waktu dalam animasi
  • AnimationTrack , mengontrol pemutaran animasi di Humanoid atau AnimationController
  • Animation , menyimpan referensi ke data animasi yang diperlukan untuk memainkan animasi khusus pada karakter atau model lain menggunakan sistem animasi Roblox

Contoh Kode

Contoh ini menunjukkan fungsi Keyframe:AddMarker() dan Keyframe:GetMarkers() .Setelah menambahkan dua penanda, penanda1 dan penanda2 ke keyframe, contoh ini mendapatkan dan mencetak nama penanda yang ditambahkan.

Dapatkan Penanda Frame Kunci yang Terpasang ke Frame Kunci

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) --pembatas.Parent = keyframe
keyframe:AddMarker(marker2) --pembatas.Parent = keyframe
local markers = keyframe:GetMarkers()
for _, marker in pairs(markers) do
print(marker.Name)
end

This LocalScript code waits for the local player's Humanoid object to load, then it creates a new Animation instance with the proper Animation.AnimationId. The animation is then loaded onto the humanoid, creating an AnimationTrack, and the track is played with AnimationTrack:Play(). Following that, the AnimationTrack:GetMarkerReachedSignal() function detects when the "KickEnd" marker is hit.

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() ditembak, nilai ini akan disampaikan ke fungsi terhubung.

Lihat juga:

Contoh Kode

Contoh ini menunjukkan fungsi Keyframe:AddMarker() dan Keyframe:GetMarkers() .Setelah menambahkan dua penanda, penanda1 dan penanda2 ke keyframe, contoh ini mendapatkan dan mencetak nama penanda yang ditambahkan.

Dapatkan Penanda Frame Kunci yang Terpasang ke Frame Kunci

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) --pembatas.Parent = keyframe
keyframe:AddMarker(marker2) --pembatas.Parent = keyframe
local markers = keyframe:GetMarkers()
for _, marker in pairs(markers) do
print(marker.Name)
end

Contoh ini menunjukkan fungsi Keyframe:AddMarker() dan Keyframe:RemoveMarker() .Perhatikan ini secara fungsional setara dengan parenting dan tidak membesarkan penanda.

Tambahkan Penanda/Hapus Penanda

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

Metode

Acara