Lottieアニメーション備忘録

Lottie(ロッティー)は、After Effectsなどのデザインツールで作ったアニメーションを「JSON」という軽いデータ形式で書き出したもの。「プレイヤー(JavaScript )」をつかってWEBサイトにできます。

※Lottieの世界は日々進化しており、新しいファイル形式(.lottie)や、より高速に動かすための技術(WASMなど)が登場するたびに、それに最適化された新しいプレイヤーが作られています。

スポンサーリンク

Lottieに魅力

Webで何かを動かそうとすると、

  • GIFアニメ: 手軽だけど、拡大するとボケるし、色が汚い。
  • 動画(mp4): 綺麗だけど、ファイルが重すぎて読み込みが遅い。
  • SVGアニメ: 綺麗だけど、複雑な動きをコードで書くのは修行レベル。

という、状態を解決したのがLottie(ロッティー)、🌟 Lottieが「最強」と言われる3つの理由

  1. 拡大してもずっと綺麗(ベクター形式)
  2. 軽い!10分の1以下になることもある。
  3. ベジェ曲線ツールでパスを1本ずつ引かなくても、LottieFilesなどの「誰かが作ったカッコいい素材」を持ってきて、そのままWebに貼り付けるだけで動く。

基本的なコード

プレイヤータグと、そのプレイヤータグを利用するためのスクリプトの読み込みがセットです。
例:lottie-playerタグをつかってWEBサイトに表示

<!--lottie-playerタグを利用するためのスクリプトを読み込む-->
<script src="https://unpkg.com/@lottiefiles/lottie-player@latest/dist/lottie-player.js"></script>

<lottie-player 
  src="ここにJSONファイルのパスを貼る" 
  background="transparent" 
  speed="1" 
  style="width: 300px; height: 300px;" 
  loop 
  autoplay>
</lottie-player>

Lottieプレイヤーの種類

Lottieアニメーションを再生するための「プレイヤー」は主に3種類あります。基本的には「ファイルの形式(.json、.lottie)」と「やりたいこと(ホバーなど)」に合わせて選びます。

  • .json 形式の古い素材をそのまま使いたい ➡ lottie-player
  • .lottie 形式(軽量版)をとりあえず使ってみたい ➡ dotlottie-player
  • 表示速度を極限まで速くしたい、最新の標準に合わせたい ➡ dotlottie-wc

※「開発環境(ReactやVue)」や「制御の細かさ」に応じて、他にもプレイヤーやライブラリが存在します。

Lottieプレイヤー:スクリプトとタグの対応一覧

プレイヤー名 読み込みスクリプト (CDN) 使用するタグ
lottie-player
(標準・従来型)
<script src="https://unpkg.com/@lottiefiles/lottie-player@latest/dist/lottie-player.js"></script> <lottie-player>
dotlottie-player
(.lottie推奨型)
<script src="https://unpkg.com/@dotlottie/player-component@latest/dist/dotlottie-player.mjs" type="module"></script> <dotlottie-player>
dotlottie-wc
(次世代・高性能型)
<script src="https://unpkg.com/@lottiefiles/dotlottie-wc@latest/dist/dotlottie-wc.js" type="module"></script> <dotlottie-wc>

アニメーションを制御するための「属性(Attribute)」は、使用するプレイヤーの種類やバージョンによって異なりますが、参考までに標準的なLottie Web Player(lottie-player)でアニメーションの挙動を制御するための属性をまとめました。

属性名 値の例 説明
src URL 読み込むJSONまたは .lottie ファイルのパスを指定します。
autoplay (なし) ページ読み込み時に自動で再生を開始します 。
loop (なし) アニメーションを繰り返し再生し続けます。
speed 数値 (1, 2, 0.5) 再生速度を調整します。1が標準、2なら倍速になります。
background color / transparent 背景色を指定します。透過させる場合は transparent を設定します。
hover (なし) マウスを乗せた時(ホバー時)のみ再生を開始します。
direction 1 / -1 再生方向。1は通常再生、-1は逆再生になります。
mode bounce / normal bounce を指定すると、最後まで再生した後に逆再生で戻るループになります。
controls (なし) 再生・停止ボタンなどのコントロールUIを表示します。
renderer svg / canvas レンダリング方式。通常は svg で問題ありません。

LottieFiles:アニメーションの「宝箱」

LottieFilesは、アニメーションを探し、加工し、公開するまでのすべてが揃ったサイト。

素材のダウンロード(JSON/GIF)、色などのカスタマイズ、自分の作品の保存。これらはすべてアカウント(無料)が必要です。

「無料素材」探す方法とライセンスについて

LottieFilesには有料(マーケットプレイス)と無料(コミュニティ)が混ざっています。オレンジ色の王冠マークは「有料会員限定」のサービスです。

無料のものだけを探す手順

  1. 検索フィルターを活用する
    LottieFilesのトップページの検索窓にキーワード(例:heart loading:英語で検索するのが圧倒的に有利)を入れて、フィルターを 「Free」 に切り替えて検索。
  2. 個別の素材ページを開き、右側や下の方にライセンス情報を確認。
    ほとんどの無料素材は 「LottieFiles Simple License」 または 「Creative Commons (CC BY 4.0)」。
LottieFiles Simple License商用OK、改変OK。 クレジット表記(名前)は不要!(神!)
Creative Commons (CC BY 4.0)商用OK、改変OK。 作者の名前とリンクをどこかに書く!

