mcpField
T
threejs-procedural-animation

threejs-procedural-animation

github.com/scottstts创意与媒体946103 次安装6 天前更新
代码仓库

关于 threejs-procedural-animation

面向 Three.js 程序化动画的技能,以语义阶段、坐标系和时间驱动运动为基础,指导轨迹、对接、层级变更与可复现的状态重置。

主要功能

  1. 01按阶段和坐标系设计运动
  2. 02解析式移动与弹簧收敛
  3. 03分解对接误差
  4. 04重设父级时保留世界变换
  5. 05帧率无关更新与状态重置

适用场景

  1. 01制作发射与分离序列
  2. 02动画化对接和位置校准
  3. 03构建可复现的碎片运动
  4. 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

详细介绍

程序化动画

为语义状态制作动画,而不是让无关的变换曲线动起来。在编写逐帧更新之前,先定义阶段、坐标系、速度和归属关系。

构建顺序

  1. 定义时间线阶段和事件边界。
  2. 为每种运动选择坐标系:世界坐标、主体局部坐标、轨道径向坐标、对接轴或摄像机镜头坐标。
  3. 根据该坐标系推导目标位置和朝向。
  4. 使用解析运动学处理预设行程,使用弹簧实现响应式收敛。
  5. 将子对象从层级结构中分离时,保留其世界变换。
  6. 将平移、对齐、自转和次级碎片状态分开处理。
  7. 限制积分 delta,并在重播或释放时重置所有状态变量。

请阅读 references/procedural-motion-and-docking-systems.md,了解发射、分级、对接、碎片、弹簧、四元数和帧率无关响应的实现。

不可妥协的规则

  • 使用经过的秒数和 deltaSeconds;不要基于帧数制作运动。
  • 根据方向或坐标系推导朝向,再使用独立的四元数应用滚转或自转。
  • 将对接误差分解为轴向分量和径向分量。
  • 序列结束时,从弹簧收敛切换为精确的终止姿态。
  • 重新设置带动画对象的父级时,在移除对象前记录其世界位置、四元数和缩放。
  • 需要可重现运动时,使用带种子的随机数。
  • 将视觉抖动限制在有界范围内,并与运动轨迹分开处理。

路由边界

镜头构图和摄像机交接请使用 $threejs-camera-direction。 如果交付内容主要是等离子体、火花或特效池,而非对象变换运动,请使用 $threejs-procedural-vfx。

评论

支持 Markdown