アニメーションの実装手段
主な実装手段 早見表
| 名前 | ファイルサイズ | 処理負荷 | データの作成 | 備考 |
|---|---|---|---|---|
| DOM・SVG | ||||
| CSS トランジション | 小さい | 軽い | エンジニア | |
| CSS アニメーション | 小さい | 軽い | エンジニア | |
| JS ウェブアニメーションAPI | 小さい | 軽い | エンジニア | |
| GSAP | 中(数百kB) | 中 | エンジニア | アニメーションライブラリとしては王道。なんでもできる |
| Motion One | 中(数十kB) | 中 | エンジニア | GSAPに比べるとできることが少ないが、バンドルサイズが小さい。 |
| Lottie | 中(数百kB〜) | 中 | デザイナー | |
| canvas | ||||
| ライブラリなし | 小さい | 重い | エンジニア | |
| Phaser, p5.js, PixiJS などのライブラリ | 中(数百kB〜) | 重い | エンジニア | |
| Three.js | 中(数百kB〜) | 重い | デザイナー(3Dデータ)、エンジニア(配置・エフェクト等) | 3D表現したいとき。 |
| 画像ファイル・動画ファイル | ||||
| アニメーション可能な画像(GIF、APNG、WebP)(img要素) | 大きい(数MB〜) | 軽い? | デザイナー | 2023年現在は、APNGが最も妥当な選択肢。WebPのほうが圧縮率が高いが、Safariの完全対応が16.0以降なのでもうしばらく様子見といった状況。 |
| 動画ファイル(mp4など)(video要素) | 大きい(数MB〜) | 軽い? | デザイナー | |
| YouTube動画の埋め込み(iframe要素) | 大きい(数MB〜) | 軽い? | デザイナー | BWが使用するというより、先方支給の動画があるケースで利用する。 |
| コマ送り画像・スプライトアニメーション | 大きい(数MB〜) | 軽い? | デザイナー | スクロール動作に合わせて再生したい、などタイミングを調整したいとき使う(動画ファイルではタイミング制御が難しいため) |
上記では主な手段を上げましたが、細かく上げると他にもたくさんあります。
その他の実装手段については以下の記事が参考になります。
2020年中期のWebアニメーション実装の全容と方法70選 - Qiita
実装手段の選択基準
超簡易的な判断基準。実際に作ってみて「なんか違うな」となることもあるので、あくまで参考。
-
CSSでできそうなシンプルな動きですか?
- YES: CSSで実装しましょう
-
(単純な図形の組み合わせや画像の配置で実現できるものではなく、)実写映像や複雑なアニメーションですか?
- YES: 画像ファイルか映像ファイルで出力しましょう
-
操作する要素は多いですか?(パーティクルアニメーションなど)
- YES: canvasに描画しましょう。
-
「クリックした場所に応じて動かす」などのインタラクティブな動作が必要ですか?
- YES: JSが必要です。
-
スクロールに連動して動かす?
-
YES: GSAPのScrollTriggerを使いましょう。(ネイティブのIntersection Observerでも実装は可能ですが、記述が簡単、順番に表示するのが楽(
stagger)、デバッグが楽(markers)などの理由でScrollTriggerがおすすめです。)
ただし、ゆくゆくはCSSだけでもできるようになります。
CSSだけでスクロールアニメーションが作れる!? 新技術Scroll-driven Animationsとは - ICS MEDIA
-
YES: GSAPのScrollTriggerを使いましょう。(ネイティブのIntersection Observerでも実装は可能ですが、記述が簡単、順番に表示するのが楽(
実装手段ごとの注意事項
DOM・SVG
-
CSS Transition, Animationでは、
will-changeプロパティの利用によってカクつきが解決する場合があります(ただし多用は禁物)。
GSAP
-
GSAPのライセンスは、多くのオープンソースライブラリが採用しているMITライセンスではありません。無料ライセンスでは、アクセスするのが有料のサイト(Netflixのような、有料会員制のイメージ)には使用できません。その場合はビジネスプランを購入してください。
Licensing - GreenSock
Lottie
-
Lottieは出力時の問題が多いので注意。
[21KNHW-329] 【モーション・インタラクション】Lottieの書き出しでグラデーションが白黒になる問題について本気で調査 | 課題の表示 | Backlog
画像ファイル・動画ファイル
-
動画の自動再生をする場合、iOSの低電力モードに注意。低電力モードではvideo要素の自動再生が不可能。低電力モードでも成り立つよう、静止画を別途用意し、
poster属性に設定するのがいいでしょう。
videoタグを使ってiPhoneで自動再生する - Qiita - 透過させるときはフォーマットに注意。ウェブサイトに透過動画を埋め込む方法 - ICS MEDIA
参考情報: GIFやAPNGとmp4の違い
毎フレームの画像を保持しているGIFやAPNGと違い、mp4のような動画形式では、前のフレームとの差分のみ保持することで圧縮しています。そのため、再生時間が長い動画の場合は画像フォーマットよりも動画形式のほうがファイルサイズが小さくなる傾向があります。
参考: 動画圧縮方式とは | 株式会社OES