クレジット表記(CC BY 4.0)の具体的な書き方案

  • 方法A:記事の最後にひっそり書く
    「Animation by [作者名] on LottieFiles」
  • 方法B:画像キャプションに入れる
    Lottieのすぐ下に小さく「Source: LottieFiles / Author: ○○」と添える。

選んだ素材を利用する方法

気に入った素材を利用するには、まず自分のワークスペースにコピーを作る必要がある。
自分のスペースに保存しておくことで、後から色を変えたり編集ができる。

「ダウンロード」と「Handoff(CDN)」の違い
LottieFilesで選んだ素材を自分のサイトで使うには、大きく分けて2つの方法があります。

💾 ダウンロード

JSONまたは .lottie ファイルを自分のPCに保存し、自社サーバーにアップロードして使用します。

  • 自分のサーバーから配信するため、外部の制限を受けない
  • アクセスが集中しても追加コストがかからない
  • ファイルを管理する手間が少し発生する

🔗 Handoff(CDN)

LottieFilesが発行する「リンク先(URL)」をコピーして、そのままコードに貼り付けて利用します。

  • コピー&ペーストだけで実装でき、最も手軽
  • LottieFilesの高速な配信サーバーを利用できる
  • 無料プランには保存数と通信量の制限がある

⚠️ Handoff(CDN)利用時の重要な注意点

  • 保存数の上限: 無料プラン(Starter Plan)では、ワークスペースに保存して公開できるアニメーションは最大10個までです 。11個以上使いたい場合は、古いものを削除するか有料プランへのアップグレードが必要です。
  • 通信量(帯域幅)の制限: 無料プランには「URLが読み込まれる回数(通信量)」に上限が設けられています(例:月間10GBまで) 。
  • 推奨される対策: 爆発的にアクセスがある人気サイトや、10個以上のアニメーションを使い分けたい場合は、ファイルをダウンロードして自分のサーバー(自社サーバーやAWS等)に置いて配信する方が、制限を気にせず運用できるため安心です。

ダウンロード形式の選び方

  • ・dotLottie (.lottie):最新の推奨形式です。通常のJSONよりもさらにファイルサイズを最大80%軽量化できます。
  • ・Lottie JSON:従来からの標準形式です。どんなWeb環境でも動作する高い互換性と安心感があります 。 (※「Optimized」とつく最適化形式は有料プラン専用機能です )
  • ・GIF / 動画 (MP4/MOV):Lottieプレイヤーが設置できないSNSやスライド資料用です。Lottie本来の「軽さ」や「鮮明さ」は失われます。

表示方法:プレイヤー か <iframe> か

【推奨】プレイヤー

JSでスクリプトを読み込みます。将来的に「マウスを乗せた時に動きを変える(ホバー)」といったインタラクションの追加や、細かいデザイン調整が容易です。

<iframe>

外部の小さなWebページを丸ごと読み込むため、動作が重くなりやすく、カスタマイズの自由度も低くなります。主にNotionやMediumなどの埋め込み用です。

用途に合わせて使い分ける2つのエディタ

LottieFilesには、既存の素材を調整するための「Editor」と、ゼロから作成するための「Creator」の2つのツールが用意されています。

🎨 Lottie Editor

すでに完成している素材を、自分好みに微調整するためのエディタです。

  • パーツ(レイヤー)の色をブランドカラーに変更
  • 不要なパーツを非表示にする
  • 再生スピードや背景色の調整

🚀 Lottie Creator

アニメーションをイチから自作・構築するためのプロフェッショナルなエディタです。

  • SVGファイルを読み込んで複雑な動きを付与
  • 高度なキーフレーム制御やパスのトリミング
  • インタラクティブな「ステートマシン」の設定

LottieFilesの.lottieファイルでインタラクションの実装

⚠️LottieFilesで提供されていうデフォルトのコードdotlottie-wcプレイヤーでは、制御ができなかったので、dotlottie-playerに変更しました。
これでマウスがのった時だけアニメーションされます。

<script src="https://unpkg.com/@dotlottie/player-component@latest/dist/dotlottie-player.mjs" type="module"></script>

<dotlottie-player 
  src="https://lottie.host/e4659e27-82ba-463e-b30d-3ec24ee8de9a/LLdu3kxfnl.lottie" 
  background="transparent" 
  speed="1" 
  style="width: 300px; height: 300px; cursor: pointer;" 
  loop 
  hover>
</dotlottie-player>

クリックで制御する場合、

<script src="https://unpkg.com/@dotlottie/player-component@latest/dist/dotlottie-player.mjs" type="module"></script>

<dotlottie-player 
  id="dotLottieToggle" 
  src="https://lottie.host/e4659e27-82ba-463e-b30d-3ec24ee8de9a/LLdu3kxfnl.lottie" 
  style="width: 300px; height: 300px; cursor: pointer;" 
  loop>
</dotlottie-player>

<script>
  const player = document.getElementById('dotLottieToggle');
  
  // 自分で状態を管理するフラグ(最初は止まっているので false)
  let isPlaying = false;

  player.addEventListener('click', () => {
    if (isPlaying) {
      player.pause(); // 再生中なら一時停止
      isPlaying = false;
    } else {
      player.play();  // 停止中なら再生
      isPlaying = true;
    }
  });
</script>