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

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() diaktifkan, nilai ini akan ditransmisikan ke fungsi yang 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