Learn
Motor Sınıfı
Keyframe

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.


Özet
Özellikler
Devralınan Üyeler
Kod Örnekleri
Anahtar Kare Pozları Üret
local function generateKeyframe(model)
if not model.PrimaryPart then
warn("Ana parça ayarlanmamış")
return
end
local rootPart = model.PrimaryPart:GetRootPart()
if not rootPart then
warn("Kök parça bulunamadı")
return
end
local partsAdded = {}
partsAdded[rootPart] = true
local function addPoses(part, parentPose)
-- parçaya bağlı olan tüm eklemleri al
for _, joint in pairs(part:GetJoints()) do
-- sadece Motor6D'lerle ilgileniyoruz
if joint:IsA("Motor6D") then
-- bağlı parçayı bul
local connectedPart = nil
if joint.Part0 == part then
connectedPart = joint.Part1
elseif joint.Part1 == part then
connectedPart = joint.Part0
end
if connectedPart then
-- bu parçayı zaten eklemediğimizden emin ol
if not partsAdded[connectedPart] then
partsAdded[connectedPart] = true
-- bir poz oluştur
local pose = Instance.new("Pose")
pose.Name = connectedPart.Name
parentPose:AddSubPose(pose)
-- geri çağır
addPoses(connectedPart, pose)
end
end
end
end
end
local keyframe = Instance.new("Keyframe")
-- anahtar kareyi doldur
local rootPose = Instance.new("Pose")
rootPose.Name = rootPart.Name
addPoses(rootPart, rootPose)
keyframe:AddPose(rootPose)
return keyframe
end
local character = script.Parent
local keyframe = generateKeyframe(character)
print(keyframe)

API Referansı
Özellikler
Time
Paralel oku
Capabilities: Animation
Keyframe.Time:number
Kod Örnekleri
Anahtar Çerçeve Dizisi Uzunluğunu Al
local function getSequenceLength(keyframeSequence)
local length = 0
for _, keyframe in pairs(keyframeSequence:GetKeyframes()) do
if keyframe.Time > length then
length = keyframe.Time
end
end
return length
end
local keyframeSequence = Instance.new("KeyframeSequence")
getSequenceLength(keyframeSequence)

Yöntemler
AddMarker
Capabilities: Animation
Keyframe:AddMarker(marker:Instance):()
Parametreler
marker:Instance
Dönüşler
()
Kod Örnekleri
İşaretçi Ekle/İşaretçi Kaldır
local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local marker = Instance.new("KeyframeMarker")
marker.Name = "Ayak İzleri"
marker.Value = 100
keyframe:AddMarker(marker) --marker.Parent = keyframe
task.wait(2)
keyframe:RemoveMarker(marker) --marker.Parent = nil

