KeyframeSequence
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
このオブジェクトは、すべての Keyframes を保存し、アニメーションのループを確認し、他のアニメーションと優先度を決定します。
キーフレームシーケンスとは何ですか?
Roblox は、アニメーションのプレイバックで使用するアニメーションデータを構築します。KeyframeSequencerからの Animation.AnimationId プロパティを参照するアニメー
注意、ほとんどの場合、Scriptを操作する必要はありません、アニメーションエディタはほとんどのアニメーション機能をカバーしています。ただし、Class.Script から生成するアニメーションを希望する場合は、Roblox Studio のみがそ
キーフレームシーケンスプロパティ
KeyframeSequence.Priority と KeyframeSequence.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() を使用して、アニメーションをダウンロードできます。
コードサンプル
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)
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)
-- 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 のモデルのヒープ高を含む。
この AnimationClip に保存されたアニメーションがループすることを意図しているかどうかを決定します。
複数のアニメーションが同時にプレイされるとき、どのクリップが優先されるかを決めます。
方法
Class.Keyframe を親にして KeyframeSequence に追加する。
Class.Keyframe|Keyframes を含む KeyframeSequence のすべてのアイテムを返します。
この関数は、Keyframe を KeyframeSequence に設定して、親をなしに設定します。
プロパティ
AuthoredHipHeight
この Humanoid のモデルのヒープ高を含む。デフォルトの値は 1.35 ですが、Standard R15 の KeyframeSequence のヒープ高は 1.35 です。
方法
AddKeyframe
この関数は、Keyframe を親にして、KeyframeSequence に追加します。機能は、KeyframeSequence の親に設定することと同じです。2>Class.KeyframeSequencer2> にキーフレームの 5>Class.Instance.Parent5> を設定することと同じです。
注: この関数は、Keyframe 以外のインスタンスで呼び出された場合、キーフレームパラメータとしてのみエラーを発生させません。また、親に成功します。
パラメータ
戻り値
コードサンプル
-- 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
GetKeyframes は、Keyframes が追加された KeyframeSequence に含まれるすべての配列を返します。
戻り値
Class.Keyframe|Keyframe の配列。
コードサンプル
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
この関数は、Keyframe を KeyframeSequence の親に設定して、Class.Keyframe を削除します。これは、キーフレームの親を nulo に設定すると同じです。
これは、キーフレームの親を nil に設定しますが、キーフレームを破壊することはありません。これは、別のキーフレームへの参照が残っていることを意味します。
注: この関数は、Instance 以外の Keyframe をキーフレームパラメーターとして呼び出した場合、エラーしません。
パラメータ
戻り値
コードサンプル
local keyframeSequence = Instance.new("KeyframeSequence")
keyframeSequence.Parent = workspace
local keyframe = Instance.new("Keyframe")
keyframeSequence:AddKeyframe(keyframe)
task.wait(2)
keyframeSequence:AddKeyframe(keyframe)