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()

参照してください:

  • KeyframePoses を適用したジョイントに Model のあるアニメーションの共同ポイントで保持します
  • 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

並列読み取り

Class.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

方法

イベント