お問い合わせ
  • アニメーション
  • JavaScript

【GSAP】SVGアニメーション上級編|描画・変形を実務で使いこなす

過去の記事では、GSAPを使ったSVGアニメーションの基礎や導入方法を紹介しました。今回はその続編の、より実務で使えるSVGアニメーション上級編となります。

GSAPでSVGアニメーションは触ったことがあるけれど、表現の幅を広げたい」という方におすすめな内容です!

▼GSAPのSVGアニメーションをまだ触ったことがない方や、導入方法が知りたい方はこちら
【GSAP】SVGプラグインで線と形を動かすテクニック

【MorphSVG】 アニメーションタイミング調整

MorphSVGプラグインは、SVGの形状を滑らかに変形できる非常に強力なプラグインです。
基本的な使い方や導入方法については、過去の記事で解説しているため、今回は 「アニメーションのタイミング」 に焦点を当てて解説します。

MorphSVGは、ただパスを別の形に変えるだけでもサイトに使えます。しかしそれだけでは、SVGアニメーションとしての完成度は高くなりません。
重要なのは「どの形に変形するか」よりも、「いつ・どのスピードで変形させるか」 です。
タイミングを意識することで、SVGアニメーションは「動き」から「演出」へと変わります。

durationで「変形の印象」をコントロールする

MorphSVGでは、durationの値によって印象が大きく変わります。
例えば、次のように0.4秒で変形させると、動きが一瞬で終わるため、やや唐突な印象になります。

See the Pen
【GSAP】SVGAdvanced_No1
by ishi (@qwwbetnz-the-typescripter)
on CodePen.

このようにdurationを意識せずに設定すると、「変形したこと」は伝わっても、動きとしての気持ちよさが感じられません。アイコンやロゴの変形では、0.6〜1.2秒前後を目安に調整すると、自然なSVGアニメーションになりやすいです。

easeを使って変形に「気持ちよさ」を加える

MorphSVGでは、イージングによって変形の質感が大きく変わります。
同じアニメーションでも、easeを変えるだけで印象が大きく変わります。

▼ease: “power4.in”

See the Pen
【GSAP】SVGAdvanced_No2
by ishi (@qwwbetnz-the-typescripter)
on CodePen.

▼ease: “power1.inOut”

See the Pen
【GSAP】SVGAdvanced_No3
by ishi (@qwwbetnz-the-typescripter)
on CodePen.

上記の二つはease以外はすべて同じ設定です。easeが違うだけで、アニメーションの印象が変わるのを感じられるかと思います。

  • power4.in:ゆっくり動き出し、後半に向かって強く加速する変形

  • power1.inOut:自然でクセのない変形

 SVGアニメーションでは、こうしたわずかな違いが「気持ちいい動き」か「少し違和感のある動き」かを分けます。まずはクセの少ない inOut系のイージングを基準に考えるのがおすすめです。

MorphSVGのアニメーションタイミング調整:まとめ

MorphSVGでは、形そのものよりも「タイミング設計」がアニメーションの印象を大きく左右します。
durationとeaseを意識して調整するだけで、SVGアニメーションは一気に洗練された表現になります。こうした細かな調整がクオリティの差につながります。

【MorphSVG】 複雑なパスでも問題ないか?

複雑なパス同士の変形は、思ったより失敗しにくい

MorphSVGプラグインを使ったパス変形は、形が違いすぎると失敗するのではないか?と思い、試してみました。
しかし実際に試してみると、アンカーポイント数や構造が異なっていても、意外と問題なく変形します。
内部でパスを自動補正するため、多少構造が違っていても自然な変形になるようです。

そのため、実務においては「事前に完璧なパスを用意する」よりも、「まずは動かしてみる」というアプローチで問題なさそうです。

See the Pen
【GSAP】SVGAdvanced_No5
by ishi (@qwwbetnz-the-typescripter)
on CodePen.

↑このように全く違う形でも、少し違和感はあるかもしれませんがスムーズに変化しました。

【MorphSVG】 ローディングに活用する(実践)

MorphSVGプラグインを使うことで、SVGを変形させながら、ローディングの状態遷移を表現できます。
回り続けるだけのローダーとは異なり、完了が直感的に伝わるアニメーションを実装できる点が大きな特徴です。

ローディング中と完了を1つのSVGで表現する

基本的な考え方はシンプルです。

  • ローディング中は円や線をアニメーションさせる
  • 処理完了時に別の形へ変形させる
  • 変形が終わったらアニメーションを停止する

この流れを1つのSVG内で完結させることで、スムーズなローディング表現を作ることができます。

See the Pen
【GSAP】SVGAdvanced_No6
by ishi (@qwwbetnz-the-typescripter)
on CodePen.

【DrawSVG】 複数SVGを連結してタイムライン化(実践)

SVGアニメーションを実務で使う場合、複数の線や図形を順番につなげて演出することがほとんどです。
こうした演出をシンプルに管理できるのが、GSAPのTimeline × DrawSVGプラグインの組み合わせです。
Timelineを使うことで、

  • 複数SVGアニメーションを1つの流れとして管理できる
  • アニメーションの開始タイミングを直感的に調整できる

