关于 threejs-procedural-animation
面向 Three.js 程序化动画的技能,以语义阶段、坐标系和时间驱动运动为基础,指导轨迹、对接、层级变更与可复现的状态重置。
主要功能
- 01按阶段和坐标系设计运动
- 02解析式移动与弹簧收敛
- 03分解对接误差
- 04重设父级时保留世界变换
- 05帧率无关更新与状态重置
适用场景
- 01制作发射与分离序列
- 02动画化对接和位置校准
- 03构建可复现的碎片运动
- 04保持不同帧率下的动画稳定
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ scottstts/ threejs-awesome-graphics-agent-skills --skill threejs-procedural-animation安装后在 Claude Code 中输入/threejs-procedural-animation确认已加载。
附带文件references/procedural-motion-and-docking-systems.mdagents/openai.yaml
详细介绍
程序化动画
为语义状态制作动画,而不是让无关的变换曲线动起来。在编写逐帧更新之前,先定义阶段、坐标系、速度和归属关系。
构建顺序
- 定义时间线阶段和事件边界。
- 为每种运动选择坐标系:世界坐标、主体局部坐标、轨道径向坐标、对接轴或摄像机镜头坐标。
- 根据该坐标系推导目标位置和朝向。
- 使用解析运动学处理预设行程,使用弹簧实现响应式收敛。
- 将子对象从层级结构中分离时,保留其世界变换。
- 将平移、对齐、自转和次级碎片状态分开处理。
- 限制积分 delta,并在重播或释放时重置所有状态变量。
请阅读 references/procedural-motion-and-docking-systems.md,了解发射、分级、对接、碎片、弹簧、四元数和帧率无关响应的实现。
不可妥协的规则
- 使用经过的秒数和
deltaSeconds;不要基于帧数制作运动。 - 根据方向或坐标系推导朝向,再使用独立的四元数应用滚转或自转。
- 将对接误差分解为轴向分量和径向分量。
- 序列结束时,从弹簧收敛切换为精确的终止姿态。
- 重新设置带动画对象的父级时,在移除对象前记录其世界位置、四元数和缩放。
- 需要可重现运动时,使用带种子的随机数。
- 将视觉抖动限制在有界范围内,并与运动轨迹分开处理。
路由边界
镜头构图和摄像机交接请使用 $threejs-camera-direction。
如果交付内容主要是等离子体、火花或特效池,而非对象变换运动,请使用 $threejs-procedural-vfx。
评论
支持 Markdown