Animator
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
Animations の再生とレプリケーションの責任の主なクラス。すべての再生 AnimationTracks は、Animator インスタンスを介して処理されます。
また、アニメーションエディタ と アニメーションを使用する を参照して、ゲームにプリビルドまたはカスタムのアニメーションを作成し追加する方法を学ぶ。
概要
プロパティ
方法
パーツ間の相対速度を計算し、Motor6D.Part1に適用します。これらの相対速度計算と割り当ては、指定された順序で発生します。
現在プレイ中の AnimationTracks のリストを返します。
Animation を Animator にロードし、AnimationTrack を返す。
すべてのプレイ AnimationTrack.TimePosition が Animator にロードされ、オフセットを Animator に関連付けられたモデルに適用するすべてのプレイ AnimationTracks を増加します。コマンドバーまたはプラグインのみの使用。
イベント
アニメーターがアニメーショントラックを再生するときに発火します。
プロパティ
方法
ApplyJointVelocities
現在の 演奏のセットと、その現在の時間と演奏速度を考えると、パーツ間の相対速度を計算し、Motor6D.Part1 (「子」パーツと考えられるパーツ) に適用します。これらの相対速度計算と割り当ては、指定された順序で発生します。
このメソッドは、ジョイントのパーツの両方が現在同じアセンブリの一部である場合、例えば、モーターまたは溶接で直接または間接的に接続されている場合、指定のジョイントに速度を適用しません。
このメソッドは、あなたのためにジョイントを無効にしたり削除したりしません。このメソッドを呼び出す前に、アセンブリから剛性ジョイントを無効にしたり、削除したりする必要があります。
指定された Motor6Ds は、DataModel の子孫である必要はありません。このメソッドを呼び出す前に、DataModel からジョイントを削除することはサポートされています。
パラメータ
戻り値
LoadAnimation
この機能は、指定された Animation をこの Animator にロードし、再生可能な AnimationTrack を返します。クライアントがネットワーク所有権を持つモデル内の Animator または BasePart:SetNetworkOwner() から、この関数は、サーバーのアニメーションもロードします。
注: Animator は、Workspace に電話をかける前に LoadAnimation() になければ、AnimationClipProvider サービスを回収できず、エラーが発生します。
この機能を、同様に名付けられた Humanoid:LoadAnimation() および AnimationController:LoadAnimation() 機能の代わりに直接使用する必要があります。これらは、この機能の廃止プロキシであり、存在しない場合は Animator を作成します;注意がないと、複製の問題が発生する可能性があります。
クライアントまたはサーバーでアニメーションをロードする
AnimationTracks が正しく再現するには、クライアントまたはサーバーにロードする時期を知ることが重要です:
がプレイヤーの または の子孫である場合、そのプレイヤーの 上で開始されたアニメーションは、サーバーと他のクライアントに複製されます。
がプレイヤーキャラクターの子孫でない場合、そのアニメーションはサーバー上でロードして開始して、再現する必要があります。
Animator オブジェクトは、アニメーションレプリケーションが機能するために、最初にサーバーで作成し、クライアントにレプリケートする必要があります。ローカルで が作成され、その で がロードされた場合、その は複製されません。
パラメータ
戻り値
StepAnimations
すべてのプレイ AnimationTrack.TimePosition が Animator にロードされ、オフセットを Animator に関連付けられたモデルに適用するすべてのプレイ AnimationTracks を増加します。コマンドバーまたはプラグインのみの使用。
deltaTime パラメータは、アニメーションの進行に増加する秒数を決定します。通常、この機能はループで呼び出され、アニメーションの長さをプレビューします (例を参照)。
アニメーションが再生を停止した後、モデルのジョイントは手動で元の位置にリセットする必要があります (例を参照)。
この機能は、ゲームが実行されていないときの Animations の再生をシミュレートするために使用されます。これにより、スクリプトの実行などのゲームの実行の結果を無視してアニメーションをプレビューできます。ゲームが実行中に機能が呼び出されたり、Scripts または LocalScripts によって呼び出された場合、エラーが返されます。
独自のカスタムアニメーションエディタを設計している開発者は、公式 Roblox アニメーションエディタプラグインが使用する方法なので、この機能を使用してアニメーションをプレビューすることをお勧めします。
パラメータ
秒単位のアニメーション再生時間が増加する量。
戻り値
コードサンプル
This code sample includes a function that can be used to preview an Animation on a Model in Roblox Studio, without needing to run the game. It utilizes the Animator.StepAnimations function, which is the same method the official Roblox Animation Editor uses.
local RunService = game:GetService("RunService")
local function studioPreviewAnimation(model, animation)
-- find the AnimationController and Animator
local animationController = model:FindFirstChildOfClass("Humanoid")
or model:FindFirstChildOfClass("AnimationController")
local animator = animationController and animationController:FindFirstChildOfClass("Animator")
if not animationController or not animator then
return
end
-- load the Animation to create an AnimationTrack
local track = animationController:LoadAnimation(animation)
track:Play()
-- preview the animation
local startTime = tick()
while (tick() - startTime) < track.Length do
local step = RunService.Heartbeat:wait()
animator:StepAnimations(step)
end
-- stop the animation
track:Stop(0)
animator:StepAnimations(0)
-- reset the joints
for _, descendant in pairs(model:GetDescendants()) do
if descendant:IsA("Motor6D") then
local joint = descendant
joint.CurrentAngle = 0
joint.Transform = CFrame.new()
end
end
end
local character = script.Parent
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507765644"
studioPreviewAnimation(character, animation)