KeyframeSequence

Hiển Thị Bản Đã Lỗi Thời

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Đối tượng này lưu tất cả các Keyframes cho một hoạt hiệu ứng động, xác định có phải hoạt họa đang được lặp lại, và xác định ưu tiên của nó so với các hoạt họa khác.

KeyframeSequencer là gì?

Roblox xây dựng dữ liệu hoạt họa mà nó sử dụng trong quá trình phát hồi của một hoạt hiệu ứng động, tham khảo từ đặt hàng Class.Animation.

Lưu ý, trong hầu hết các trường hợp, bạn không cần phải manipulate KeyframeSequences, as the animation editor covers most animation functionality. However, in some cases you may wish to generate an animation from a Script or build your own plugin. However, only Roblox Studio can use a KeyframeSequences created in such a way. If you wish to use such a KeyframeSequences, you will need to upload it to

Tính chất của hàng đợi

KeyframeSequence.PriorityKeyframeSequence.Loop lưu cài đặt trọng tâm và hoạt họa lặp lại cho chuỗi. Ghi nhớ rằng đặt tính AnimationTrack có thể cuối cùng đổi được các cài đặt này khi chơi lại.

Các khung cổng Keyframe cuối cùng trong chuỗi, có nghĩa là Keyframe với tính năng Keyframe.Time cao nhất, xác định chiều dài của một hiệu ứng động.

Cấu trúc KeyframeStructure

KeyframeSequences là một container đựng Keyframes . Keyframes đại diện cho một khung "chìa khóa" trong hoạt hiệu ứng động, được liên kết giữa trong khi chơi.

Các khung chứa Poses . Class.

Các điểm ảnh được theo một cấu trúc dựa trên cấp độ hiệp nhất. Cha của mỗi điểm Pose được tương ứng với Pose của phần nó được kết nối. Trong thực tế, điều này có nghĩa là các điểm ảnh chi nh

Sử dụng KeyframeSequences khi làm hoạt họa

Bạn phải đầu tiên tải KeyframeSequences lên Roblox trước khi chúng có thể được chơi trong một trải nghiệm. Ở Studio, nhấp chuột phải vào KeyframeSequences và nhấp vào 'Lưu vào Roblox'. Hoặc bạn có thể sử dụng hành động Class.Plugin:SaveSelectedToRoblo

Trong một số trường hợp, bạn có thể muốn xem trước một hoạt họa trước khi tải nó lên trang Roblox. Bạn có thể tạo một ID tạm thời bằng cách sử dụng KeyframeSequenceProvider:RegisterKeyframeSequence() . Điều này sẽ tạo một ID hành tây có thể được sử dụng cho kiểm tra hoạt họa địa phương

Lấy các chuỗi Keyframe

Trong một số trường hợp, bạn có thể muốn tải xuống KeyframeSequencer tương ứng với một Animation đã tải. Bạn có thể sử dụng AnimationClipProvider:GetAnimationClipAsync() để tải một hiệu ứng động.

Mẫu mã

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

Tóm Tắt

Thuộc Tính

Thuộc Tính kế thừa từ AnimationClip
  • Đọc Song Song

    Xác định liệu hoạt họa được lưu trong điều này AnimationClip có ý định lặp không.

  • Xác định các cắt nào được ưu tiên khi nhiều hoạt họa được phát sóng cùng một lúc.

Phương Pháp

Thuộc Tính

AuthoredHipHeight

Ẩn
Bảo Mật Plugin
Đọc Song Song

Bao gồm chiều cao giả dối của Humanoid của mô hình đã được sử dụng để xuất bản KeyframeSequence này. Giá trị mặc định là 1,35, vì đây là chiều cao giả dối được thiết lập cho một Character|character R15 tiêu chuẩ

Phương Pháp

AddKeyframe

void

Hành động này thêm một Keyframe vào KeyframeSequence bằng cách gắn nó vào KeyframeSequence . Nó hoàn toàn tương tự với việc đặt 1> Class.Instance.Parent1> của keyframe vào 4> Class.Key

Lưu ý, hàm này sẽ không bị lỗi khi gọi với một instância khác ngoài một Keyframe như là một tiêu chuẩn keyframe và sẽ làm cho nó thành công.

Tham Số

keyframe: Instance

Các Keyframe để được thêm.


Lợi Nhuận

void

Mẫu mã

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 trả lại một loạt bao gồm tất cả Keyframes đã được thêm vào một loạt KeyframeSequence .


Lợi Nhuận

Instances

Một mat阵 của Keyframe .

Mẫu mã

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

Hàm này xóa một Keyframe từ KeyframeSequence bằng cách đặt cha nó thành nil. Nó hoàn toàn tương tự với việc đặt cha của hộp kiểm về nil.

Điều này đặt cha của keyframe thành nil, nhưng nó không bị phá hủy. Điều này có nghĩa là, nếu một tham chiếu khác về keyframe được tạo, nó có thể được cha cấp lại sau đó.

Ghi chú, chức năng này sẽ không bị lỗi khi gọi với một Instance khác ngoài một Keyframe như là một Class.Keyframe như cơ sở dữ liệu.

Tham Số

keyframe: Instance

Các Keyframe để bị xóa.


Lợi Nhuận

void

Mẫu mã

KeyframeSequence RemoveKeyframe

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

Sự Kiện