AddPose
Capabilities: Animation
Keyframe:AddPose(pose:Instance):()
Parametreler
Dönüşler
()
Kod Örnekleri
Anahtar Kare Pozları Üret
local function generateKeyframe(model)
if not model.PrimaryPart then
warn("Ana parça ayarlanmamış")
return
end
local rootPart = model.PrimaryPart:GetRootPart()
if not rootPart then
warn("Kök parça bulunamadı")
return
end
local partsAdded = {}
partsAdded[rootPart] = true
local function addPoses(part, parentPose)
-- parçaya bağlı olan tüm eklemleri al
for _, joint in pairs(part:GetJoints()) do
-- sadece Motor6D'lerle ilgileniyoruz
if joint:IsA("Motor6D") then
-- bağlı parçayı bul
local connectedPart = nil
if joint.Part0 == part then
connectedPart = joint.Part1
elseif joint.Part1 == part then
connectedPart = joint.Part0
end
if connectedPart then
-- bu parçayı zaten eklemediğimizden emin ol
if not partsAdded[connectedPart] then
partsAdded[connectedPart] = true
-- bir poz oluştur
local pose = Instance.new("Pose")
pose.Name = connectedPart.Name
parentPose:AddSubPose(pose)
-- geri çağır
addPoses(connectedPart, pose)
end
end
end
end
end
local keyframe = Instance.new("Keyframe")
-- anahtar kareyi doldur
local rootPose = Instance.new("Pose")
rootPose.Name = rootPart.Name
addPoses(rootPart, rootPose)
keyframe:AddPose(rootPose)
return keyframe
end
local character = script.Parent
local keyframe = generateKeyframe(character)
print(keyframe)
Anahtar Kare Ekle/Çıkar Pozu
local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local pose = Instance.new("Pose")
pose.EasingStyle = Enum.PoseEasingStyle.Cubic
pose.EasingDirection = Enum.PoseEasingDirection.Out
local pose2 = Instance.new("Pose")
pose2.EasingStyle = Enum.PoseEasingStyle.Cubic
pose2.EasingDirection = Enum.PoseEasingDirection.Out
keyframe:AddPose(pose) -- pose.Parent = keyframe
task.wait(2)
keyframe:RemovePose(pose) -- pose.Parent = nil
task.wait(2)
keyframe:AddPose(pose) -- pose.Parent = keyframe
task.wait(2)
pose:AddSubPose(pose2) -- pose2.Parent = pose
task.wait(2)
pose:RemoveSubPose(pose2) -- pose2.Parent = nil

GetMarkers
Capabilities: Animation
Keyframe:GetMarkers():{KeyframeMarker}
Dönüşler
Kod Örnekleri
Anahtar Karelere Ekli Anahtar Kare İşaretleyicilerini Al
local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local marker1 = Instance.new("KeyframeMarker")
marker1.Name = "Ayak İzi"
marker1.Value = 100
local marker2 = Instance.new("KeyframeMarker")
marker2.Name = "Dalga"
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

GetPoses
Capabilities: Animation
Keyframe:GetPoses():{Pose}
Dönüşler
Kod Örnekleri
Anahtar Kare Reset Pozları
local function resetPoses(parent)
-- her iki fonksiyon GetChildren ile eşdeğerdir
local poses = parent:IsA("Keyframe") and parent:GetPoses() or parent:IsA("Pose") and parent:GetSubPoses()
for _, pose in pairs(poses) do
if pose:IsA("Pose") then
pose.CFrame = CFrame.new()
-- tekrar çağır
resetPoses(pose)
end
end
end

RemoveMarker
Capabilities: Animation
Keyframe:RemoveMarker(marker:Instance):()
Parametreler
marker:Instance
Dönüşler
()
Kod Örnekleri
İşaretçi Ekle/İşaretçi Kaldır
local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local marker = Instance.new("KeyframeMarker")
marker.Name = "Ayak İzleri"
marker.Value = 100
keyframe:AddMarker(marker) --marker.Parent = keyframe
task.wait(2)
keyframe:RemoveMarker(marker) --marker.Parent = nil

RemovePose
Capabilities: Animation
Keyframe:RemovePose(pose:Instance):()
Parametreler
Dönüşler
()
Kod Örnekleri
Anahtar Kare Ekle/Çıkar Pozu
local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local pose = Instance.new("Pose")
pose.EasingStyle = Enum.PoseEasingStyle.Cubic
pose.EasingDirection = Enum.PoseEasingDirection.Out
local pose2 = Instance.new("Pose")
pose2.EasingStyle = Enum.PoseEasingStyle.Cubic
pose2.EasingDirection = Enum.PoseEasingDirection.Out
keyframe:AddPose(pose) -- pose.Parent = keyframe
task.wait(2)
keyframe:RemovePose(pose) -- pose.Parent = nil
task.wait(2)
keyframe:AddPose(pose) -- pose.Parent = keyframe
task.wait(2)
pose:AddSubPose(pose2) -- pose2.Parent = pose
task.wait(2)
pose:RemoveSubPose(pose2) -- pose2.Parent = nil

©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.