KeyframeSequence

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

วัตถุนี้เก็บทุกสิ่ง Keyframes แอนิเมชัน

KeyframeSequencer คืออะไร?

Roblox สร้างข้อมูลอนิเมชันที่ใช้ในการเล่นอนิเมชันที่อ้างอิงจากค่า Class.Animation.AnimationId ของโครงส

หมายเหตุในกรณีส่วนใหญ่คุณไม่จำเป็นต้องจัดการ KeyframeSequences เนื่องจากเครื่องมือเรนเดอร์ส่วนใหญ่ใช้งานได้หลากหลายสำหรับการเคลื่อนไหว อย่างไ

สมบัติรหัส

KeyframeSequence.Priority และ KeyframeSequence.Loop บันทึกการตั้งค่าความเป็นลำดับและการเคลื่อนไหวของอนิเมชั่นสำหรับสายการเรียกในตอนเล่น โปรดทราบว่า โปรไฟล์ AnimationTrack สามาร

The last Keyframe ในลำดับต่อไปหมายถึง Keyframe ด้วยค่าสมบัติ Keyframe.Time สูงสุด กำหนดความยาวของอนิเมชัน

โครงสร้าง KeyframeSequencer

KeyframeSequences ประกอบด้วยคอนเทนเนอร์ที่มี Keyframes อยู่ คอนเทนเนอร์ Keyframes เป็นรูปโค้ง 'คีย์' แอนิเมชัน

ตัวแสดงผล Keyframes มี Poses .

ตําแหน่งติดตามโครงสร้างที่ขึ้นอยู่บนระดับเหลี่ยมของผู้ปกครอง พ่อของแต่ละ Pose ตรงกับ Pose ของส่วนที่มันแนบมา ในการฝึกซ้อม นี่หมายความว่าตําแห

ใช้ KeyframeSequences เมื่อสร้างอนิเมชัน

คุณต้องอัปโหลด KeyframeSequences ไปยัง Roblox ก่อนที่จะสามารถเล่นในประสบการณ์ได้ ใน Studio คลิกที่ KeyframeSequences แล้วคลิก 'บันทึกไปยัง Roblox' หรือใช้ฟังก์ชัน Plugin:SaveSelectedToRoblox() เพ

ในบางกรณีคุณอาจต้องการดูตัวอย่างอนิเมชั่นก่อนอัปโหลดไปยังเว็บไซต์ Roblox คุณสามารถสร้างรหัสชื่อเวลาชั่วคราวโดยใช้ KeyframeSequenceProvider:RegisterKeyframeSequence() นี้จะสร้างรหัสชื่อที่สามารถใช้สำหรั

การรับ KeyframeSequences

ในบางกรณีคุณอาจต้องการดาวน์โหลด KeyframeSequencer ที่ตรงกับการอัปโหลดแอนิเมชันที่มีอยู่ คุณสามารถใช้ AnimationClipProvider:GetAnimationClipAsync() เพื่อดาวน์โหลดอนิเมชัน

ตัวอย่างโค้ด

Get KeyframeSequence Length

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)
Create temporary animation

local KeyframeSequenceProvider = game:GetService("KeyframeSequenceProvider")
local function createPreviewAnimation(keyframeSequence)
local hashId = KeyframeSequenceProvider:RegisterKeyframeSequence(keyframeSequence)
local Animation = Instance.new("Animation")
Animation.AnimationId = hashId
return Animation
end
local keyframeSequence = Instance.new("KeyframeSequence")
local animation = createPreviewAnimation(keyframeSequence)
print(animation)
KeyframeSequence Instantiation

-- create the keyframesequence
local keyframeSequence = Instance.new("KeyframeSequence")
keyframeSequence.Loop = false
keyframeSequence.Priority = Enum.AnimationPriority.Action
-- create a keyframe
local keyframe = Instance.new("Keyframe")
keyframe.Time = 0
-- create sample poses
local rootPose = Instance.new("Pose")
rootPose.Name = "HumanoidRootPart"
rootPose.Weight = 0
local lowerTorsoPose = Instance.new("Pose")
lowerTorsoPose.Name = "LowerTorso"
lowerTorsoPose.Weight = 1
-- set the sequence hierarchy
rootPose:AddSubPose(lowerTorsoPose) -- lowerTorsoPose.Parent = rootPose
keyframe:AddPose(rootPose) -- rootPose.Parent = keyframe
keyframeSequence:AddKeyframe(keyframe) -- keyframe.Parent = keyframeSequence
-- parent the sequence
keyframeSequence.Parent = workspace

สรุป

