core-animation について
Core Animation と QuartzCore を直接扱う開発者向けのリファレンススキルです。レイヤー、アニメーション、トランザクション、タイミング、画面更新コールバックの資料をまとめています。
主な機能
- 01QuartzCore トピック索引
- 02レイヤーと階層のガイド
- 03プロパティ・キーフレーム・スプリングアニメーション
- 04アニメーションのグループ化とトランジション
- 05パーティクルとディスプレイリンクの資料
活用シーン
- 01CALayer プロパティのアニメーション
- 02キーフレームやスプリング効果の作成
- 03CATransaction によるレイヤー変更の一括処理
- 04パーティクルやフレーム駆動効果の構築
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ prisma-labs-dev/ apple-skills --skill core-animationインストール後、Claude Code で/core-animationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
caanimation.mdcaanimationgroup.mdcabasicanimation.mdcadisplaylink.mdcaemittercell.mdcaemitterlayer.mdcagradientlayer.mdcakeyframeanimation.mdcalayer.mdcamediatiming.mdcametallayer.mdcapropertyanimation.mdcareplicatorlayer.mdcashapelayer.mdcaspringanimation.mdcatextlayer.mdcatiledlayer.mdcatransaction.mdcatransform3d.mdcatransition.mdcore-animation-index.md詳細
Core Animation リファレンス
これらのドキュメントを検索して、Core Animation(QuartzCore フレームワーク)に関する質問に回答してください。CALayer、レイヤーバックの UIKit/AppKit ビュー、レイヤープロパティの明示的なキーフレームアニメーションまたはスプリングアニメーション、パーティクルシステム、CADisplayLink によるフレームごとのコールバックを直接扱う場合に、このスキルを使用してください。
SwiftUI の宣言型アニメーション API(withAnimation、Animation、.animation(_:value:)、トランジション)には、Apple の swiftui-specialist スキル(そのアニメーションリファレンス)を使用してください。SwiftUI の即時モード描画には、swiftui/canvas.md と swiftui/graphicscontext.md を使用してください。
返答形式
必ず以下を含めてください。
- 概要 — 質問への回答を簡潔に示します。
- ファイルパス — 詳細を確認できる関連ファイルを列挙します。例:
- レイヤーのジオメトリ、コンテンツ、階層については
calayer.md - 2 つの値の間で単一のプロパティをアニメーションさせる場合は
cabasicanimation.md - バッチ処理、暗黙的なアニメーションの無効化、デフォルトの継続時間の変更については
catransaction.md
- レイヤーのジオメトリ、コンテンツ、階層については
ファイル
| ファイル | 内容 |
|---|---|
core-animation-index.md | QuartzCore フレームワークの完全な索引 — レイヤーの基本、アニメーションクラス、トランザクション、レイヤーサブクラス |
calayer.md | CALayer — ルートレイヤークラス:ジオメトリ、コンテンツ、階層、レイアウト、アニメーション |
caanimation.md | CAAnimation — すべての Core Animation アニメーション型の抽象基底クラス |
capropertyanimation.md | CAPropertyAnimation — 単一のレイヤープロパティをアニメーションさせる抽象サブクラス |
cabasicanimation.md | CABasicAnimation — 2 つの値の間でレイヤープロパティを補間 |
cakeyframeanimation.md | CAKeyframeAnimation — 一連のキーフレームに沿ってプロパティをアニメーション |
caspringanimation.md | CASpringAnimation — 質量、剛性、減衰を使ったスプリングベースの補間 |
caanimationgroup.md | CAAnimationGroup — 共通の継続時間で複数のアニメーションを同時に実行 |
catransition.md | CATransition — レイヤーの状態間でフェード、押し出し、表示、移動のトランジションを実行 |
camediatiming.md | CAMediaTiming — レイヤーとアニメーションに共通するプロトコル(beginTime、duration、repeat、speed) |
catransaction.md | CATransaction — プロパティ変更のバッチ処理、暗黙的なアニメーションの無効化、デフォルトの継続時間/タイミングの設定 |
catransform3d.md | CATransform3D — 3D 変換のために CALayer.transform が使用する 4×4 行列 |
cashapelayer.md | CAShapeLayer — CGPath で制御するベクターシェイプレイヤー(ストローク、塗りつぶし、破線) |
cagradientlayer.md | CAGradientLayer — 軸方向、放射状、円錐状のグラデーションレイヤー |
caemitterlayer.md | CAEmitterLayer — パーティクルエミッターレイヤー(火、煙、紙吹雪、きらめき) |
caemittercell.md | CAEmitterCell — CAEmitterLayer で使用する個々のパーティクル定義 |
careplicatorlayer.md | CAReplicatorLayer — オフセットと変換を加えてサブレイヤーを複製 |
cametallayer.md | CAMetalLayer — GPU 描画コンテンツ用の Metal ドローアブルを使うレイヤー |
catextlayer.md | CATextLayer — 通常のテキストまたは属性付きテキストを描画するレイヤー |
catiledlayer.md | CATiledLayer — 大規模またはズーム可能なレイヤー向けのタイルベースの非同期コンテンツ描画 |
cadisplaylink.md | CADisplayLink — ディスプレイのリフレッシュレートと同期するタイマー |
Core Animation を使う場面
- SwiftUI/UIKit では宣言的に公開されていないレイヤープロパティをアニメーションさせる必要がある場合(例:
CAGradientLayer.colors、CAShapeLayer.strokeEnd、CAEmitterLayer.birthRate)。 - セグメントごとにタイミング関数(
CAMediaTimingFunction)を指定して、キーフレームやスプリングを明示的に制御する必要がある場合。 - 暗黙的なアニメーションをまとめて無効にしたい場合(
CATransaction.setDisableActions(true))。 - フレームごとのコールバックに
CADisplayLinkが必要な場合(カスタム描画ループ、スクラブ操作、物理シミュレーションなど)。 CAEmitterLayerで数千個のパーティクルを描画する場合や、CAReplicatorLayerでサブレイヤーを複製する場合。
SwiftUI の withAnimation { ... } や UIKit の UIView.animate { ... } で実現できる問題であれば、そちらを優先してください。Core Animation はその両方の下層で動作するため、2026 年時点のコードで出発点として選ぶことはほとんどありません。
ドキュメントをさらに調べる
- まず、このスキルのローカルな
.mdファイルを検索します。 - 該当するトピックが見つからない場合は、インストール済みのほかの Apple スキルを確認し、そのローカルファイルを grep します。
- どのインストール済みスキルにも該当ページがない場合、Apple のサイトでの QuartzCore のパスは
/documentation/quartzcore/<symbol>です。sosumi.aiの Markdown ミラー(例:https://sosumi.ai/documentation/quartzcore/camediatimingfunction)経由で取得するか、apple-skills ツールを使ってpnpm fetch-docを実行してください。