アニメーションを作成したら、スクリプトを使ってエクスペリエンスに含める必要があります。スクリプトから手動でアニメーションを再生するか、プレイヤーキャラクターのデフォルトアニメーションを置き換えるか、またはスクリプトからデフォルトアニメーションを再生することもできます。
スクリプトからアニメーションを再生
たとえば、ユーザーが特定のキーを押すか、特別なアイテムを拾うといった場合、スクリプト内で直接アニメーションを再生する必要があります。
ヒューマノイド
タイプ的なプレイ可能なキャラクターを含むリグでアニメーションを再生するには、次の基本パターンに従ってください:
- 正しい で新しいインスタンスを作成します。
- Animator:LoadAnimation() を介してアニメーションをロードして、AnimationTrack を作成します。
- AnimationTrack:Play() でトラックを再生します。
たとえば、次の LocalScript 、StarterPlayerScripts に配置すると、プレイヤーのキャラクターに "外すick" アニメーションをロードして再生します。スクリプトはまた、特定の GetMarkerReachedSignal() アニメーションイベントが発生したときを検出するために アニメーションイベント メソッドを使用します。
ローカルスクリプト - プレイヤーキャラクターにカスタムアニメーションを再生する
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
-- キャラクターのヒューマノイドに "Animator" オブジェクトが含まれていることを確認
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- 新しい「アニメーション」インスタンスを作成して、アニメーションアセット ID を割り当てる
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- アニメーターにアニメーションをロードする
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- アニメーショントラックを再生する
kickAnimationTrack:Play()
-- 名前の付いたイベントがアニメーションで定義された場合、「GetMarkerReachedSignal()」に接続します
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
非ヒューマノイド
アニメーションを再生するには、 含まない リグで、子供の を持つ を作成する必要があります。たとえば、次の Script (リグの直接の子供と推定される)は、「キック」アニメーションをロードし、それを再生します。
スクリプト - キャラクターリグでカスタムアニメーションを再生
local rig = script.Parent
-- 新しい「アニメーション」インスタンスを作成して、アニメーションアセット ID を割り当てる
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- 新しい "AnimationController" と "Animator" を作成
local animationController = Instance.new("AnimationController")
animationController.Parent = rig
local animator = Instance.new("Animator")
animator.Parent = animationController
-- アニメーターにアニメーションをロードする
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- アニメーショントラックを再生する
kickAnimationTrack:Play()
-- 名前の付いたイベントがアニメーションで定義された場合、「GetMarkerReachedSignal()」に接続します
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
デフォルトアニメーションを置き換える
デフォルトでは、Roblox プレイヤーキャラクターには、走る、登る、泳ぐ、ジャンプなどの一般的なアニメーションが含まれています。これらの デフォルトアニメーション を カタログ からのアニメーション、または自分の カスタム アニメーションで置き換えることができます。
新しいアニメーションの アセットID を以下のように取得する:
- アニメーションエディタ で構築されたカスタムアニメーションの場合、エクスポート 指示に従ってください。
エクスプローラー ウィンドウで、 サーバースクリプトサービス に新しい を追加します。
- Hover over ServerScriptService とクリックする ⊕ ボタン。
- コンテキストメニューから、 スクリプト を挿入します。
新しいスクリプトでは、次のコードを貼り付けます:
スクリプト - デフォルトキャラクターアニメーションを置換local Players = game:GetService("Players")local function onCharacterAdded(character)-- ヒューマノイドでアニメーターを取得local humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- すべてのアニメーショントラックを停止for _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal animateScript = character:WaitForChild("Animate")--animateScript.run.RunAnim.AnimationId = "rbxassetid://"--animateScript.walk.歩行alkAnim.AnimationId = "rbxassetid://"--animateScript.jump.JumpAnim.AnimationId = "rbジャンプassetid://"--animateScript.待機dle.Animation1.AnimationId = "rbxassetid://"--animateScript.待機dle.Animation2.AnimationId = "rbxassetid://"--animateScript.落下all.FallAnim.AnimationId = "rbxassetid://"--animateScript.水泳im.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animateScript.climb.登るlimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)各行に デフォルトキャラクターアニメーション を参照するためのコメントを解除し、rbxassetid:// の後に置換 IDを貼り付けます。たとえば、デフォルトの実行アニメーションを ニンジャラン バリアントに変更するには:
スクリプト - デフォルトキャラクターアニメーションを置換local Players = game:GetService("Players")local function onCharacterAdded(character)-- ヒューマノイドでアニメーターを取得local humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- すべてのアニメーショントラックを停止for _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal animateScript = character:WaitForChild("Animate")animateScript.run.RunAnim.AnimationId = "rbxassetid://656118852"--animateScript.walk.歩行alkAnim.AnimationId = "rbxassetid://"--animateScript.jump.JumpAnim.AnimationId = "rbジャンプassetid://"--animateScript.待機dle.Animation1.AnimationId = "rbxassetid://"--animateScript.待機dle.Animation2.AnimationId = "rbxassetid://"--animateScript.落下all.FallAnim.AnimationId = "rbxassetid://"--animateScript.水泳im.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animateScript.climb.登るlimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)
アニメーション重量を設定
同じアクションに複数のアニメーションを使用できます。たとえば、コードサンプルで idle の 2 種類の変化があり、デフォルトのアニメーションを置換する 。
キャラクター状態に複数のアニメーションが存在する場合、 アニメート スクリプトはランダムにどれを再プレイするかを選択しますが、アニメーションの Weight 値を次の式で設定することで結果に影響を与えることができます:
- アニメーション重量/すべての状態アニメーションの総重量 次の例では、idle.Animation1 がキャラクターが待機している時間の ⅓ を再生し、idle.Animation2 が ⅔ の時間を再生します。
スクリプト - デフォルトキャラクターアニメーションを置換
animateScript.idle.Animation1.AnimationId = "rbxassetid://656117400"animateScript.idle.Animation2.AnimationId = "rbxassetid://656118341"animateScript.idle.Animation1.Weight.Value = 5animateScript.idle.Animation2.Weight.Value = 10
アニメーションの参照
デフォルトキャラクターアニメーション
次の表には、カタログアニメーションまたは自分のカスタムアニメーションで置き換えることができるデフォルトのキャラクターアニメーションがすべて含まれています。注意してください、 待機 には、より多くまたはより少なく頻繁にプレイするために 重量 を変更できる 2つの変種があります。
キャラクターアクショ操作 | スクリプト参照をアニメート |
実行 | animateScript.run.RunAnim.AnimationId |
歩く | animateScript.walk.WalkAnim.AnimationId |
ジャンプ | animateScript.jump.JumpAnim.AnimationId |
待機 | animateScript.idle.Animation1.AnimationId animateScript.idle.Animation2.AnimationId |
落ちる | animateScript.fall.FallAnim.AnimationId |
泳ぐ | animateScript.swim.Swim.AnimationId |
泳ぐ (待機) | animateScript.swimidle.SwimIdle.AnimationId |
登る | animateScript.climb.ClimbAnim.AnimationId |
カタログアニメーション
アバターアニメーションバンドルを使用して デフォルトのアニメーションを置き換える ときは、それぞれのアセットIDに次の参照を使用します。たとえば、ニンジャジャンプアニメーションを適用したい場合は、656117878を使用します。注意してください、 待機 には複数の変種があります。
宇宙飛行士 | 実行 891636393 歩行 891636393 ジャンプ 891627522 待機 891621366, 891633237, 1047759695 落下 891617961 泳ぐ 891639666 泳ぐ (待機) 891663592 |
バブリー | 実行 910025107 歩行 910034870 ジャンプ 910016857 待機 910004836, 910009958, 1018536639 待機 (待機) 910001910 泳ぐ 910028158 泳ぐ (待機) 910030921 |
カートゥーン | 実行 742638842 歩行 742640026 ジャンプ 742637942 待機 742637544, 742638445, 885477856 待機 (待機) 742637151 泳ぐ 742639220 泳ぐ (待機) 742639812 |
エルダー | 実行 845386501 歩行 845403856 ジャンプ 845398858 待機 845397899, 845400520, 901160519 落下 (待機) 845396048 泳ぐ 845401742 泳ぐ (待機) 845392038 |
騎士 | 実行 657564596 歩行 657552124 ジャンプ 658409194 待機 657595757, 657568135, 885499184 落下 (待機) 657600338 泳ぐ 657560551 泳ぐ (待機) 657557095 |
浮動 | 実行 616010382 歩行 616013216 ジャンプ 616008936 待機 616006778, 616008087, 886862142 落下 (待機) 616005863 泳ぐ 616011509 泳ぐ (待機) 616003713 |
魔法使い | 実行 707861613 歩行 707897309 ジャンプ 707853694 待機 707742142, 707855907, 885508740 待機 (待機) 707829716 泳ぐ 707876443 泳ぐ (待機) 707894699 |
ニンジャ | 実行 656118852 歩行 656121766 ジャンプ 656117878 待機 656117400, 656118341, 886742569 待機 (待機) 656115606, 656118341, 886742569 泳ぐ 656119721 泳ぐ (待機) 656121397 |
海賊 | 実行 750783738 歩行 750785693 ジャンプ 750782230 待機 750781874, 750782770, 885515365 待機 (待機) 750780242, 750782770, 885515365 泳ぐ 750784579 泳ぐ (待機) 750785176 |
ロボット | 実行 616091570 歩行 616095330 ジャンプ 616088211, 616089559, 885531463 待機 616087089, 616089559, 885531463 泳ぐ 616087089 泳ぐ (待機) 616094091 泳ぐ (待機) 616086039 |
Rthro | 実行 2510198475 歩行 2510202577 ジャンプ 2510197830 待機 2510197257, 2510196951, 3711062489 待機 (待機) 2510195892 泳ぐ 2510201162 泳ぐ (待機) 2510192778 |
スタイリッシュ | 実行 616140816 歩行 616146177 ジャンプ 616139451 待機 616136790, 616138447, 886888594 落下 (待機) 616134815 泳ぐ 616143378 泳ぐ (待機) 616144772 |
スーパーヒーロー | 実行 616117076 歩行 616122287 ジャンプ 616115533 待機 616111295, 616113536, 885535855 落下 (待機) 616108001, 616113536, 885535855 泳ぐ 616119360 泳ぐ (待機) 616120861 |
おもちゃ | 実行 782842708 歩行 782843345 ジャンプ 782847020 待機 782841498, 782845736, 980952228 落下 (待機) 782846423 泳ぐ 782844582 泳ぐ (待機) 782845186 |
ヴァンパイア | 実行 1083462077 歩行 1083473930 ジャンプ 1083455352 待機 1083445855, 1083450166, 1088037547 待機 (待機) 1083443587 泳ぐ 1083464683 泳ぐ (待機) 1083467779 |
ウェアウルフ | 実行 1083216690 歩行 1083178339 ジャンプ 1083218792 待機 1083195517, 1083214717, 1099492820 待機 (待機) 1083189019 泳ぐ 1083222527 泳ぐ (待機) 1083225406 |
ゾンビ | 実行 616163682 歩行 616168032 ジャンプ 616161997 待機 616158929, 616160636, 885545458 落下 (待機) 616157476 泳ぐ 616165109 泳ぐ (待機) 616166655 |