PicoPixel

スプライトとは?

スプライトとは何か、複数状態を持つアニメーション付きウィジェットの作り方、プロジェクト間での再利用方法を学びます。

EDEd
spritepicopixel
更新2026-05-29
01/07

概要

このガイドでは、PicoPixel のスプライトについて必要なことを一通り説明します。スプライトとは何か、いつ使うべきか、自分で段階的に作る方法、画面上の出来事に反応させる方法、そして同じものを二度作らなくて済むように再利用する方法です。

アニメーション経験は不要です。画像をドラッグ&ドロップできるなら、スプライトを作れます。

02/07

スプライトとは

スプライトは、複数のアニメーションを保持し、好きなタイミングで切り替えられる 1 つの PicoPixel ウィジェットです。各アニメーションは モード または 状態 と呼ばれます。たとえば "Idle"、"Running"、"Happy" です。

ビデオゲームのキャラクターのように考えてください。画面上では 1 つのキャラクターですが、状況に応じて歩いたり、跳んだり、手を振ったりします。スプライトも同じです。1 つのウィジェットに複数の動きを持たせ、必要なものを再生できます。

PicoPixel の強力なイベントエディタを使えば、条件に応じて状態を切り替え、スプライトに命を吹き込めます。

例:アニメーションキャラクターがある場合、または ESP32 や他の LVGL アプリ向けに自分だけのスタックチャンの表情を作りたい場合、1 つのスプライトで "Running"、"Thinking"、"Failed" などのモードを条件付きで切り替えられます。別々のウィジェットを大量に扱う必要はありません。

TIP

技術的には、LVGL は異なる状態を持つスプライトをネイティブにはサポートしていません。そのため、LVGL アニメーション画像ウィジェットをベースに独自実装しました。状態ごとの切り替え処理を自分で実装せずに使えます。

03/07

スプライトを使う場面

すべての画像をスプライトにする必要はありません。判断の目安は次の通りです。

  • 1 枚の静止画像? 通常の Image を使います。動かないものにスプライトは大げさです。
  • 永遠にループする 1 つのアニメーション(回転するローダーなど)? Animated Image を使います。よりシンプルで軽量です。
  • 状況に応じて変化するもの、タスク成功時に笑う顔、待機から走行に切り替わるキャラクターなど? それこそ スプライト の出番です。

目安として、グラフィックに複数の表情や動作があり、それを切り替えたいならスプライトを選びます。

04/07

スプライトの作り方

  1. "Sprite" ウィジェットを選択します。右サイドバーでそのスプライトの最初のモードを追加できます。たとえば最初の状態は "Idle" かもしれません。あとでトリガーを設定するときに分かるよう、各状態には明確な名前を付けます。
  2. 画像シーケンス、つまりこのモードを構成するフレーム一式をアップロードします。各フレームは 1 枚の画像で、順番に再生するとパラパラ漫画のようにアニメーションになります。
    • その状態専用の再生時間を調整できます。再生時間を長くするとゆっくり、短くすると速く動きます。
  3. 別の状態を追加します。最低 2 つのモードが必要です。1 つのアニメーションだけでよい場合は、Animated Image ウィジェットが適しています。使い分けの説明もご覧ください。
  4. Events タブのイベントエディタを使って、条件に応じて異なる状態をトリガーし切り替えます。これがスプライトに生命感を与えます。次のセクションで詳しく説明します。
WARNING

スプライトのすべてのモードで、すべての画像またはフレームは完全に同じ寸法でなければなりません。あるフレームが 64×64、別のフレームが 80×80 だと正しく揃いません。アップロード前にサイズを合わせてください。

NOTE

フレーム数と画像サイズは、デバイスのメモリに合わせて調整してください。滑らかさや細かさを求めて増やすほど、メモリも多く使います。書き込み後に表示されない場合は、よくある問題をご覧ください。

05/07

スプライトに命を吹き込む

