形を変える(Morph)

このページでは、GSAP(MorphSVG・DrawSVG)とFramer Motionを使ったSVGモーフィングアニメーションの実装パターンをインタラクティブなデモとコードで確認できます。

💡 GSAPのMorphSVGプラグインは2025年4月より完全無料で利用可能になりました。

SVGモーフィングとは、SVGのpathデータを補間してなめらかに形状を変化させる技術。ロゴアニメーション・アイコン切り替え・インタラクティブなグラフィックなどで使われる。

GSAPのMorphSVGはパスの点数が異なる形状間でも自動補間するため、複雑な形状の変形が可能。Framer MotionはSVGのd属性アニメーションに対応しているが、点数が一致する単純な形状のみ対応。

Framer Motion

① 図形の変形(d属性アニメーション)

※ Framer Motionはd属性の点数が一致する形状間のみ変形可能

② アイコンの変形(ハンバーガー → ×)

ハンバーガーメニュー

③ ロゴのモーフィング

⚠️ Framer Motionは複雑な形状のモーフィングに非対応

星形やハートのような複雑な形状は点数が異なるため、Framer MotionのSVGアニメーションでは対応できません。 GSAPタブのMorphSVGPluginでは点数が異なる形状間でも自動補間するため、自由に変形できます。

④ パスの描画(pathLength)

実装方法の比較

項目Framer MotionGSAP
形状変形d属性アニメーション対応。ただし点数が一致する形状のみMorphSVGが点数の異なる形状間でも自動補間
複雑な形状非対応(点数不一致だと崩れる)自動でパスを分割・補間するため複雑な形状も対応
パスの描画pathLengthとpathOffsetで対応strokeDashoffsetをアニメーションして対応
アイコン変形点数が一致すれば対応可能MorphSVGで自由に変形可能
実装コスト低(宣言的に書ける)中(MorphSVGプラグインが必要だが直感的)

🤖 AIプロンプトテンプレート

Next.js + GSAP でSVGモーフィングアニメーションを実装してください。
- MorphSVGプラグインで図形を変形(円→四角→三角)
- アイコンの変形(ハンバーガーメニュー→×ボタン)
- useGSAPフックとcontextSafeを使用
- TypeScript / Tailwind CSS v4 を使用