といったメリットがあります。

手順

①DrawSVGプラグインで複数パスを順番に描画する

まずは、複数のSVGパスを用意し、それぞれのpathをDrawSVGで描画アニメーションさせていきます。

<svg viewBox="0 0 200 50" width="500" height="100" aria-hidden="true">
  <path id="line1" d="M10 25 L60 25" />
  <path id="line2" d="M80 25 L130 25" />
  <path id="line3" d="M150 25 L200 25" />
</svg>

②TimelineでSVGアニメーションを連結する

See the Pen
【GSAP】SVGAdvanced_No1
by ishi (@qwwbetnz-the-typescripter)
on CodePen.

このコードでは、line1→line2→line3の順に描画され、順序立ったSVGアニメーションを実現できます。
Timeline化することで、「線が1本ずつ描かれていく」ような視線誘導のある演出が可能になります。

③タイミングを重ねてテンポを調整する

すべてを完全に順番再生すると、少し間延びして見えることがあります。
そんなときは、相対指定("-=〇〇" を使ってアニメーションのタイミングを重ねます。

See the Pen
【GSAP】SVGAdvanced_No2
by ishi (@qwwbetnz-the-typescripter)
on CodePen.

これにより、前の線が描かれ終わる前に次の線が動き出し、リズム感のあるSVGアニメーションになります。

実務での活用シーン

この「複数SVGを連結してタイムライン化する手法」は、次のような場面でよく使われます。

  • ロゴや見出しの線画アニメーション

  • ファーストビューなどの目立たせたい箇所のアニメーション

  • スクロール開始時のアイキャッチ演出

SVGアニメーションは派手にしすぎなくても、線が描かれるだけで視線を自然に誘導できるのが大きな強みです。

DrawSVGをタイムライン化:まとめ

  • 複数SVGはTimelineでまとめて管理する

  • 間延びを感じる時は、次のアニメーションを少し重ねると見やすいアニメーションになる

【DrawSVG】 進行度をスクロール連動にする(実践)

DrawSVGは、SVGの線を時間ではなくスクロール操作に合わせて描画させることもできます。
ScrollTriggerと組み合わせることで、ユーザーの操作に応じてアニメーションの進行度を制御できます。

ここでは、DrawSVGの進行度をスクロールに連動させる例を紹介します。

スクロール連動のDrawSVG

通常のDrawSVGは、durationを基準に線が描かれます。
ScrollTriggerを使う場合は、スクロール位置がそのまま描画の進行度になります

時間軸ではなく、「どこまでスクロールしたか」を基準にアニメーションが進む、という点がポイントです。

実務での使いどころ

背景装飾やセクションの区切りなど、動きすぎず、操作に自然に追従させたい演出と相性が良いです。
スクロールに合わせて線が少しずつ描かれるだけでも、視線誘導や没入感をさりげなく高めることができます。

See the Pen
【GSAP】SVGAdvanced_No4
by ishi (@qwwbetnz-the-typescripter)
on CodePen.

まとめ

GSAPを使ったSVGアニメーションは、単に動かすだけでなく、タイミング・連なり・状態遷移を意識することで表現の質が大きく変わります。

DrawSVGで線を描き、Timelineで流れを作り、MorphSVGで形を変える。
これらを組み合わせることで、SVGアニメーションは単なる装飾ではなく、楽しい演出にすることができます。

まずは細かく作り込もうとせず、動かしてみて「ちょっと違うな」と感じた部分を調整するところから始めても大丈夫です!
ぜひSVGアニメーションをたくさん試してみて、あなたのサイトに合ったアニメーション作成をしてみてください。

【関連記事】

▼GSAPの導入方法や、アニメーションの作り方を知りたい方はこちら
GSAP入門編|アニメーションの作り方を解説

▼GSAPの基礎や特徴、事例を知りたい方はこちら
GSAPの基礎と特徴を徹底解説|事例から学ぶ活用法

ドコドア エンジニア部

ドコドア エンジニア部

Flutterなどの技術を活用し、ユーザーにとって価値ある高品質なモバイルアプリ・Webアプリの開発に取り組んでいます。
このブログでは、アプリ開発の現場で培ったフロントエンド、バックエンド、インフラ構築の知識から生成AI活用のノウハウまで、実践的な情報をアプリ開発に悩む皆様へ向けて発信しています!
【主な技術スタック】 Flutter / Firebase / Svelte / AWS / GCP / OpenAI API

Contact Us

Web制作、Webマーケティング、SFA・MA導入支援に関するお悩みがある方は、お気軽にご相談ください。

お問い合わせ・ご相談

ホームページ制作、マーケティングにおける
ご相談はお気軽にご連絡ください。

資料請求

会社案内や制作実績についての資料を
ご希望の方はこちらから。

お電話でのお問い合わせ

お電話でのご相談も受け付けております。

※コールセンターに繋がりますが、営業時間内は即日
担当より折り返しご連絡をさせて頂きます。

9:00-18:00 土日祝休み

電話する 無料相談はこちら