ゲーム内のアニメーションを実装するには、スクリプトを使用します。このチュートリアルでは、事前作成されたスクリプトを使用して、以前に作成された勝利アニメーションを実装します。完了すると、このアニメーションは、オビーの終わりに到達したり、秘密を見つけたりするなど、プレイヤーの達成を祝うのに使用できます。
脚本アニメーション
アニメーションは スクリプト を使用してトリガーされます。1つのアプローチは、イベントを使用して、プレイヤーがレベルを終了したり、敵を倒したり、ゲーム内購入を行ったりするなど、さまざまな状況でアニメーションを再生することです。
プロジェクトを設定する
このプロジェクトでは、タッチするとそのプレイヤーにアニメーションをトリガーするパーツを作成します。
アニメーションを再生するすべてのパーツを整理するには、ワークスペースにタッチパーツフォルダという名前のフォルダを追加します(ワークスペースをホバーし、+をクリック)。
タッチパーツフォルダに、パーツを追加します。
パーツがアニメーションを再生する意味のある場所に配置されているかどうかを確認してください、例えばレベルの終わりやプレイヤーが収集するオブジェクトの近くです。
勝利パーツの例 >例のインタラクションパーツ >StarterPlayer > StarterCharacterScripts で、TouchPartRegister という名前のローカルスクリプトを作成します。次に、以下のコードをコピーして貼り付けます。
-- 「PlayerAnimationFeedback」スクリプトと一緒に使用して、パーツタッチでアニメーションを再生する-- サービスlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local Players = game:GetService("Players")local player = Players.LocalPlayerlocal 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 thencanTouch = truePlayerAnimationFeedback:PlayAnimation()canTouch = falseendend-- 起動時に、アニメーションモジュールロード機能を呼び出すPlayerAnimationFeedback:LoadAnimation(humanoid)-- また、パーツのフォルダを「タッチ」イベントにバインドして、「onPartTouch()」を実行するlocal touchPartFolder = workspace:WaitForChild("TouchPartFolder")local touchParts = touchPartFolder:GetChildren()for _, touchPart in touchParts dotouchPart.Touched:Connect(onPartTouch)endこのスクリプトは、TouchPartFolder のすべてのパーツを見つけて、Touched()イベントを与えます。発射されると、イベントはプレイヤーのためにアニメーションを再生する機能を実行します。
次のスクリプトは、プレイヤーのためのアニメーションをトリガーします。ReplicatedStorage で、PlayerAnimationFeedback という新しいモジュールスクリプトを作成します。次に、以下のコードをコピーして貼り付けます。
-- 「TouchPartRegister」スクリプトで使用して、プレイヤーのためにアニメーションを再生するlocal PlayerAnimationFeedback = {}local feedbackAnimationTracklocal ANIMATION_FADE = 0.3local ANIMATION_ID = "rbxassetid://YOUR_ANIMATION"-- アニメーションをプレイヤーのキャラクターにロードする機能function PlayerAnimationFeedback:LoadAnimation(humanoid)local feedbackAnimation = Instance.new("Animation")feedbackAnimation.AnimationId = ANIMATION_IDfeedbackAnimationTrack = humanoid.Animator:LoadAnimation(feedbackAnimation)feedbackAnimationTrack.Priority = Enum.AnimationPriority.ActionfeedbackAnimationTrack.Looped = falseend-- アニメーションを再生する機能function PlayerAnimationFeedback:PlayAnimation()feedbackAnimationTrack:Play(ANIMATION_FADE)task.wait(feedbackAnimationTrack.Length)endreturn PlayerAnimationFeedback
アニメーションを再生
アニメーションはスクリプトで識別、ロード、再生する必要があります。
動アニメーションを設定
スクリプトはどのアニメーションを再プレイするかを知る必要があります。エクスポートされたアニメーションを使用するには、ウェブブラウザを通じてその アセットID を見つけてください。その ID はそのアニメーションをスクリプトでロードできるようにすることができます。
作成ページの アニメーション セクションを開きます。
エクスポートされたアニメーションを見つけてクリックします。
ブラウザの URL からそのIDをコピーします。
スクリプトで、PlayerAnimationFeedback、置換器を、YOUR_ANIMATION (行 8)、コピーした ID で置き換えます。
プロジェクトを実行し、プレイヤーがパーツに一度ヒットすると、アニメーションを見ることができます。
次のステップ
以下は、学習を続けるいくつかの方法
アニメーションについて学ぶ
これまで、アニメーションを作成してエクスペリエンスに追加する方法を学んできました。学習を続けるには、アニメーション の概要を訪問することをお勧めします。
そのページでは、スムーズな動作のためにカーブエディタを使用するなど、アニメーションの改善に役立つリンクを見つけることができます。例えば、アニメーションの精練化のヒントです。
パーツをアニメート
さらに、オプションのレッスン パーツをアニメーションする を開始して、スケール、回転、およびパーツを移動できる機能であるティーンをコードする方法を学びます。最終プロジェクトのサンプルは以下です。