KeyframeSequenceProvider

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

无法创建
服务
未复制

键框顺序提供商务服务,可以加载和预览 Class.KeyframeSequence|KeyframeSequences。它包括一些有用的函数,例如 Class.Animation|Animations 。

一个 KeyframeSequence 存储一个系列的 Poses ,它们代码化动画的层次和运动。动画数据 Roblox 使用在播放动画时,参考 <

代码示例

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)

概要

方法

属性

方法

RegisterActiveKeyframeSequence

ContentId

生成一个临时资产 ID 来自一个 KeyframeSequence 可以用于测试动画的本地化测试。

此函数执行同样的功能到 KeyframeSequenceProvider:RegisterKeyframeSequence() ,但此函数生成一个 活式:// 链接而不是哈希。

生成的ID可以用于测试中的一个 Animation.AnimationId 属性。

这个函数生成的资产ID是临时的,不能在Studio外部使用。 开发人员希望生成一个资产ID,可以在线使用,应该上传KeyframeSequence到Roblox。

参数

keyframeSequence: Instance

将使用 KeyframeSequence


返回

ContentId

生成临时资源ID以进行本地动画播放。

代码示例

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)

RegisterKeyframeSequence

ContentId

生成一个临时资产 ID 来自一个 KeyframeSequence 可以用于测试动画的本地化测试。

此函数执行同样的功能到 KeyframeSequenceProvider:RegisterActiveKeyframeSequence() ,但此函数生成一个哈希而不是一个 active:// URL。

生成的ID可用于测试动画。Animation.AnimationId属性。

这个函数生成的资产ID是临时的,不能在Studio外部使用。 开发人员希望生成一个资产ID,可以在线使用,应该上传KeyframeSequence到Roblox。

参数

keyframeSequence: Instance

将使用 KeyframeSequence


返回

ContentId

生成临时资源ID以进行本地动画播放。

代码示例

KeyframeSequenceProvider:RegisterKeyframeSequence

local KeyframeSequenceProvider = game:GetService("KeyframeSequenceProvider")
local asset = KeyframeSequenceProvider:RegisterKeyframeSequence(workspace.KeyframeSequence)
local animation = Instance.new("Animation")
animation.Name = "TestAnimation"
animation.AnimationId = asset
animation.Parent = workspace

GetAnimations

暂停

此函数返回一个 InventoryPages 对象,可用于迭代具有特定用户的动画。

这个函数有多个潜在使用,例如允许用户在自定义动画插件中浏览和导入动画。

参数

userId: number

用户的ID。


返回

一个 InventoryPages 的动画。

代码示例

KeyframeSequenceProvider GetAnimations

local KeyframeSequenceProvider = game:GetService("KeyframeSequenceProvider")
local USER_ID = 0 -- Insert your UserId here
local function extractPages(pagesObject)
local array = {}
while true do
local thisPage = pagesObject:GetCurrentPage()
for _, v in pairs(thisPage) do
table.insert(array, v)
end
if pagesObject.IsFinished then
break
end
pagesObject:AdvanceToNextPageAsync()
end
return array
end
local inventoryPages = KeyframeSequenceProvider:GetAnimations(USER_ID)
local animationIds = extractPages(inventoryPages)
for _, id in pairs(animationIds) do
print(id)
end
print("total: ", #animationIds)

GetKeyframeSequenceAsync

暂停

GetKeyframeSequencer 返回一个 KeyframeSequence 根据指定的资产Id。资产Id 必须与一个动画匹配。 函数会返回直到 KeyframeSequence 从网站加载。 因为这是一个 web 调用,因此它应该包含在 p 调。

参数

assetId: ContentId

动画的内容ID。


返回

代码示例

Getting an animation's KeyframeSequence

local KeyframeSequenceProvider = game:GetService("KeyframeSequenceProvider")
local ANIMATION_ID = "rbxassetid://507771019"
-- Get the keyframe sequence for the asset
local keyframeSequence
local success, err = pcall(function()
keyframeSequence = KeyframeSequenceProvider:GetKeyframeSequenceAsync(ANIMATION_ID)
end)
if success then
-- Iterate over each keyframe and print its time value
local keyframeTable = keyframeSequence:GetKeyframes()
for key, value in keyframeTable do
print(`The time of keyframe number {key} is: {value.Time}`)
end
else
print(`Error getting KeyframeSequence: {err}`)
end

活动