คุณสมบัติ

  • ซ่อนอยู่
    การรักษาความปลอดภัยของปลั๊กอิน
    อ่านพร้อมๆ กัน

    มีความสูงของหิมะของ Humanoid ของโมเดลที่ใช้เพื่อเขียนรหัสนี้ KeyframeSequence

คุณสมบัติรับทอดมาจากAnimationClip
  • อ่านพร้อมๆ กัน

    กำหนดว่าวิดีโอที่เก็บไว้ในนี้ AnimationClip มีไว้เพื่อหลอมรวมหรือไม่

  • อ่านพร้อมๆ กัน

    กำหนดว่าเลื่อนใดจะได้รับความสามารถในการเล่นเมื่อเล่นอนิเมชั่นหลายอันพร้อมกัน

วิธีการ

คุณสมบัติ

AuthoredHipHeight

ซ่อนอยู่
การรักษาความปลอดภัยของปลั๊กอิน
อ่านพร้อมๆ กัน

รวมถึงความสูงของกระดูกสะโพกของ Humanoid ของแบบจำลองที่ใช้เพื่อเขียน KeyframeSequence นี้ ค่าเริ่มต้นคือ 1.35 เนื่องจากเป็นค่าสูงสุดสำหรับกระดูกสะโพกสำ

วิธีการ

AddKeyframe

void

ฟังก์ชันนี้เพิ่ม <a href="/reference/engine/databases">เครื่องมือ</a> ให้กับ <a href="/reference/engine/databases">Class.Keyframe</a> โดยการประกอบมันเป็น <a href="/reference/engine/databases">Class.Keyframe</a> โดยการตั้งค่า <a href="/reference/engine/

หมายเหตุ, ฟังก์ชันนี้จะไม่ผิดพลาดเมื่อเรียกด้วยคําสั่งอื่นนอกจาก Keyframe เป็นตัวประกาศและจะประสบความสําเร็จในการเป็นพ่อ

พารามิเตอร์

keyframe: Instance

Class.Keyframe ที่จะเพิ่ม


ส่งค่ากลับ

void

ตัวอย่างโค้ด

KeyframeSequence Instantiation

-- create the keyframesequence
local keyframeSequence = Instance.new("KeyframeSequence")
keyframeSequence.Loop = false
keyframeSequence.Priority = Enum.AnimationPriority.Action
-- create a keyframe
local keyframe = Instance.new("Keyframe")
keyframe.Time = 0
-- create sample poses
local rootPose = Instance.new("Pose")
rootPose.Name = "HumanoidRootPart"
rootPose.Weight = 0
local lowerTorsoPose = Instance.new("Pose")
lowerTorsoPose.Name = "LowerTorso"
lowerTorsoPose.Weight = 1
-- set the sequence hierarchy
rootPose:AddSubPose(lowerTorsoPose) -- lowerTorsoPose.Parent = rootPose
keyframe:AddPose(rootPose) -- rootPose.Parent = keyframe
keyframeSequence:AddKeyframe(keyframe) -- keyframe.Parent = keyframeSequence
-- parent the sequence
keyframeSequence.Parent = workspace

GetKeyframes

Instances

GetKeyframes กลับรายการที่ประกอบด้วยทุก Keyframes ที่เพิ่มไปยัง KeyframeSequence


ส่งค่ากลับ

Instances

Class.Keyframe|Keyframe รายการ

ตัวอย่างโค้ด

Get KeyframeSequence Length

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)

RemoveKeyframe

void

ฟังก์ชันนี้ลบ Keyframe จาก KeyframeSequence โดยการตั้งค่าพ่อของมันเป็นโมฆะ มันเหมือนกันในทางการใช้งานกับการตั้งค่าพ่อของ keyframe เป็นโมฆะ

นี้ตั้งผู้ปกครองของ keyframe เป็น nil แต่ไม่ทำลายมัน นี่หมายถึงว่า, ให้อ้างอิงอื่น ๆ ของ keyframe เหลืออยู่, มันสามารถเป็นพ่อของมันได้ในภายหลัง

หมายเหตุ, ฟังก์ชันนี้จะไม่ผิดพลาดเมื่อเรียกด้วย Instance นอกจาก Keyframe เป็นตัวประกาศเวลา

พารามิเตอร์

keyframe: Instance

Class.Keyframe ที่จะถูกลบออก


ส่งค่ากลับ

void

ตัวอย่างโค้ด

KeyframeSequence RemoveKeyframe

local keyframeSequence = Instance.new("KeyframeSequence")
keyframeSequence.Parent = workspace
local keyframe = Instance.new("Keyframe")
keyframeSequence:AddKeyframe(keyframe)
task.wait(2)
keyframeSequence:AddKeyframe(keyframe)

อีเวนต์