LVGL

LVGL Animated Image ウィジェットの使い方

LVGL animated image ウィジェットの仕組みを学びます。同じサイズのフレーム列をアップロードし、再生時間とループを設定して、ディスプレイ上でフレーム単位のアニメーションを再生します。

ED Ed
lvgl animated-image animimg animation frames picopixel
更新 2026-05-29
01 /10

概要

animated image ウィジェットは、画面に動きを加えるいちばん簡単な方法です。回転するローダー、跳ねるアイコン、まばたきする目などに使えます。このガイドでは、PicoPixel で LVGL animated image ウィジェットがどう動くのか、追加方法、すべてのフレームを同じサイズにする理由、速度とループの制御方法、そしてインターフェース実行中に開始・停止する方法を説明します。

02 /10

animated image ウィジェットとは?

animated image は、静止画像の列を順番に再生します。パラパラ漫画のようなものです。それぞれの画像は frame で、素早く切り替えることで動いているように見えます。フレーム一式を渡し、再生速度とループするかどうかを指定すれば、あとはウィジェットが処理します。

単一の繰り返しアニメーションに最適です。ローディングスピナー、脈打つハート、手を振るアイコンなどです。1 つのウィジェット、1 つのシーケンス、ループ再生という形です。

NOTE

内部では LVGL の lv_animimg ウィジェットを使っています。プロジェクトを書き出すと、PicoPixel が LVGL コード(lv_animimg_createlv_animimg_set_srclv_animimg_set_duration など)を生成します。自分で触る必要はありません。対象は LVGL 8.x です。

03 /10

Animated image と sprite:どちらを使うべき?

この 2 つのウィジェットは似ていますが、解決する問題が違います。

  • Animated image は、ループする 1 つ のアニメーションです。スピナーのように、グラフィックがいつも 1 つの動きしかしない場合に使います。
  • Sprite は、1 つのウィジェットに 複数 のアニメーションを持ち、それらを切り替えられます(Idle、Running、Happy など)。グラフィックに複数のモードが必要な場合に使います。

実際には、sprite は animated image を組み合わせて作られており、各モードは内部的には個別の animated image です。切り替えたい 2 つ目のアニメーションが欲しくなったら、sprite を使う合図です。

04 /10

animated image を追加してフレームをアップロードする

  1. 画面に Animated Image ウィジェットを追加します。
  2. プロパティで Image Set 行を見つけ、Add Image Set をクリックします。
  3. NEW タブでアップロード領域("Click to upload frames")をクリックし、画像を選択します。複数選択できます。形式は PNG と JPEG.png.jpeg.jpg)です。
  4. Continue をクリックして、フレームをウィジェットに紐づけます。Image Set 行にはフレーム数(例:"8 frames")が表示されます。

以前使ったフレームセットは、再アップロードせず Assets タブから選ぶこともできます。

9 フレームの Nyan Cat sprite が読み込まれた animated image ウィジェットを表示している PicoPixel エディター。下部にフレームのフィルムストリップ、右側に image set、repeat、duration、playback 設定が表示されている
▸ フレームを読み込み、設定済みの animated image:9 フレーム、1000 ms、無限リピート、再生中。
TIP

フレームはファイル名のアルファベット順に並びます。正しい順序で再生するには、frame_01.pngframe_02.pngframe_03.png のように先頭ゼロ付きで連番にしてください。frame_2.pngframe_10.png に並ぶため、アニメーションが崩れます。

NOTE

animated image には最低 2 フレームが必要で、最大 32 フレームまで追加できます。それ以上の動きが必要な場合は、少数のよく選んだキーフレームを検討してください。すべてのフレームはデバイスに保存されます。

05 /10

すべてのフレームを同じサイズにする理由

覚えておくべきルールは 1 つです。すべてのフレームは、幅と高さが完全に同じでなければなりません。 サイズの異なるフレームを追加しようとすると、PicoPixel は "All frames must have the same dimensions." と表示して止めます。

