添加動畫

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

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

動畫腳本

動畫是使用 指令碼 來啟動動畫。一種方法是使用事件來在各種情況下播放動畫,例如玩家完成一個等級、擊敗一個敵人或甚至在遊戲中購買。

設定項目

對於此項目,您將創建觸摸時會創造動畫的零件。

  1. 要整理所有會播放動畫的零件,請在工作區中新增一個名為 TouchPartFolder 的文件夾。

  2. 在 TouchPartFolder 中,添加零件。

    確認零件放置在玩動畫有道理的位置,例如玩家收集對象的終點或玩家收集對象附近。

    勝利部分範例
    交互零件範例
  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)
    -- 也可以將零件的一個或多個資料欄綁定到 "Touched" 事件來執行 "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. 從瀏覽器中複製其 ID。

  4. 在指令碼中,PlayerAnimationFeedback 取代了預置器, YOUR_ANIMATION (行 8) (以前是以 ID 複製的)。

  5. 執行該項目並測試一旦玩家擊中零件,您就會看到動畫。

下一步

下面是一些方法繼續學習

學習動畫

你所學的動畫和體驗中的角色創作方法已經讓我們知道你是否已經熟練地創作動畫,並將它們添加到體驗中。為了繼續學習,我們推薦您參觀動畫概貌。

在那個頁面,您將找到有用的連結來改善動畫,例如使用曲線編輯器以滑梯運動,或在精煉動畫中提供提示。

動畫零件

此外,開始可選課程 動畫零件 來學習如何編寫青少年,一項可讓您調整尺比例、旋轉和移動零件的功能。以下是最終項目的示例。