mcpField
T
threejs-animation

threejs-animation

github.com/full-stack-skills开发10401 次安装4 周前更新
代码仓库

关于 threejs-animation

threejs-animation 是面向处理 three.js 动画的 Agent 技能,涵盖动画剪辑、动作、混合器、关键帧轨道及指定逆运动学插件。它讲解动画设置与更新,并将网格和骨架相关问题划分给相邻技能。

主要功能

  1. 01AnimationMixer 与 AnimationAction 工作流
  2. 02处理动画剪辑和关键帧轨道
  3. 03逐帧更新混合器与混合动画
  4. 04排查 PropertyBinding 问题
  5. 05指导使用 CCDIKSolver 和 CCDIKHelper

适用场景

  1. 01播放并混合动画剪辑
  2. 02使用 glTF 动画剪辑驱动场景
  3. 03排查指向骨骼或变形目标的轨道
  4. 04添加 CCD 逆运动学求解

安装

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

$npx skills add https://github.com/full-stack-skills/threejs-skills --skill threejs-animation

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

包含的文件

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

agents/
openai.yaml
examples/
workflow-mixer-action.md
references/
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"
  • "动画混合"、"骨骼动画"、"剪辑"、"淡入淡出"

如何使用此技能

  1. 收集片段:从 gltf.animations 获取,或使用实用工具/AnimationClipCreator 创建。
  2. 创建混合器:将混合器绑定到根对象(通常是 scene 或 rig 根节点)。
  3. 创建动作:通过 mixer.clipAction(clip) 为每个片段创建动作;配置循环模式(LoopOnce、LoopRepeat、LoopPingPong)。
  4. 逐帧更新:计算 delta 秒数(使用 core 中的 Clock——文档索引的 Core 部分有说明),调用 mixer.update(delta)。
  5. 混合:调整 weight、crossFadeTo、enabled 标志;留意文档中关于叠加与完整替换语义的说明。
  6. PropertyBinding:理解用于定位骨骼/变形目标的路径字符串——错误通常源于对象名称不正确。
  7. IK addon:如果使用示例中的 CCD IK,请在基础动画之后附加求解器。

参见 examples/workflow-mixer-action.md。

文档导航(官方)

文档部分代表性链接
Animation(索引)https://threejs.org/docs/#Animation
Actionhttps://threejs.org/docs/AnimationAction.html
Mixerhttps://threejs.org/docs/AnimationMixer.html
Cliphttps://threejs.org/docs/AnimationClip.html
Trackshttps://threejs.org/docs/KeyframeTrack.html

更多内容:references/official-sections.md。

范围

  • 范围内: Core Animation 模块、关键帧处理流程,以及用于创建片段和 IK 的列出插件。
  • 范围外: DCC 导出最佳实践、物理布娃娃、音频同步(仅概念性关联)。

常见问题与最佳实践

  • 忘记调用 mixer.update 会导致动画冻结;每帧调用两次 update 会加快动画。
  • 混合层级结构不兼容的片段会造成剧烈跳变——请验证绑定姿势。
  • 如果根运动未烘焙,必须在游戏逻辑中处理——请明确说明。
  • 轨道数量过多会消耗 CPU——尽可能在预处理中移除未使用的轨道。

文档与版本

AnimationMixer、轨道和 glTF 动画导入的行为可能随 three.js 主版本变化而改变。请以用户所安装版本对应的 docs index 中的 Animation 部分为准;升级时,请查看 three.js 仓库的发行说明和迁移说明,了解重命名的属性或加载器输出的变化。

Agent 回答检查清单

使用此技能作答时,优先做到以下几点:

  1. 引用官方文档中的确切类(AnimationMixer、AnimationAction 等)或插件(CCDIKSolver)。
  2. 至少提供一个 https://threejs.org/docs/... 链接(例如 AnimationAction)。
  3. 涉及形变时,通过 threejs-objects 说明片段与 SkinnedMesh/骨架的关系。
  4. 明确提及 mixer.update(delta) 和稳定的时间来源(Clock)。
  5. 仅按名称引用官方 examples(不要粘贴完整文件)。

参考资料

关键词

English: animationmixer, animationaction, animationclip, keyframetrack, crossfade, skinning, propertybinding, three.js

中文: 动画混合、AnimationMixer、AnimationAction、关键帧、骨骼动画、剪辑、淡入淡出、three.js

评论

支持 Markdown