理由は単純です。ウィジェットは各フレームを同じ場所、同じ箱の中に描画します。フレーム 1 が 64×64 でフレーム 2 が 80×80 だと、滑らかにその場で動くのではなく、絵が跳ねたりずれたりします。全フレームを同じサイズに保つことで、きれいな動きになります。

WARNING

アップロードする前にフレームのサイズを揃えてください。きれいなシーケンスを作る最短の方法は、画像ツールで同じキャンバスから各フレームを書き出すことです。そうすれば必ず同じ寸法になります。

06 /10

速度を設定する:duration

Duration 設定はアニメーションの再生速度を制御します。単位は**ミリ秒(ms)**で、1 フレームあたりの時間ではなく、すべてのフレームを 1 周する 時間を表します。デフォルトは 1000 ms(1 秒)です。

PicoPixel はその時間をフレーム全体に均等に割り振ります。つまり 8 フレームに 1000 ms を設定すると、各フレームは 125 ms 表示されます。速くしたいなら duration を下げます。ゆっくり落ち着いた動きにしたいなら上げます。

07 /10

ループ:1 回再生か、ずっと再生か

Repeat 設定は、アニメーションが最後まで到達したあとどうするかを決めます。選択肢は 2 つです。

  • Infinite、アニメーションを永遠にループします。デフォルトで、止まってほしくないスピナーなどに向いています。
  • Normal(回数)、指定した回数だけ再生して停止します。3 に設定すると 3 回再生し、最後のフレームで止まります。
08 /10

UI 実行中に再生を制御する

アニメーションを自動で動かし続ける必要はありません。event editor を使えば、ユーザー操作に応じて開始・停止できます。イベントを追加し、Animated Image Mode action を選び、対象の animated image を指定して、モードを選択します。

  • Start、再生を開始(または再開)します。
  • Stop、アニメーションを一時停止します。
  • Restart、最初のフレームに戻って再生し直します。

例:"connecting..." スピナーをボタンが押されるまで停止させ、押されたら Start、処理が終わったら Stop できます。

09 /10

メモリを軽く保つ

アニメーションは画像であり、画像は小さなデバイスでは容量を使います。次の習慣で効率よく保てます。

  • 必要なフレームだけ使う。 滑らかな動きでも、少数のよく選んだフレームで足りることが多いです。
  • フレーム寸法を控えめにする。 64×64 のアニメーションは 240×240 よりはるかに軽量です。
  • 色深度をディスプレイに合わせる(実機向けビルドについては ESP32 tutorial を参照)。
TIP

ファームウェアへ書き出す場合、animated image には lv_conf.hLV_USE_ANIMIMG を有効にする必要があります。PicoPixel は書き出した README.md にこれを記載するので、ビルド手順(または AI assistant)が何を有効にすべきか分かります。

10 /10

次のステップ

  • 1 つのウィジェットに複数のアニメーションが必要ですか? sprite widget に進みましょう。
  • event editor で、アニメーションをボタンや他のトリガーにつなぎます。
  • ESP32 LVGL tutorial で、完成した UI をデバイスに持っていきます。
次に読む

続けて学ぶ。

PicoPixelでペットを使う方法 thumbnail
PICOPIXEL

PicoPixelでペットを使う方法

ペットは、任意の条件でトリガーできる複数のモードを持つ既成のアニメーションスプライトです。ディレクトリから選んでプロジェクトに追加し、デバイスの動作(データ取得、オーバーヒート、コードレビューなど)に反応するように接続しましょう。

pets · sprites · picopixel
PicoPixel templates、UI kits、full apps の使い方 thumbnail
PICOPIXEL

PicoPixel templates、UI kits、full apps の使い方

PicoPixel templates、UI kits、examples、sprites、widgets、full app files を見つけ、開き、ダウンロードし、インポートし、カスタマイズし、デバイス用の LVGL C code として書き出します。

templates · ui-kits · full-apps
sprite とは? thumbnail
PICOPIXEL

sprite とは?

sprite とは何か、複数状態を持つ animated widgets の作り方、プロジェクト間での再利用方法を学びます。

sprite · picopixel