GSmGpE6CwX2y9JjB25B8
我们使用此网站上的 Cookie 增强您的用户体验

使用动画编辑器

使用动画编辑器

Oct 18 2019, 2:59 PM PST 15 min

Roblox Studio 配有一个强大的内置 Animation Editor(动画编辑器),你可以利用它来设计和发布自定义动画。

启动编辑器

要启动动画编辑器:

  1. 单击 **Plugins(插件)**选项卡中的 Animation Editor(动画编辑器)按钮。
  1. 选择要为其定义动画的角色模型。请注意,编辑器只会接受符合下列要求的模型。

  2. 单击对话框中的 OK(确认)。编辑器窗口随即打开,显示该角色模型的所有部件列表以及一条时间轴

模型要求

只要满足以下要求,动画可应用于常用人类角色和非人类模型:

  • 此模型必须包含名为 HumanoidRootPart 的部件,即使从外表上看它是非人类。
  • 它所有的移动部件必须与 Motor6D 对象关联。
  • HumanoidRootPart 也必须通过 Motor6D 连接至此模型的其余部分。

利用默认人物模型

如果你不熟悉 Roblox 动画,建议你从一个通过 **Plugins(插件)**选项卡中的 Rig Builder(角色模型构建器)按钮创建的默认人物模型入手。这些人物模型已包含构建角色动画的基本部件和机制。


创建姿势

要为角色模型制作动画,你需要先移动或转动特定的部件(如头部、躯干、手、脚等)以定义姿势。在动画运行时,它会平滑地将角色模型从一个姿势过渡到另一个姿势。

你可以想象一个简单的动画:一个人类角色的头部向左转动 45°。此动画涉及两个姿势 — 头部的初始位置(向前看)以及转动后的头部位置(向左看)。

姿势 #1
姿势 #2

要创建一个新姿势:

  1. 拖动指针到你想要设置姿势的时间位置,例如 0.500(½ 秒)。
  1. 将鼠标悬停在角色模型上,单击一个部件选中它,或者在编辑器窗口左侧单击它的名称选中它。

  2. 在你将部件移动或旋转至所需的朝向时,请注意 3D 编辑器窗口左下角的“模式”设置:

在设置姿势时,你可以按 R 键在移动旋转模式之间进行切换。也可以按 T 键切换自由旋转/移动、10° 或 45° 旋转增值以及 0.2 或 1.0 移动增值。如果需要更加精准的控制,可以单击 Step(步骤)指示器右侧的 并输入一个指定的间隔值。
  1. 在改变部件的朝向后,时间轴上会创建一个新的关键帧,并以菱形符号表示。
  1. 继续移动或旋转部件,直至得到想要的姿势。每当调整某个特定部件时,都会在指针的当前位置为该部件定义关键帧。
  1. 当你准备好预览动画时,请按编辑器窗口左上方的 **Play(播放)**小按钮。也可以按 P 键播放和暂停动画。
调整全部时间

默认情况下,动画开启需时 2 秒。如果需要添加或删除时间,请在 **Time(时间)**指示器右侧框中输入新值(总秒数)

你也可以选择 Edit(编辑)Add Time At Cursor(在光标处添加时间)Remove Time At Cursor(删除光标处的时间),在滑动条的当前位置添加或删除时间。请注意,如果删除一个时间块,时间块内的关键帧将不会被永久删除,而是会被隐藏。Re-including(重新纳入)该时间块会将这些关键帧复原至它们在时间轴中的相对位置。


操作关键帧

在你为角色模型定义了基本姿势后,精细调整独立的关键帧可以显著改善最终的动画效果。

移动关键帧

要增加或减少一个关键帧与相邻关键帧之间的时间量:

  1. 单击时间轴上的任意关键帧。另外,你也可以单击时间轴顶部的菱形符号来选中特定时间位置的所有关键帧。被选中的关键帧会出现一个蓝色外框。
选择一个特定关键帧
选择该位置的所有关键帧
  1. 向左或右拖动关键帧到新的时间位置。

复制关键帧

你可以复制粘贴一个特定的关键帧(或多个部件的关键帧)到时间轴上的新位置。

  1. 根据上述部分的步骤 #1 中列出的方法,选择一个或多个关键帧。
  2. Control+C(Mac 上为 Command ⌘+C)。
  3. 移动指针至新时间位置。
  4. Control+V(Mac 上为 Command ⌘+V)。关键帧会被复制到该位置。

