threejs-animation について
threejs-animationは、three.jsのアニメーションクリップ、アクション、ミキサー、キーフレームトラック、および一部の逆運動学アドオンを扱うエージェント向けスキルです。アニメーションの設定と評価を説明し、メッシュやスケルトンの範囲は関連スキルと区別します。
主な機能
- 01AnimationMixerとAnimationActionの手順
- 02クリップとキーフレームトラックの扱い
- 03毎フレームのミキサー更新とブレンド
- 04PropertyBindingの問題調査
- 05CCDIKSolverとCCDIKHelperの指針
活用シーン
- 01アニメーションクリップの再生とブレンド
- 02glTFのクリップによるアニメーション
- 03ボーンやモーフを対象とするトラックの調査
- 04CCD逆運動学ソルバーの追加
インストール
コマンドをコピーしてターミナルで実行します。
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 または
AnimationClipCreatorで作成したAnimationClip、API レベルのリターゲティングに関する注意点 - キーフレームトラック:位置/回転/スケール/色のトラック、および該当する場合はブール値/文字列トラック
- IK:アドオンの
CCDIKSolver/CCDIKHelper
重要:アニメーションとオブジェクトの区別
- threejs-animation =時間評価とトラック。
- threejs-objects =
SkinnedMesh/Skeletonのアタッチ、バインドポーズなど、メッシュ側の処理。
トリガーとなる語句の例:
- "AnimationMixer", "AnimationAction", "AnimationClip", "crossFade", "KeyframeTrack"
- "动画混合", "骨骼动画", "剪辑", "淡入淡出"
このスキルの使用方法
gltf.animationsからクリップを取得するか、ユーティリティ/AnimationClipCreatorで作成します。- ルートオブジェクト(多くの場合
sceneまたはリグのルート)にバインドしたミキサーを作成します。 mixer.clipAction(clip)でクリップごとにアクションを作成し、ループモード(LoopOnce、LoopRepeat、LoopPingPong)を設定します。- フレームごとに:デルタ秒数を計算し(core の
Clockを使用します。ドキュメントインデックスの Core に記載)、mixer.update(delta)を呼び出します。 - ブレンディング:
weight、crossFadeTo、enabledフラグを調整します。ドキュメントを確認し、加算と完全置換のセマンティクスに注意してください。 - PropertyBinding:ボーン/モーフを対象とするパス文字列を理解します。エラーの多くはオブジェクト名の誤りが原因です。
- IK アドオン:サンプルの CCD IK を使用する場合は、基本アニメーションの後にソルバーをアタッチします。
examples/workflow-mixer-action.md を参照してください。
ドキュメントマップ(公式)
| ドキュメントのセクション | 代表的なリンク |
|---|---|
| Animation(インデックス) | 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 |
詳細:references/official-sections.md。
対象範囲
- 対象: Core Animation モジュール、キーフレームのパイプライン、クリップ作成と IK 用に掲載されているアドオン。
- 対象外: DCC のエクスポートに関するベストプラクティス、物理ラグドール、音声同期(概念的な関連付けのみ)。
よくある問題とベストプラクティス
mixer.updateを呼び忘れるとアニメーションが停止し、1 フレームにつき 2 回updateを呼ぶと速度が上がります。- 階層に互換性のないクリップをブレンドすると激しいポップが発生します。バインドポーズを検証してください。
- ルートモーションがベイクされていない場合は、ゲームロジックで処理する必要があります。その旨を明記してください。
- トラック数が多いと CPU コストが増加します。可能な場合は、前処理で未使用のトラックを削除してください。
ドキュメントとバージョン
AnimationMixer、トラック、glTF アニメーションのインポートの動作は、three.js のメジャーバージョン間で変更される場合があります。ユーザーがインストールしているバージョンについては、docs index の Animation セクションを正式な情報源として扱ってください。アップグレード時は、プロパティ名やローダーの出力の変更について、three.js リポジトリのリリースノートと移行ノートを確認してください。
エージェントの回答チェックリスト
このスキルに基づいて回答するときは、次の点を優先してください。
- 公式ドキュメントに記載された正確なクラス(
AnimationMixer、AnimationActionなど)またはアドオン(CCDIKSolver)を挙げます。 https://threejs.org/docs/...のリンクを少なくとも 1 つ含めます(例:AnimationAction)。- 変形が関わる場合は、クリップと
SkinnedMesh/skeleton の関連を threejs-objects と結び付けて説明します。 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
キーワード
英語: animationmixer、animationaction、animationclip、keyframetrack、crossfade、skinning、propertybinding、three.js
中文: アニメーションミキサー、AnimationMixer、AnimationAction、キーフレーム、スケルタルアニメーション、クリップ、クロスフェード、three.js