アニメーションを追加

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

ゲーム内のアニメーションを実装するには、スクリプトを使用します。このチュートリアルでは、事前作成されたスクリプトを使用して、以前に作成された勝利アニメーションを実装します。完了すると、このアニメーションは、オビーの終わりに到達したり、秘密を見つけたりするなど、プレイヤーの達成を祝うのに使用できます。

脚本アニメーション

アニメーションは スクリプト を使用してトリガーされます。1つのアプローチは、イベントを使用して、プレイヤーがレベルを終了したり、敵を倒したり、ゲーム内購入を行ったりするなど、さまざまな状況でアニメーションを再生することです。

プロジェクトを設定する

このプロジェクトでは、タッチするとそのプレイヤーにアニメーションをトリガーするパーツを作成します。

  1. アニメーションを再生するすべてのパーツを整理するには、ワークスペースにタッチパーツフォルダという名前のフォルダを追加します(ワークスペースをホバーし、+をクリック)。

  2. タッチパーツフォルダに、パーツを追加します。

    パーツがアニメーションを再生する意味のある場所に配置されているかどうかを確認してください、例えばレベルの終わりやプレイヤーが収集するオブジェクトの近くです。

    勝利パーツの例
    >

    例のインタラクションパーツ
    >

  3. StarterPlayer > StarterCharacterScripts で、TouchPartRegister という名前のローカルスクリプトを作成します。次に、以下のコードをコピーして貼り付けます。


    -- 「PlayerAnimationFeedback」スクリプトと一緒に使用して、パーツタッチでアニメーションを再生する
    -- サービス
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local Players = game:GetService("Players")
    local player = Players.LocalPlayer
    local character = player.Character or player.CharacterAdded:Wait()
    local humanoid = character:WaitForChild("Humanoid")
    local canTouch = false
    -- フィードバックアニメーションモジュールを含む
    local PlayerAnimationFeedback = require(ReplicatedStorage:WaitForChild("PlayerAnimationFeedback"))
    -- パーツが触れられたときに呼び出される機能
    local function onPartTouch(otherPart)
    if humanoid and canTouch == false then
    canTouch = true
    PlayerAnimationFeedback:PlayAnimation()
    canTouch = false
    end
    end
    -- 起動時に、アニメーションモジュールロード機能を呼び出す
    PlayerAnimationFeedback:LoadAnimation(humanoid)
    -- また、パーツのフォルダを「タッチ」イベントにバインドして、「onPartTouch()」を実行する
    local touchPartFolder = workspace:WaitForChild("TouchPartFolder")
    local touchParts = touchPartFolder:GetChildren()
    for _, touchPart in touchParts do
    touchPart.Touched:Connect(onPartTouch)
    end

    このスクリプトは、TouchPartFolder のすべてのパーツを見つけて、Touched()イベントを与えます。発射されると、イベントはプレイヤーのためにアニメーションを再生する機能を実行します。

  4. 次のスクリプトは、プレイヤーのためのアニメーションをトリガーします。ReplicatedStorage で、PlayerAnimationFeedback という新しいモジュールスクリプトを作成します。次に、以下のコードをコピーして貼り付けます。


    -- 「TouchPartRegister」スクリプトで使用して、プレイヤーのためにアニメーションを再生する
    local PlayerAnimationFeedback = {}
    local feedbackAnimationTrack
    local ANIMATION_FADE = 0.3
    local ANIMATION_ID = "rbxassetid://YOUR_ANIMATION"
    -- アニメーションをプレイヤーのキャラクターにロードする機能
    function PlayerAnimationFeedback:LoadAnimation(humanoid)
    local feedbackAnimation = Instance.new("Animation")
    feedbackAnimation.AnimationId = ANIMATION_ID
    feedbackAnimationTrack = humanoid.Animator:LoadAnimation(feedbackAnimation)
    feedbackAnimationTrack.Priority = Enum.AnimationPriority.Action
    feedbackAnimationTrack.Looped = false
    end
    -- アニメーションを再生する機能
    function PlayerAnimationFeedback:PlayAnimation()
    feedbackAnimationTrack:Play(ANIMATION_FADE)
    task.wait(feedbackAnimationTrack.Length)
    end
    return PlayerAnimationFeedback

アニメーションを再生

アニメーションはスクリプトで識別、ロード、再生する必要があります。

動アニメーションを設定

スクリプトはどのアニメーションを再プレイするかを知る必要があります。エクスポートされたアニメーションを使用するには、ウェブブラウザを通じてその アセットID を見つけてください。その ID はそのアニメーションをスクリプトでロードできるようにすることができます。

  1. 作成ページの アニメーション セクションを開きます。

  2. エクスポートされたアニメーションを見つけてクリックします。

  3. ブラウザの URL からそのIDをコピーします。

  4. スクリプトで、PlayerAnimationFeedback、置換器を、YOUR_ANIMATION (行 8)、コピーした ID で置き換えます。

  5. プロジェクトを実行し、プレイヤーがパーツに一度ヒットすると、アニメーションを見ることができます。

次のステップ

以下は、学習を続けるいくつかの方法

アニメーションについて学ぶ

これまで、アニメーションを作成してエクスペリエンスに追加する方法を学んできました。学習を続けるには、アニメーション の概要を訪問することをお勧めします。

そのページでは、スムーズな動作のためにカーブエディタを使用するなど、アニメーションの改善に役立つリンクを見つけることができます。例えば、アニメーションの精練化のヒントです。

パーツをアニメート

さらに、オプションのレッスン パーツをアニメーションする を開始して、スケール、回転、およびパーツを移動できる機能であるティーンをコードする方法を学びます。最終プロジェクトのサンプルは以下です。