关于 threejs-animation
threejs-animation 是面向处理 three.js 动画的 Agent 技能,涵盖动画剪辑、动作、混合器、关键帧轨道及指定逆运动学插件。它讲解动画设置与更新,并将网格和骨架相关问题划分给相邻技能。
主要功能
- 01AnimationMixer 与 AnimationAction 工作流
- 02处理动画剪辑和关键帧轨道
- 03逐帧更新混合器与混合动画
- 04排查 PropertyBinding 问题
- 05指导使用 CCDIKSolver 和 CCDIKHelper
适用场景
- 01播放并混合动画剪辑
- 02使用 glTF 动画剪辑驱动场景
- 03排查指向骨骼或变形目标的轨道
- 04添加 CCD 逆运动学求解
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ full-stack-skills/ threejs-skills --skill threejs-animation安装后在 Claude Code 中输入/threejs-animation确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlexamples/workflow-mixer-action.mdreferences/official-sections.md详细介绍
适用场景
用户提到以下内容时,始终使用此技能:
AnimationMixer.update、AnimationAction播放/暂停/停止、交叉淡化、同步片段- 来自 glTF 的
AnimationClip或AnimationClipCreator,以及 API 层面的重定向注意事项 - 关键帧轨道:位置/旋转/缩放/颜色轨道,以及适用时的布尔值/字符串轨道
- IK:来自 addons 的
CCDIKSolver/CCDIKHelper
重要:动画与对象的区别
- threejs-animation = 时间评估与轨道。
- threejs-objects =
SkinnedMesh/Skeleton的绑定、绑定姿势——网格侧。
触发词包括:
- "AnimationMixer"、"AnimationAction"、"AnimationClip"、"crossFade"、"KeyframeTrack"
- "动画混合"、"骨骼动画"、"剪辑"、"淡入淡出"
如何使用此技能
- 收集片段:从
gltf.animations获取,或使用实用工具/AnimationClipCreator创建。 - 创建混合器:将混合器绑定到根对象(通常是
scene或 rig 根节点)。 - 创建动作:通过
mixer.clipAction(clip)为每个片段创建动作;配置循环模式(LoopOnce、LoopRepeat、LoopPingPong)。 - 逐帧更新:计算 delta 秒数(使用 core 中的
Clock——文档索引的 Core 部分有说明),调用mixer.update(delta)。 - 混合:调整
weight、crossFadeTo、enabled标志;留意文档中关于叠加与完整替换语义的说明。 - PropertyBinding:理解用于定位骨骼/变形目标的路径字符串——错误通常源于对象名称不正确。
- IK addon:如果使用示例中的 CCD IK,请在基础动画之后附加求解器。
参见 examples/workflow-mixer-action.md。
文档导航(官方)
更多内容:references/official-sections.md。
范围
- 范围内: Core Animation 模块、关键帧处理流程,以及用于创建片段和 IK 的列出插件。
- 范围外: DCC 导出最佳实践、物理布娃娃、音频同步(仅概念性关联)。
常见问题与最佳实践
- 忘记调用
mixer.update会导致动画冻结;每帧调用两次update会加快动画。 - 混合层级结构不兼容的片段会造成剧烈跳变——请验证绑定姿势。
- 如果根运动未烘焙,必须在游戏逻辑中处理——请明确说明。
- 轨道数量过多会消耗 CPU——尽可能在预处理中移除未使用的轨道。
文档与版本
AnimationMixer、轨道和 glTF 动画导入的行为可能随 three.js 主版本变化而改变。请以用户所安装版本对应的 docs index 中的 Animation 部分为准;升级时,请查看 three.js 仓库的发行说明和迁移说明,了解重命名的属性或加载器输出的变化。
Agent 回答检查清单
使用此技能作答时,优先做到以下几点:
- 引用官方文档中的确切类(
AnimationMixer、AnimationAction等)或插件(CCDIKSolver)。 - 至少提供一个
https://threejs.org/docs/...链接(例如 AnimationAction)。 - 涉及形变时,通过 threejs-objects 说明片段与
SkinnedMesh/骨架的关系。 - 明确提及
mixer.update(delta)和稳定的时间来源(Clock)。 - 仅按名称引用官方 examples(不要粘贴完整文件)。
参考资料
- https://threejs.org/docs/#Animation
- https://threejs.org/docs/AnimationMixer.html
- https://threejs.org/docs/AnimationAction.html
- https://threejs.org/docs/PropertyBinding.html
关键词
English: animationmixer, animationaction, animationclip, keyframetrack, crossfade, skinning, propertybinding, three.js
中文: 动画混合、AnimationMixer、AnimationAction、关键帧、骨骼动画、剪辑、淡入淡出、three.js
评论
支持 Markdown