1 つの状態しか表示しないスプライトは、あまり役に立ちません。使いどころに合わせて、いつ モードを切り替えるかを設定しましょう。それを行うのがイベントエディタです。

考え方は単純です。何かが起きたら、状態を切り替える。 そのきっかけ(ボタン押下、値の変化、タイマーなど)を選べば、あとは PicoPixel が処理します。

典型的な例:

  1. スプライトはデフォルトで "Idle" 状態から始まります。
  2. イベントエディタでイベントを追加します。ボタンが押されたらスプライトを "Running" 状態に切り替える、という内容です。
  3. もう 1 つイベントを追加します。タスクが完了したら "Happy"(または "Idle" に戻す)へ切り替えます。

これで完了です。コードを書かなくても、スプライトはユーザー操作に反応します。こうしたイベントをいくつでもつなげて、本当に表情豊かなウィジェットを作れます。

TIP

小さく始めましょう。まず 2 つの状態を行き来させ、プレビューで正しく見えることを確認してから、満足したら状態を増やします。

06/07

スプライトを再利用する方法

スプライトを作ったら、毎回ゼロから作り直したくはないはずです。Library 機能を使えば一度保存し、任意のプロジェクトに入れられます。

  1. 完成したスプライトウィジェットを右クリックし、"Add Library Widget" をクリックします。
    • Assets タブのライブラリに再利用可能な項目が作られます。すぐ使えるウィジェットの自分用棚だと考えてください。
  2. そのライブラリをプロジェクト間で移動したり、チームメイトと共有したりするには、Library に移動して Export をクリックします。
  3. 新しいプロジェクトを作るときや既存ワークスペースを開くとき、そのライブラリをインポートしてスプライトを直接置けます。作り直しは不要です。
    • フレーム、再生時間、状態は元のコピーから完全に同期されるので、どこで使っても同じように動きます。

07/07

よくある問題

デバイスに書き込むとスプライトが表示されない。

  • ほとんどの場合はメモリ問題です。デバイスにはスプライトの画像フレームを保持する十分な RAM が必要です。
  • これは LVGL 設定で決まるもので、PicoPixel が代わりに変更できるものではありません。具体的なボードに依存します。
  • 書き出された README.md ファイルにこの点が記載されるので、AI アシスタントが組み込みデバイス向けの SDK/LVGL 設定更新を手伝えます。

フレームがずれて見える、または跳ねる。

  • すべての状態のすべてのフレームが完全に同じ寸法であることを確認してください。数ピクセルの違いでも位置合わせが崩れます。

アニメーションが速すぎる、または遅すぎる。

  • 該当状態の再生時間を調整します。各状態には独自の再生時間があるため、個別に調整が必要な場合があります。

スプライトを保存できない / もう 1 つ状態を求められる。

  • スプライトには最低 2 つの状態が必要です。1 つしかない場合は 2 つ目を追加するか、Animated Image ウィジェットに切り替えてください。
次に読む

次のガイドへ

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

PicoPixelでペットを使う方法

ギャラリーのペットをプロジェクトに追加し、デバイスの動作に合わせてアニメーションを切り替える方法を紹介します。データ取得中や温度の異常などを、キャラクターの動きで表現できます。

pets · sprites · picopixel
PicoPixel のテンプレート・UI キット・完成アプリの使い方 thumbnail
PICOPIXEL

PicoPixel のテンプレート・UI キット・完成アプリの使い方

テンプレートや UI キットを探して PicoPixel で開くところから、編集・再利用し、実機向けの LVGL C コードを出力するまでの手順を紹介します。

templates · ui-kits · full-apps
PicoPixel LVGL MCP Server Setup Guide thumbnail
PICOPIXEL

PicoPixel LVGL MCP Server Setup Guide

Set up the PicoPixel LVGL MCP server for Claude, ChatGPT, Codex, or Cursor. Learn agent settings, reusable components, colors, fonts, and assets.

LVGL MCP · MCP server setup · AI UI design