关于 roblox-animation
面向 Roblox 开发的动画技能,指导选择并协同角色动画、TweenService 动效和程序化 IK。它将动画事件与视觉效果衔接,同时强调由服务器验证游戏玩法结果。
主要功能
- 01选择角色、补间或 IK 动效
- 02加载并混合动画轨道
- 03用标记触发定时事件
- 04使用 TweenService 制作 UI 转场
- 05配置程序化 IK 姿势
- 06在服务器验证玩法效果
适用场景
- 01将移动动画与上身 IK 分层
- 02在动画标记处触发音效或特效
- 03制作自适应 UI 动效
- 04检查角色移除时的动画清理
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ nonlooped/ roblox-suite --skill roblox-animation安装后在 Claude Code 中输入/roblox-animation确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/3d-animations.mdintegration-and-events.mdui-tweens-and-sequences.mdscripts/AnimationLoader.luaIKSetup.luaTweenHelper.lua详细介绍
roblox-animation
对于经过设计的 rig 动作,请选择动画轨道;对于属性变化,请使用 TweenService;对于程序化姿势,请使用 IKControl。即使客户端动画触发了视觉效果,也要在服务器上验证游戏玩法结果。
主要官方来源:
- https://create.roblox.com/docs/animation(概述)
- https://create.roblox.com/docs/animation/editor
- https://create.roblox.com/docs/animation/inverse-kinematics
- https://create.roblox.com/docs/animation/events
- https://create.roblox.com/docs/ui/animation(UI 补间 + 打字机效果)
- 引擎:Animator、AnimationTrack、Animation、AnimationClipProvider、IKControl、TweenService、TweenInfo、Tween、Enum.AnimationPriority、Enum.EasingStyle 等。
- 完整参考:https://create.roblox.com/docs/reference/engine
跨技能用法:
- 结合 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。
参考索引
- 3d-animations.md:制作或加载 rig 动画、混合轨道,或配置 IK。
- integration-and-events.md:将动画标记与游戏玩法、效果、音频或 UI 同步。
- ui-tweens-and-sequences.md:对 UI 属性使用 Tween、串联过渡效果,或显示文本。