GSmGpE6CwX2y9JjB25B8
We use cookies on this site to enhance your user experience

在游戏中使用动画

在游戏中使用动画

Oct 18 2019, 3:00 PM PST 10 min

动画效果能使游戏显得更加真实。从 类目中简单易用的角色动画到通过 Articles/using animation editor|动画编辑器 所制作的复杂动画,Roblox 提供了多种强大的动画选项。

更改默认动画

默认情况下,Roblox 玩家角色都自带了常见的动画效果,如跑步、攀爬、游泳和跳跃等。但是,这些动画并非一成不变的 — 只要你愿意,你可以用类目中的动画来替换掉它们,或者加载你自己的 Articles/using animation editor|自定义动画

找到动画编号

要想改动默认动画,你需要找到新动画的资产编号

  • 对于你通过 Articles/using animation editor|动画编辑器 所创建和导出的动画,在 Create(创建)页面的 **Animations(动画)**部分找到该动画,并从浏览器的 URL 中复制其编号。

更改动画

每个玩家角色都有一个名为 Animate 的 ‘LocalScript’,负责管理进行各种角色动作时应当使用的动画。要更改指定动作的动画:

  1. ServerScriptService 中插入一个包含以下代码的 ‘Script’:
  1. 从第 12 行开始,将 Animate 脚本的 Animation/AnimationId|AnimationId 值重置为相应的资产编号,从而替换掉想要替换的默认动画。

使用多个动画

同一动作可以使用多个动画效果 — 例如,你可以注意到默认的“闲置”动画有两个。如果某个角色状态存在多个动画,Animate 脚本会随机选择要播放的动画,但是,你也可以通过修改动画的 Weight(权重) NumberValue 来影响随机选择的结果(数值越大,可能性越高)。

自定义动画的重要注意事项

使用通过 Articles/using animation editor|动画编辑器默认角色动画构建的自定义动画时,请注意以下几个要点:

  • 在自定义动画中将最终关键帧命名为 End (使用大写的 E*)。这将触发动画脚本以选择要播放的下一个动画。
  • 在 Roblox 角色中构建的动画脚本会自动处理动画循环,因此在发布动画之前,应在动画编辑器中禁用“Loop(循环)”选项。如果启用循环,则对于给定的角色状态,多个动画将不起作用。

直接播放动画

在使用通过 Articles/using animation editor|动画编辑器 制作的自定义动画时,你通常需要直接在脚本中播放动画,例如当玩家按下某个按键或拾取某件特殊物品时。

玩家角色

要将动画应用到某个玩家角色,它必须包含一个 ‘Humanoid’ 对象才能通过 Humanoid/LoadAnimation|Humanoid:LoadAnimation() 加载动画,还要包含一个名为 HumanoidRootPart 的部件。请参阅以下 LocalScript 示例:

此代码等待本地玩家的 Humanoid 对象加载后,会创建一个带有正确 Animation/AnimationId|AnimationId 的新 Animation 实例。随后将动画加载至该人形,创建一个 AnimationTrack,最后通过 AnimationTrack/Play|AnimationTrack:Play() 播放该动画轨道。此脚本还使用了 AnimationTrack/KeyframeReached|KeyframeReached 事件来检测是否到达一个特定名称的关键帧,届时将重新开始播放动画。

非玩家角色

为 NPC(非玩家角色)使用动画的操作与玩家角色类似,但 NPC 不一定要包含 Humanoid 对象。但是,若 NPC 包含 Humanoid,您必须通过该 NPC 的 AnimationController 子对象来加载和播放动画。

请将这个简单的 Script 想象为一个 NPC 模型的直接子类: