mcpField
R
roblox-animation

roblox-animation

github.com/nonlooped开发24437 次安装1 周前更新
代码仓库

关于 roblox-animation

面向 Roblox 开发的动画技能,指导选择并协同角色动画、TweenService 动效和程序化 IK。它将动画事件与视觉效果衔接,同时强调由服务器验证游戏玩法结果。

主要功能

  1. 01选择角色、补间或 IK 动效
  2. 02加载并混合动画轨道
  3. 03用标记触发定时事件
  4. 04使用 TweenService 制作 UI 转场
  5. 05配置程序化 IK 姿势
  6. 06在服务器验证玩法效果

适用场景

  1. 01将移动动画与上身 IK 分层
  2. 02在动画标记处触发音效或特效
  3. 03制作自适应 UI 动效
  4. 04检查角色移除时的动画清理

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nonlooped/roblox-suite --skill roblox-animation

安装后在 Claude Code 中输入/roblox-animation确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
3d-animations.md
integration-and-events.md
ui-tweens-and-sequences.md
scripts/
AnimationLoader.lua
IKSetup.lua
TweenHelper.lua

详细介绍

roblox-animation

对于经过设计的 rig 动作,请选择动画轨道;对于属性变化,请使用 TweenService;对于程序化姿势,请使用 IKControl。即使客户端动画触发了视觉效果,也要在服务器上验证游戏玩法结果。

主要官方来源:

跨技能用法:

  • 结合 roblox-user-interfaces,了解 UI 动效细节和“UI 中的粒子”。
  • 当动画需要通过标记触发发射器、光束或拖尾时,结合 roblox-vfx。
  • 结合 roblox-core,了解 Animator 获取、RunService 计时,以及通过 ContentProvider 预加载。
  • 使用 roblox-networking,决定动画的播放位置(服务器复制还是仅客户端的装饰效果)。

选择动作系统

需要自然、可混合的 3D rig/角色动作?
→ 动画系统(Animator + AnimationTrack)。在 Editor 中预先制作动画,或从目录获取,然后通过优先级、权重、淡入淡出和速度进行播放。通过标记驱动游戏玩法。

简单的属性变化、UI 转场或一次性对象动作?
→ TweenService。用于 GuiObjects(scale + AnchorPoint + UDim2)、CFrame、Color3、Transparency、NumberSequence 等。

需要与环境进行程序化交互(手部伸取、头部追踪、不平地面上的脚部摆放)?
→ IKControl(程序化)+ 可选的 AnimationTracks 或用于限制的约束。通常与动画事件结合使用。

**组合使用这些系统:**以较低优先级播放移动轨道,同时使用 IKControl 或补间处理上半身动作或 UI 覆盖层。使用轨道中的标记来启动/停止 IK,或触发补间/效果。

详细信息请参阅 references/3d-animations.md 和 references/ui-tweens-and-sequences.md。

Rig 动画与 IK

在制作、加载或混合 rig 动画,或配置 IK 时,请阅读 3d-animations.md。

  • 通过 Animator 加载轨道。为动作选择优先级、权重、淡入淡出时间和速度。
  • 使用命名标记触发脚步声、效果及其他定时事件。重新发布资源时,保持名称稳定。
  • 决定播放位置并检查资源所有权。在服务器上验证游戏玩法效果。
  • 预加载 Animation 资源并复用已加载的轨道。移除 rig 时,停止轨道并断开其信号连接。
  • 对于 IK,定义链根、末端效应器和目标。在 Play 模式下调整响应速度和关节限制。

使用 TweenService 制作 UI 动画

有关属性示例、缓动、链式转场和打字机文本,请阅读 ui-tweens-and-sequences.md。

使用 scale 和 AnchorPoint 实现自适应动作;如果设计需要固定比例,则添加宽高比约束。使用 CanvasGroup 实现整个面板的淡出。取消相互冲突的补间,并在序列结束或 GUI 被销毁时断开完成处理程序。

显示文本时,使用 TextLabel.MaxVisibleGraphemes,并考虑本地化和 Unicode 字符边界。

将动作与其他系统结合

  • 动画标记 → 其他所有内容:脚步标记 → 播放声音,并在脚部 Attachment 处生成粒子。攻击标记 → 启用命中框或 IK 触及效果,并生成枪口闪光。“AbilityStart”标记 → 在 UI 冷却环或 BillboardGui 上启动 Tween。
  • 使用优先级和权重进行分层:闲置(低)+ 行走(中)+ 动作(高,权重 1.0,并淡入)。在运行时使用 AdjustWeight 和 AdjustSpeed。
  • 客户端与服务端播放:对于玩家自己的角色,在客户端播放的动画会通过 Animator 同步到服务端(受所有权/权限限制);对于 NPC 和其他角色,服务端拥有权威性。装饰性动画或适合预测的动画可以仅在客户端播放。影响游戏玩法的时机(伤害判定窗口、移动锁定)应由服务端验证;不要将客户端标记视为命中的权威证明。
  • 预加载并缓存轨道:每种 rig 类型只加载一次,重复使用 AnimationTrack 对象。需要预览或流式加载行为时,使用 AnimationClipProvider 异步加载动画。
  • UI 与 3D 协调:对 3D 部件或 Attachment 使用 Tween,同时也对其上的 BillboardGui 或 SurfaceGui 使用 Tween(或使用 ViewportFrame 嵌入 3D 预览,其中包含部件/网格/摄像机;请注意,ParticleEmitter/Beam/Trail/Light 不会在 ViewportFrame 内渲染)。
  • 测试:不同设备的帧率和输入延迟各不相同。在手机和桌面设备上测试缓动效果。使用 MicroProfiler 检查大量 Tween 同时运行时的性能。

常见错误

  • 使用 Humanoid:LoadAnimation(anim)(已弃用;请使用 Animator)。
  • 每帧轮询 track.TimePosition,而不是使用标记。
  • 对 Tween 使用原始像素偏移,而不是缩放 + AnchorPoint(分辨率/宽高比变化时会出错)。
  • 播放高优先级动作时不设置淡入时间(显得突兀)。
  • 从不预加载(首次播放时会卡顿)。
  • 所有内容都使用相同的低 AnimationPriority(闲置动画会与动作动画冲突)。
  • 忽略 IK 约束(肘部/膝盖向后弯曲,手腕处于不可能的角度)。
  • 不使用 CanvasGroup 或布局,而是对数十个独立 UI 元素分别使用 Tween。

示例与验证

当辅助工具适用于任务时,可调整 AnimationLoader.lua、TweenHelper.lua 或 IKSetup.lua。

修改动画后,请验证它是否以预期优先级播放、是否触发其标记,以及 rig 移除时是否正确清理。对于 UI 动画,请检查目标屏幕尺寸和取消路径。当动作驱动其他系统时,请使用 integration-and-events.md。

参考索引

评论

支持 Markdown