删除关键帧

只需选中一个或多个关键帧并按 DeleteBackspace 键即可将其删除。

动画过渡

过渡是动画制作中的一个重要概念。默认情况下,部件会以一种平均而稳定的形态从一个关键帧向下一个关键帧进行移动/旋转(我们称之为线性过渡)。

如您所见,线性过渡使得角色的踢腿动画显得非常僵硬。虽然平滑的过渡在某些动画中可能会合适,但更改关键帧之间的过渡方式可以使动画显得更加自然。

请对比以下视频,在应用了 **cubic(曲线)**过渡后,腿部的动画在各关键帧之间显得更加自然。

要改变一个或多个关键帧的过渡:

  1. 选择这些关键帧。
  2. 右键单击并在弹出菜单中选择 Easing Options(过渡选项)
  3. 从可用选项中选择一种过渡方向和风格。如果想在动画运行时尝试不同设置,您可以启用 looping(循环),按下 Play(播放),然后再调整所需关键帧的过渡方式。

逆向运动学

在为角色制作动画时,inverse kinematics(简称 IK,逆向运动学)可以帮助您计算一组关节的旋转角度,以便将一个特定的关节移动到特定的位置。在制作踢腿等动画时,这一方法非常有效,因为让脚向前移动会导致大腿和小腿旋转以模拟屈膝动作。

要求

要在动画编辑器中使用逆向运动学:

  • 必须使用 R15 角色模型且它的关节必须根据正确的命名规则进行命名(请参阅 ‘Articles/r6 vs r15 avatars|R15 表格’)
  • 部件之间的附件必须拥有相应的名称。例如,LeftHandLeftLowerArm 分别应存在一个名为 LeftWristRigAttachment 的附件。

若满足所有要求,动画编辑器中的模型名称旁会出现一个 Apply IK(应用逆向运动学)按钮。

基础运用

要在逆向运动学模式下开始编辑动画:

  1. 在动画编辑器中单击 Apply IK(应用逆向运动学)按钮。你应该可以在 Studio 中看到一条通知,表明这些关节已应用逆向运动学。
  2. 确保将操作模式设置为 Move(移动)(按 R 键切换)
  3. 选择任意部件进行操作。逆向运动学解算器会尝试旋转其他父类身体部件来使该关节移动到适当的位置。你也可以在 **Rotate(旋转)**模式下操作部件,但旋转会受到物理特性的限制。
替代关键帧

在“正向运动学”模式(默认模式)中,你可能已进行超越逆向运动学解算器所应用的物理性限制范围的特定变形。进入逆向运动学模式时,会提示你纠正已超越上述限制范围变形的的任何关键帧。请注意,这是可选的,对复杂动画来说此过程可能较长。


逆向运动学模式

在逆向运动学的下拉菜单中,可以选择 Body Part Mode(身体部件模式)Full Body Mode(全身模式)

身体部件模式 全身模式
只移动相关的肢体。例如,移动 RightHand 部件只会影响组成右手臂的部件。 逆向运动学解算器会在移动特定部件时综合考虑所有关节。但是,你也可以通过固定它们的方式将其排除在计算之外(见下文)。

固定部件

Full Body Mode(全身模式)下编辑动画时,你可以固定某个部件以使其无法移动,但你正在操作的部件不受固定效果的影响。在以下视频中,人物的双脚被固定,因此在移动其他部件时它们会保持不动,但你仍可以直接操作其中的任意一只脚。

要固定某个部件,可单击其名称旁边的图钉图标。请记住,只有在启用 Full Body Mode(全身模式)时才能使用此功能。

退出逆向运动学模式

要返回至“正向运动学”模式,请单击逆向运动学的下拉菜单,选择 Disable IK(停用逆向运动学)。请注意,这不会移除你在逆向运动学模式中进行的任何操作 — 该数据会继续存储在应用逆向运动学时所创建的任何关键帧中。现有的逆向运动学模式只会移除对人物模型的物理性限制,让你可自由操作部件。


动画设置

循环

在编辑器中设计动画时,你可以用 **Looping(循环)**按钮开启或关闭动画的自动循环:

但需要注意的是,动画循环不会在最后一个关键帧和第一个关键帧之间插入过渡。因此,我们推荐你将最后一个关键帧设为与第一个关键帧一致,以确保动画顺畅循环。

优先级

