KeyframeSequence

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

このオブジェクトは、すべての Keyframes を保存し、アニメーションのループを確認し、他のアニメーションと優先度を決定します。

キーフレームシーケンスとは何ですか?

Roblox は、アニメーションのプレイバックで使用するアニメーションデータを構築します。KeyframeSequencerからの Animation.AnimationId プロパティを参照するアニメー

注意、ほとんどの場合、Scriptを操作する必要はありません、アニメーションエディタはほとんどのアニメーション機能をカバーしています。ただし、Class.Script から生成するアニメーションを希望する場合は、Roblox Studio のみがそ

キーフレームシーケンスプロパティ

KeyframeSequence.PriorityKeyframeSequence.Loop は、シーケンスの優先順位とループアニメーション設定を保存します。AnimationTrack プロパティは、実行時に 0>Class.KeyFrame0> プロパティに上書きされる可能性があります。

シーケンスの最後の Keyframe 、つまり Keyframe の最高のプロパティ、Keyframe.Time を持つアニメーションの長さを決定します。

キーフレームシーケンス構造

キーフレームシーケンスは、Keyframes を保持するコンテナとして機能します。キーフレームシーケンスは、プレイバック中にインターポリрованされる「キー」フレームを表します。

キーフレームには Poses が含まれています。

ポーズは共通の階層に基づいて構造を取ります。各 Pose の親は、それに付属するパーツの Pose に対応します。実際、これはポーズの枝が根部分から拡張されることを意味します。下のビジュアル例を参照してください。

アニメーションを作成するときにキーフレームシーケンスを使用する

エクスペリエンスで再生する前に、Roblox に KeyframeSequences をアップロードする必要があります。Studio で、Plugin:SaveSelectedToRoblox() を右クリックし、Save to Roblox をクリックします。また、Class.Plugin:SaveSelectedToRoblox() 機能を使用することもできます。どちらの方法

Roblox サイトにアップロードする前に、アニメーションをプレビューしたい場合があります。KeyframeSequenceProvider:RegisterKeyframeSequence() を使用して、ローカライズアニメーションテストに使用できるハッシュ ID を生成できます。

キーフレームシーケンスを取得する

ある既存のアニメーションに対応するキーフレームシーケンスをダウンロードしたい場合は、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

概要

プロパティ

AnimationClip から継承した プロパティ
  • 並列読み取り

    この AnimationClip に保存されたアニメーションがループすることを意図しているかどうかを決定します。

  • 複数のアニメーションが同時にプレイされるとき、どのクリップが優先されるかを決めます。

方法

プロパティ

AuthoredHipHeight

非表示
並列読み取り
プラグインのセキュリティ

この Humanoid のモデルのヒープ高を含む。デフォルトの値は 1.35 ですが、Standard R15 の KeyframeSequence のヒープ高は 1.35 です。

方法

AddKeyframe

void

この関数は、Keyframe を親にして、KeyframeSequence に追加します。機能は、KeyframeSequence の親に設定することと同じです。2>Class.KeyframeSequencer2> にキーフレームの 5>Class.Instance.Parent5> を設定することと同じです。

注: この関数は、Keyframe 以外のインスタンスで呼び出された場合、キーフレームパラメータとしてのみエラーを発生させません。また、親に成功します。

パラメータ

keyframe: Instance

追加する 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

この関数は、KeyframeKeyframeSequence の親に設定して、Class.Keyframe を削除します。これは、キーフレームの親を nulo に設定すると同じです。

これは、キーフレームの親を nil に設定しますが、キーフレームを破壊することはありません。これは、別のキーフレームへの参照が残っていることを意味します。

注: この関数は、Instance 以外の Keyframe をキーフレームパラメーターとして呼び出した場合、エラーしません。

パラメータ

keyframe: Instance

削除する 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)

イベント