KeyframeMarker
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
キーフレームマーカーは、Keyframe がヒットされると、最終的に発動するイベントを表示するインスタンスです。
キーフレームマーカーを使用する
キーフレームマーカーは、<a href="https://developer.microsoft.com/en-us/microsoft-edge/keyframe-markers#keyframe-markers">キーフレームマーカー\ を直接設定するか、<a href="https://developer.microsoft.com/en-us/microsoft-edge/keyframe-markers#keyframe-markers">キーフレームマーカー\ 機能を
キーフレームがアニメーション実行中として検出されると、キーフレームマーカーの親にあるすべてのキーフレームマーカーに対してイベントが発生します。これらのイベントは、キーフレームマーカーの名前で識別できます。Class
Class.Instance.Name|Keyframe.Name プロパティを継承し、Instance から同じように動作します。名前は識別用に使用され、ユニークでなくてもよいです。複数のキーフレームマーカーが同じ名前を持つ場合、AnimationTrack:GetMarkerReachedSignal()
参照してください:
- Animation は、Roblox アニメーションシステムを使用して、キャラクターまたは他のモデルにカスタムアニメーションをプレイするために必要なアニメーションデータの参照を保持します
コードサンプル
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
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
Class.KeyframeMarker の値は、AnimationTrack:GetMarkerReachedSignal() からの信号が発信されるたびに、接続された関数にこの値がパスされます。
参照してください:
コードサンプル
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
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