KeyframeSequenceProvider
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
キーフレームシーケンスプロバイダー サービスは、KeyframeSequences をロードしてプレビューする機能を提供します。それには、Animations で作業するときに便利な複数の機能が含まれています。
A KeyframeSequence は、アニメーションの階層と動作を暗号化する一連の Poses を保存します。アニメーションの再生で Roblox が使用するアニメーションデータ、Animation.AnimationId プロパティによって参照される、は、KeyframeSequence から構築できます。KeyframeSequences は通常、Roblox アニメーションエディタ によって作成されますが、他のプラグインまたは手動で作成することもできます。
コードサンプル
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)
概要
方法
アニメーションのローカライズテストに使用できる一時的なアセットIDを KeyframeSequence から生成し、active:// URLを生成します。
から一時的なアセットIDを生成し、アニメーションのローカライズテストに使用できます。ハッシュを生成します。
この機能は、特定のユーザーが所有するアニメーションを反復するのに使用できる InventoryPages オブジェクトを返します。
指定されたアセットIDに基づいて非同期でキーフレームシーケンスを返します。
プロパティ
方法
RegisterActiveKeyframeSequence
KeyframeSequence から一時的なアセットIDを生成し、アニメーションのローカライズテストに使用できます。
この機能は、同じ機能を KeyframeSequenceProvider:RegisterKeyframeSequence() に実行しますが、この機能はハッシュではなく active:// URLを生成します。
生成されたIDは、テスト用の Animation.AnimationId プロパティで使用できます。
この機能によって生成されたアセット IDは一時的であり、Studio の外で使用することはできません。オンラインで使用できるアセット ID を生成したい開発者は、KeyframeSequence を RRoblox(ロブロックス)blox にアップロードする必要があります。
パラメータ
使用する KeyframeSequence 。
戻り値
ローカライズされたアニメーション再生のために生成された一時的なアセット ID。
コードサンプル
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
KeyframeSequence から一時的なアセットIDを生成し、アニメーションのローカライズテストに使用できます。
この機能は、同じ機能を KeyframeSequenceProvider:RegisterActiveKeyframeSequence() に実行しますが、この機能は active:// URL の代わりにハッシュを生成します。
生成されたIDは、Animation.AnimationId プロパティでアニメーションをテストするのに使用できます。
この機能によって生成されたアセット IDは一時的であり、Studio の外で使用することはできません。オンラインで使用できるアセット ID を生成したい開発者は、KeyframeSequence を RRoblox(ロブロックス)blox にアップロードする必要があります。
パラメータ
使用する KeyframeSequence 。
戻り値
ローカライズされたアニメーション再生のために生成された一時的なアセット ID。
コードサンプル
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 オブジェクトを返します。
この機能には、ユーザーがカスタムアニメーションプラグインにアニメーションを閲覧したり、インポートしたりできるようにするなど、さまざまな潜在的な使用法があります。
パラメータ
ユーザーのユーザーID。
戻り値
アニメーションの InventoryPages 。
コードサンプル
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
GetKeyframeSequenceAsync は、指定されたアセットIDに基づいて KeyframeSequence を返します。アセットIDはアニメーションに一致する必要があります。機能は、KeyframeSequence がウェブサイトから読み込まれるまで生成され続けます。これは Web 呼び出しなので、pcall で包まれるべきです。
パラメータ
アニメーションのコンテンツ ID。
戻り値
見つかった 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