新增動畫

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

要在遊戲中實現動畫,請使用腳本。在本教學中,您將使用預製指令碼實現先前製作的勝利動畫。完成後,這個動畫可以用來慶祝玩家的成就,例如達到障礙賽的終點或找到秘密。

腳本動畫

動畫使用 腳本 進行觸發。一種方法是使用事件在各種情況下播放動畫,例如玩家完成一個等級、擊敗敵人或甚至進行遊戲內購買。

設定項目

對於這個項目,您將創建零件,當觸摸時,會為該玩家啟動動畫。

  1. 要組織所有會播放動畫的零件,請在工作區新增一個名為「TouchPartFolder」的資料夾。

  2. 在 TouchPartFolder 中,添加一個零件。

    請確保零件放置在播放動畫有道理的地方,例如等級結束或靠近玩家收集的物件。

    示例勝利部分
    >

    示例互動部分
    >

  3. 在 StarterPlayer > StarterCharacterScripts 中,創建一個名為 TouchPartRegister 的本地腳本。然後複製並粘貼下面的代碼。


    -- 與「玩家動畫反饋」腳本一起使用,在零件觸摸上播放動畫
    -- 服務
    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. 執行項目並測試一旦玩家擊中零件,您就會看到動畫。

下一步

以下是繼續學習的幾種方法

了解動畫

目前,您已學會如何創建動畫並將它們添加到體驗中。要繼續學習,我們建議您訪問 動畫 概觀。

在那個頁面上,你會找到改善動畫的有用鏈接,例如使用曲線編輯器進行平滑移動,或是精緻化動畫的提示。

動畫零件

此外,開始可選擇的課程動畫零件來學習如何編寫青少年代碼,這是一種允許您縮比例、旋轉和移動零件的功能。最終項目的樣本如下。