在实际游戏中,你可能会针对不同的玩家动作和状态使用独特的动画,例如,跳跃动画和“闲置”动画。从逻辑上来说,跳跃动画应当优先于闲置动画,这样角色才不会同时做出这两个动作。

你可以在编辑器窗口中通过 Edit(编辑)Set Priority(设置优先级)来为动画设置四档的优先级。在游戏中,若你播放的动画所拥有的优先级高于已经在播放的动画,则新动画会取代旧动画。

核心 闲置 移动 动作
← 优先级最低
优先级最高 →

排除

优先级可以表明游戏中处理动画的整体规则,但有时候你可能会想让两个动画同时运行。例如,角色正在行走时可以同时进行“招手”动作。

在编辑器中创建动画时,你可以排除某些部件参与整体动画的运行,只需单击部件名称旁的锁形标记即可:

动画事件

动画事件可让你为一段时间轴创建带有名称的标记。在动画运行时,你可以通过 AnimationTrack/GetMarkerReachedSignal|GetMarkerReachedSignal() 函数检测到这些事件。若你想要在动画播放时的特定时刻播放声音或执行某些其他动作,这个功能就能派上用场。

创建事件

要创建新的事件标记:

  1. 将指针定位到时间轴上事件应当发生的位置。
  2. 单击 Edit Animation Events(编辑动画事件)按钮以便在所选时间位置编辑标记。
  1. 在弹出窗口中,单击 Add Animation Events(添加动画事件),然后单击 CreateNewEvent(创建新事件)
  2. 输入并确认新的事件名称。
  3. 在下一个视图中,你可以输入一个 **Parameter(参数)**字符串,更多细节请参阅下文
  4. 在准备好以后,单击 **Save(保存)**以注册事件。在编辑器的事件栏中,你将会在所选的时间位置看到一个新标记符号。

重复利用事件

在你创建新事件时,将可以在整个动画中重复利用这些事件,而不仅限于你创建它们时所选择的时间位置。例如,你可以在角色的左脚落地时创建一个“FootStep”事件标记,然后在角色右脚落地时使用同样的事件。

要重复利用事件:

  1. 在时间轴上将指针定位到事件应当发生的位置。
  2. 与创建新事件一样,单击 Edit Animation Events(编辑动画事件)按钮。
  3. 在弹出窗口中,单击 Add Animation Events(添加动画事件),然后从列表中选择你想要使用的事件。
  4. 在下一个视图中,根据你的需要输入一个新的(或同样的)**Parameter(参数)**字符串。
  5. 单击 **Save(保存)**以注册事件。
全局性管理事件

要浏览和管理动画的所有事件,请单击 Manage Animation Events(管理动画事件)按钮:
在弹出窗口中,你可以全局性重命名现有事件或删除不需要的事件。


检测事件

要在 ‘Script’ 中检测动画事件,您需要将一个函数关联到 AnimationTrackAnimationTrack/GetMarkerReachedSignal|GetMarkerReachedSignal() 函数,例如:

事件参数

如上所述,你可以为动画编辑器内的任何事件标记指定 Parameter(参数)值。如以上代码示例中的 paramString 参数所示,这让你可将自定义字符串(单值,span class=“text-nowrap”>逗号分隔的 字符串等)传递至 AnimationTrack/GetMarkerReachedSignal|GetMarkerReachedSignal() 函数。如有必要,随后可解析或转换此字符串,并将其用于你想在事件中执行的任何操作。


保存与导出

如果您对设计的动画感到满意,可以将它保存至本地或导出到 Roblox 以便在您的游戏中使用。

本地保存

要将动画保存至本地,请在动画编辑器窗口中选择 File(文件)Save(保存)。请注意,此保存作业只对动画编辑器有效且无法用于在游戏中加载动画(请参阅下一节以了解如何导出动画以供游戏内使用的详细信息)。

导出至 Roblox

要将动画运用到实际游戏中,您必须将它导出至 Roblox 并记录下为其分配的资产编号

  1. 在动画编辑器窗口中,选择 File(文件)Export(导出)
  2. 选择创建一个新动画或覆盖已有的动画。然后按提示继续上传动画。
  3. 在上传完成后,请记录下所提供的链接中包含的资产编号。在为动画编写脚本时会用到此编号。
导入动画

动画可导入动画编辑器以作修改,但仅限于该动画之前是由你导出,或为你所属的 Articles/Group Games|群组 被导出为群组动画。

要导入动画,请选择 File(文件)Import(导入),然后在对话窗口中找到该动画。