要在游戏中实现动画,请使用脚本。在本教程中,您将使用预制脚本实现之前制作的胜利动画。完成后,这个动画可以用来庆祝玩家的成就,例如达到障碍赛的终点或找到秘密。
脚本动画
动画使用 脚本 触发。一个方法是使用事件在各种情况下播放动画,例如玩家完成一等级、击败敌人或甚至进行游戏内购买。
设置项目
对于这个项目,您将创建部件,当触摸时,触发该玩家的动画。
要组织所有播放动画的零件,请在工作区中添加一个名为 TouchPartFolder 的文件夹(将鼠标悬停在工作区上并单击 +)。
在 TouchPartFolder 中,添加零件。
确保零件放置在播放动画有意义的位置,例如等级结束或靠近玩家收集的对象。
示例胜利部分 >示例互动部分 >在 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() 事件。发射时,事件会运行一个函数,为玩家播放动画。
下一个脚本触发玩家的动画。在复制存储中,创建一个名为 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,替换 placeholder,YOUR_ANIMATION(行 8),用复制的 ID 替换。
运行项目并测试,一旦玩家击中零件,你就看到了动画。
下一步
以下是一些继续学习的方法
了解动画
目前,你已经学会了如何创建动画并将它们添加到体验中。要继续学习,我们建议访问动画概览。
在那个页面上,你会找到有用的链接来改进动画,例如使用曲线编辑器实现平滑移动,或调整动画的提示。
动画零件
此外,启动可选课程动画零件来学习如何编写青少年代码,这是一项允许您缩放、旋转和移动零件的功能。最终项目的样本如下。