threejs-animation
$
npx mdskill add partme-ai/full-stack-skills/threejs-animationManages three.js keyframe animations, including mixing clips, crossfading actions, and handling procedural rigs for glTF or custom tracks.
- Helps with playing, blending, and authoring animations in 3D scenes using keyframe systems.
- Integrates with three.js AnimationMixer, AnimationClip, AnimationAction, and addons like AnimationClipCreator and CCDIKSolver.
- Triggers on mentions of specific APIs, such as AnimationMixer, crossFade, or KeyframeTrack, to provide relevant guidance.
- Presents recommendations based on user queries about animation playback, clip management, or procedural rigging tasks.
SKILL.md
.github/skills/threejs-animationView on GitHub ↗
--- name: threejs-animation description: "three.js keyframe animation system: AnimationMixer, AnimationClip, AnimationAction, KeyframeTrack variants, PropertyBinding, PropertyMixer, AnimationObjectGroup, AnimationUtils; mixing and crossfading clips, loop modes, timeScale, weight; addon AnimationClipCreator and CCDIKSolver for procedural rigs. Use when playing glTF clips, blending actions, or authoring procedural tracks; for skin deformation rigging on meshes see threejs-objects; for math interpolants without clips see threejs-math only when not tied to AnimationMixer." --- ## When to use this skill **ALWAYS use this skill when the user mentions:** - `AnimationMixer.update`, `AnimationAction` play/pause/stop, crossfade, synchronized clips - `AnimationClip` from glTF or `AnimationClipCreator`, retargeting caveats at API level - Keyframe tracks: position/rotation/scale/color tracks, boolean/string tracks where applicable - IK: `CCDIKSolver` / `CCDIKHelper` from addons **IMPORTANT: animation vs objects** - **threejs-animation** = time evaluation and tracks. - **threejs-objects** = `SkinnedMesh`/`Skeleton` attachment, bind pose—mesh side. **Trigger phrases include:** - "AnimationMixer", "AnimationAction", "AnimationClip", "crossFade", "KeyframeTrack" - "动画混合", "骨骼动画", "剪辑", "淡入淡出" ## How to use this skill 1. **Collect clips** from `gltf.animations` or create with utilities / `AnimationClipCreator`. 2. **Create mixer** bound to root object (often `scene` or rig root). 3. **Create actions** per clip via `mixer.clipAction(clip)`; configure loop mode (`LoopOnce`, `LoopRepeat`, `LoopPingPong`). 4. **Per frame**: compute delta seconds (use `Clock` from core—documented under Core in docs index), call `mixer.update(delta)`. 5. **Blending**: adjust `weight`, `crossFadeTo`, `enabled` flags; watch for additive vs full replacement semantics per docs. 6. **PropertyBinding**: understand path strings targeting bones/morphs—errors often from wrong object names. 7. **IK addon**: attach solver after base animation if using CCD IK from examples. See [examples/workflow-mixer-action.md](examples/workflow-mixer-action.md). ## Doc map (official) | Docs section | Representative links | |--------------|----------------------| | Animation (index) | https://threejs.org/docs/#Animation | | Action | https://threejs.org/docs/AnimationAction.html | | Mixer | https://threejs.org/docs/AnimationMixer.html | | Clip | https://threejs.org/docs/AnimationClip.html | | Tracks | https://threejs.org/docs/KeyframeTrack.html | More: [references/official-sections.md](references/official-sections.md). ## Scope - **In scope:** Core Animation module, keyframe pipeline, listed addons for clip creation and IK. - **Out of scope:** DCC export best practices; physics ragdoll; audio sync (link conceptually only). ## Common pitfalls and best practices - Forgetting `mixer.update` freezes animation; double `update` per frame speeds up. - Mixing clips with incompatible hierarchies causes violent pops—validate bind pose. - Root motion must be handled in game logic if not baked—document explicitly. - Large track counts cost CPU—strip unused tracks in preprocessing when possible. ## Documentation and version Behavior of `AnimationMixer`, tracks, and glTF animation import can change between three.js majors. Treat the [Animation](https://threejs.org/docs/#Animation) section of the [docs index](https://threejs.org/docs/) as authoritative for the user’s installed version; when upgrading, check the three.js repository release notes and migration notes for renamed properties or loader output. ## Agent response checklist When answering under this skill, prefer responses that: 1. Cite the exact class (`AnimationMixer`, `AnimationAction`, etc.) or addon (`CCDIKSolver`) from the official docs. 2. Include at least one `https://threejs.org/docs/...` link (e.g. [AnimationAction](https://threejs.org/docs/AnimationAction.html)). 3. Relate clips to `SkinnedMesh` / skeleton via **threejs-objects** when deformation is involved. 4. Mention `mixer.update(delta)` and a stable time source (`Clock`) explicitly. 5. Reference official **examples** by name only (no full file paste). ## References - https://threejs.org/docs/#Animation - https://threejs.org/docs/AnimationMixer.html - https://threejs.org/docs/AnimationAction.html - https://threejs.org/docs/PropertyBinding.html ## Keywords **English:** animationmixer, animationaction, animationclip, keyframetrack, crossfade, skinning, propertybinding, three.js **中文:** 动画混合、AnimationMixer、AnimationAction、关键帧、骨骼动画、剪辑、淡入淡出、three.js
More from partme-ai/full-stack-skills
- adobe-xd"Guides creation of UI/UX designs, interactive prototypes, reusable components, and design specs in Adobe XD. Use when the user asks about Adobe XD artboards, prototype links, repeat grids, component states, design tokens export, or developer handoff."
- angular"Provides comprehensive guidance for Angular framework including components, modules, services, dependency injection, routing, forms, and TypeScript integration. Use when the user asks about Angular, needs to create Angular applications, implement Angular components, or work with Angular features."
- ansible"Provides comprehensive guidance for Ansible automation including playbooks, roles, inventory, and module usage. Use when the user asks about Ansible, needs to automate IT tasks, create Ansible playbooks, or manage infrastructure with Ansible."
- ant-design-mini"Builds mini-program UIs with Ant Design Mini components for Alipay and WeChat mini-programs. Covers Button, Form, List, Modal, Tabs, NavBar, and 60+ components with theme customization and CSS variable theming. Use when the user needs to create mini-program interfaces with Ant Design Mini, configure themes, or implement mini-program-specific UI patterns."
- ant-design-mobile"Builds React mobile UIs with Ant Design Mobile (antd-mobile) components including Button, Form, List, Modal, Picker, Tabs, PullToRefresh, InfiniteScroll, and 50+ mobile-optimized components. Use when the user needs to create mobile-first React interfaces, implement mobile navigation, forms, or data display with Ant Design Mobile."
- ant-design-react"Builds enterprise React UIs with Ant Design (antd) including 60+ components (Button, Form, Table, Select, Modal, Message), design tokens, TypeScript support, and ConfigProvider theming. Use when the user needs to create React applications with Ant Design, build forms with validation, display data tables, or customize the Ant Design theme."
- ant-design-vueProvides comprehensive guidance for Ant Design Vue (AntDV) component library for Vue 3. Covers installation, usage, API reference, templates, and all component categories. Use when building enterprise-class UI with Vue 3 and Ant Design.
- api-doc-generator"Generate API documentation by scanning Controller classes, extracting endpoint URLs, HTTP methods, parameters, and response structures, then producing standardized docs from templates. Use when the user explicitly mentions generating API documentation, creating API docs, scanning interfaces, or documenting REST APIs. Do not trigger for generic documentation requests without explicit API mention."
- appium"Provides comprehensive guidance for Appium mobile testing including mobile app automation, element location, gestures, and cross-platform testing. Use when the user asks about Appium, needs to test mobile applications, automate mobile apps, or write Appium test scripts."
- ascii-ansi-colorizer"Add an ANSI color layer to existing ASCII/plain-text output (gradient/rainbow/highlights) with alignment-safe rules and a required no-color fallback. Use when the user wants to colorize terminal output, add rainbow effects to CLI text, or style ASCII art with ANSI colors."