見えないペンで描いてるみたい!SVGアニメーションを作る方法
Web界隈におけるアニメーションの歴史を紐解くと、まずはGIFアニメから始まります。
まるでノートのページの隅を指でめくっているような原始的なパラパラマンガのようですが、静止画に比べれば情報量が非常に多く、Web広告などでも次々に採用されていきました。
さらに、Flashを使ったアニメーションや、CSSを使ったアニメーションなど、動きを見せるテクノロジーは次々にやってきます。
そして近年大きく注目を集めているのが、SVGを使ったアニメーションです。
ベクター画像を使ったSVGアニメーションは、GIFのように画像の劣化もせず、Flashほど重くなく、CSSアニメーション以上に柔軟で自由自在です。
ただし、SVGはXML状のコードで再現されるので、初心者にとっては若干敷居が高いというのも事実です。
そこで今回は、SVGアニメーションを作る方法をまとめていきます。
文字で作られているグラフィックという性質上、実はSVGアニメーションを作る方法はいくつかあります。
その中で、自分が最適だと思う方法でSVGアニメーションを作成してみてはいかがでしょうか。
SVGについておさらい
SVGとはScalable Vector Graphicsの略で、画像フォーマットのひとつです。
もともとWebの世界では、JPEGやGIF、PNGといったビットマップ形式(ドット状・ラスタ形式とも言います)のデータが主流でした。
しかし、XMLをベースにマークアップしたベクター形式であるSVGが登場し、Illustratorで編集するベクターデータと同じように拡大や縮小を繰り返しても画像の劣化が起こらない、という特徴があります。
また、通常画像の色を変えたりするには専用のグラフィックソフトを用意する必要がありますが、SVGは厳密には画像データというよりもテキストデータなので、OSに標準で付属しているテキストエディタさえあれば簡単な画像の修正であれば瞬時に行うことができます。
SVGアニメーションを作る方法まとめ
1. SVGを直接マークアップで作成する
コーダーやマークアップエンジニアのように、HTMLに慣れ親しんでいる人にとって一番てっとり早いのは、マークアップで作成する方法かもしれません。
手順としては、*「HTMLファイルにSVGタグでマークアップして図形を描画」(グラフィック作成)→「CSSやJavaScriptを使ってアニメーションを実装」(動きを生成)*という流れになります。
見た目と動きをHTMLとCSS・JavaScriptで分業させる、というのが基本スタイルになります。
例えば、簡単な円を作成する場合、HTMLに次のようなコードを挿入します。
<svg xmlns="http://www.w3.org/2000/svg" width="500" height="150" viewBox="0 0 500 150">
<circle cx="150" cy="200" r="100" fill="#0060e6"></circle>
</svg>
svgタグにあるxmlns属性は、このタグがSVG要素であることを宣言するものです(ただし、URLをブラウザで入力して開いても何も表示されません)。
HTMLタグに埋め込む際には、xmlns属性は省略することもできます。
また、widthとheightはカンバスの大きさ、viewBoxは座標を決めるためのものです。
2行目に挿入されたcircleタグは、縁を描くためのものです。
中心座標と半径、塗りを属性で指定することができます。
実際にはSVG関連のタグはたくさんあります。
以前、下記の記事でSVG関連のタグをまとめておりますので、下記もご参照ください。
参考:
もっと早く知りたかった!SVGを扱うなら知っておきたいタグ&プロパティまとめ
これに対して、CSSでtransitionなどのプロパティを指定して、SVGアニメーションを作成することができます。
図形だけSVGで作成しておき、アニメーションに関しては外部ライブラリを利用する、といった方法もあります。
参考:
ホームページにアニメーションを実装するライブラリ&プラグイン12選
2. SVGファイルを作成して画像として埋め込む
SVGの面白いところは、テキストファイルでもありながら画像ファイルとしても取り扱えるという点です。
そのため、コードを外部ファイルとして作成し(拡張子は「.svg」)、PNGやJPEGを埋め込むのと同じようにimgタグで埋め込むことができます。
<img src="path/image.svg" alt="" width="320" height="320">
もちろん、画像として取り扱うことが可能だということは、CSSのbackground-imageプロパティで背景として指定することもできます。
background-image: url(path/image.svg);
あるいは、あまり利用頻度はないでしょうが、外部オブジェクトとしてobjectタグまたはembedタグで埋め込むこともできます。
<object data="path/image.svg" width="150" height="150" codetype="image/svg+xml">代替コンテンツ</object>
<embed src="path/image.svg" width="150" height="150" type="image/svg+xml">
3. Illustratorで作成する
Adobe Illustratorはベクターを扱うことができるソフトの中でもシェアが非常に高いので、すでに利用している方もいらっしゃるでしょう。
もしお持ちの場合には、Illustratorを使ってSVGを描画することもできます。
画像引用元:Adobe
通常通り、アートボードを作成したのち、SVG形式として保存すれば完了です。
ただし、この方法では図形を描画することはできますが、アニメーションが加えられていません。
画像引用元:Smashing Hub
アニメーションを加えるために、CSSや外部ライブラリで挙動を加える必要がありますが、Adobe CreativeCloud会員であれば、Adobe Edge Animateというアニメーション用のソフトウェアを使ってアニメーションを作成することもできます。
4. SVGライブラリを使う
スクリーンショット:2017年9月
いずれかの方法でSVG画像を生成することができれば、JavaScriptなどをベースとしたSVG専用のアニメーションライブラリを使う方法もあります。
有名なものにはSnap.svgやSVG.js、vivus.js、Two.jsやBonsaiJSなどがあります。
いずれも軽量で、簡単なJavaScriptに対する理解があれば、簡単に部品を動かすことができます。
5. SVGアニメーション作成ツールを使う
初心者が扱いやすく、最も敷居が低いものとしては、SVGアニメーションツールを使いこなす方法です。
スクリーンショット:2017年4月
最も使いやすいフリーソフトのひとつはKeyshapeと呼ばれるSVGアニメーション用のソフトウェアで、MacでSVG画像の作成からアニメーションの実装まで、ワンストップで行うことができます。
参考:
ノンプログラマーにもオススメ!滑らかなSVGアニメーションを驚くほど簡単に作成できるMac用ソフト「Keyshape」の使い方を解説
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- 広告
- 広告とは販売のための告知活動を指します。ただし、広告を掲載するための媒体、メッセージがあること、広告を出している広告主が明示されているなどの3要素を含む場合を指すことが多いようです。
- Flash
- Flashは米アドビ社が提供するAdobe Flashという作成アプリと、その作品を再生するブラウザ追加プログラムのFlashプレイヤーで構成される技術をいいます。データサイズが小さくより高速に転送される特徴を持ち、またゲームなどの高度なプログラミングも可能なことから多くのホームページ表現で利用されています。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- Flash
- Flashは米アドビ社が提供するAdobe Flashという作成アプリと、その作品を再生するブラウザ追加プログラムのFlashプレイヤーで構成される技術をいいます。データサイズが小さくより高速に転送される特徴を持ち、またゲームなどの高度なプログラミングも可能なことから多くのホームページ表現で利用されています。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- テキスト
- テキストとは、純粋に文字のみで構成されるデータのことをいいます。 太字や斜線などの修飾情報や、埋め込まれた画像などの文字以外のデータが表現することはできませんが、テキストのみで構成されたテキストファイルであれば、どのような機種のコンピューターでも共通して利用することができます。
- OS
- OSとはOperation Systemの略称です。パソコンやスマートフォンで操作した内容をアプリケーションに伝える役目を担っています。パソコン用ではwindowsやMac OS、スマートフォンではiOSやAndroidが有名です。
- テキスト
- テキストとは、純粋に文字のみで構成されるデータのことをいいます。 太字や斜線などの修飾情報や、埋め込まれた画像などの文字以外のデータが表現することはできませんが、テキストのみで構成されたテキストファイルであれば、どのような機種のコンピューターでも共通して利用することができます。
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- タグ
- タグとは、原義では「モノを分類するために付ける小さな札」のことです。英語の「tag」を意味するものであり、荷札、付箋といった意味を持っています。特にインターネットに関する用語としてのタグは、本文以外の情報を付与するときに用いられます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- タグ
- タグとは、原義では「モノを分類するために付ける小さな札」のことです。英語の「tag」を意味するものであり、荷札、付箋といった意味を持っています。特にインターネットに関する用語としてのタグは、本文以外の情報を付与するときに用いられます。
- タグ
- タグとは、原義では「モノを分類するために付ける小さな札」のことです。英語の「tag」を意味するものであり、荷札、付箋といった意味を持っています。特にインターネットに関する用語としてのタグは、本文以外の情報を付与するときに用いられます。
- URL
- URLとは、「Uniform Resource Locator」の略称です。情報がどこにあるのかを示すインターネット上の住所のようなものだと考えるとわかりやすいでしょう。各ページのURLは、インターネットブラウザの上部に文字列として表示されています。日本語では「統一資源位置指定子」という名称がついていますが、実際には日本でもURLという語が使われています。
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- タグ
- タグとは、原義では「モノを分類するために付ける小さな札」のことです。英語の「tag」を意味するものであり、荷札、付箋といった意味を持っています。特にインターネットに関する用語としてのタグは、本文以外の情報を付与するときに用いられます。
- タグ
- タグとは、原義では「モノを分類するために付ける小さな札」のことです。英語の「tag」を意味するものであり、荷札、付箋といった意味を持っています。特にインターネットに関する用語としてのタグは、本文以外の情報を付与するときに用いられます。
- タグ
- タグとは、原義では「モノを分類するために付ける小さな札」のことです。英語の「tag」を意味するものであり、荷札、付箋といった意味を持っています。特にインターネットに関する用語としてのタグは、本文以外の情報を付与するときに用いられます。
- タグ
- タグとは、原義では「モノを分類するために付ける小さな札」のことです。英語の「tag」を意味するものであり、荷札、付箋といった意味を持っています。特にインターネットに関する用語としてのタグは、本文以外の情報を付与するときに用いられます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- テキスト
- テキストとは、純粋に文字のみで構成されるデータのことをいいます。 太字や斜線などの修飾情報や、埋め込まれた画像などの文字以外のデータが表現することはできませんが、テキストのみで構成されたテキストファイルであれば、どのような機種のコンピューターでも共通して利用することができます。
- タグ
- タグとは、原義では「モノを分類するために付ける小さな札」のことです。英語の「tag」を意味するものであり、荷札、付箋といった意味を持っています。特にインターネットに関する用語としてのタグは、本文以外の情報を付与するときに用いられます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- タグ
- タグとは、原義では「モノを分類するために付ける小さな札」のことです。英語の「tag」を意味するものであり、荷札、付箋といった意味を持っています。特にインターネットに関する用語としてのタグは、本文以外の情報を付与するときに用いられます。
- タグ
- タグとは、原義では「モノを分類するために付ける小さな札」のことです。英語の「tag」を意味するものであり、荷札、付箋といった意味を持っています。特にインターネットに関する用語としてのタグは、本文以外の情報を付与するときに用いられます。
- シェア
- シェアとは、インターネット上で自分が見つけて気に入ったホームページやブログ、あるいは、Facebookなど自分自身が会員登録しているSNSで自分以外の友達が投稿した写真、動画、リンクなどのコンテンツを自分の友達にも共有して広めたいという目的をもって、SNSで自分自身の投稿としてコンテンツを引用し、拡散していくことをいいます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
おすすめ記事
関連ツール・サービス
おすすめエントリー
同じカテゴリから記事を探す
カテゴリから記事をさがす
●Webマーケティング手法
- SEO(検索エンジン最適化)
- Web広告・広告効果測定
- SNSマーケティング
- 動画マーケティング
- メールマーケティング
- コンテンツマーケティング
- BtoBマーケティング
- リサーチ・市場調査
- 広報・PR
- アフィリエイト広告・ASP
●ステップ
●ツール・素材
- CMS・サイト制作
- フォーム作成
- LP制作・LPO
- ABテスト・EFO・CRO
- Web接客・チャットボット
- 動画・映像制作
- アクセス解析
- マーケティングオートメーション(MA)
- メールマーケティング
- データ分析・BI
- CRM(顧客管理)
- SFA(商談管理)
- Web会議
- 営業支援
- EC・通販・ネットショップ
- 口コミ分析・ソーシャルリスニング
- フォント
- 素材サイト
●目的・施策
- Google広告
- Facebook広告
- Twitter広告
- Instagram広告
- LINE運用
- LINE広告
- YouTube運用
- YouTube広告
- TikTok広告
- テレビCM
- サイト制作・サイトリニューアル
- LP制作・LPO
- UI
- UX
- オウンドメディア運営
- 記事制作・ライティング
- コピーライティング
- ホワイトペーパー制作
- デザイン
- セミナー・展示会
- 動画・映像制作
- データ分析・BI
- EC・通販・ネットショップ
- 口コミ分析・ソーシャルリスニング