KeyframeMarker

사용되지 않는 항목 표시

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

키프레임 마커는 결국 트리거될 이벤트를 나타내는 인스턴스로, Keyframe가 치면 발생할 이벤트를 나타냅니다.

키프레임 마커 사용

키프레임 마커는 항상 부모를 키프레임으로 지정하거나 키프레임의 Keyframe:AddMarker() 함수를 사용하여 직접 부모를 지정하여 키프레임에 부모가 되어야 합니다.키프레임 마커는 직접 제거하거나 Keyframe:RemoveMarker() 함수를 사용하여 제거하고 Keyframe:GetMarkers()를 사용하여 특정 키프레임에 어떤 마커가 연결되었는지 확인할 수 있습니다.

키프레임이 애니메이션으로 감지될 때마다 키프레임에 부모로 지정된 각 키프레임마커에 대해 이벤트가 발생합니다.이 이벤트는 KeyframeMarker의 이름으로 식별할 수 있습니다.AnimationTrack.GetKeyframeMarkerReached 함수를 사용하여 이 이벤트를 검색하고 수신할 수 있습니다.선택적으로, 키프레임마커의 KeyframeMarker.Value 속성을 설정하여 발생하는 이벤트와 함께 값을 전달할 수 있습니다.

그것은 Keyframe.Name 속성을 상속하고 Instance 와 동일하게 행동합니다.이름은 식별을 위해 사용되며 고유해야 할 필요가 없습니다.동일한 이름을 가진 여러 키프레임 마커가 키프레임에 연결되면 AnimationTrack:GetMarkerReachedSignal()에서 반환된 이벤트와 같은 이벤트가 모든 마커에 대해 발생합니다.

참조하세요:

  • , 애니메이션의 특정 시점에 적용된 조인에 적용된 을 보관합니다
  • AnimationTrack , 애니메이션의 재생을 제어하는 Humanoid 또는 AnimationController
  • Animation , Roblox 애니메이션 시스템을 사용하여 캐릭터 또는 다른 모델에서 사용자 지정 애니메이션을 재생하는 데 필요한 애니메이션 데이터의 참조를 보유합니다

코드 샘플

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)

속성

Value

병렬 읽기

KeyframeMarker에 지정된 값.AnimationTrack:GetMarkerReachedSignal()에서 생성된 신호가 발사될 때마다 이 값이 연결된 함수에 전달됩니다.

참조하세요:

코드 샘플

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

메서드

이벤트