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

This example demonstrates the Keyframe:AddMarker() and Keyframe:GetMarkers() functions. After adding two markers, marker1 and marker2 to the keyframe, this example gets and prints the names of the added markers.

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

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

This example demonstrates the Keyframe:AddMarker() and Keyframe:GetMarkers() functions. After adding two markers, marker1 and marker2 to the keyframe, this example gets and prints the names of the added markers.

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

This example demonstrates the Keyframe:AddMarker() and Keyframe:RemoveMarker() functions. Note these are functionally equivalent to parenting and un-parenting the markers.

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