アニメーション
Playdateはその独特な
1-bit ディスプレイ(白と黒のみ)と、
クランクというユニークな入力デバイスを持つため、アニメーション制作においても独自の手法と工夫が求められます。
概要
1. 基本的なアニメーション手法
Playdateでのアニメーションは、主に以下の3つのスタイルに分類されます。
- イメージテーブル(Sprite Sheets)
- 最も一般的な方法です。複数のフレームを一つの画像ファイル(.png)にまとめ、SDK側でそれを「イメージテーブル」として読み込み、順次再生します。
- ファイル命名規則: filename-table-w-h.png(例: player-table-32-32.png)のように命名すると、SDKが自動的に1フレームのサイズを認識します
- Luaでの制御: playdate.graphics.animation.loop を使うと、簡単にループ再生を管理できます
- プログラムによる制御(Tweening)
- 座標、回転、スケールなどをコードで計算して動かす手法です。
- イージング (Easing Functions): SDKには playdate.graphics.easing が用意されており、滑らかな加速・減速(Ease In/Out)を簡単に実装できます
- クランク連動: クランクの回転角(playdate.getCrankPosition())をそのままアニメーションの進捗(フレーム番号や座標)に同期させるのは、Playdateならではの手法です
- 動画の再生(SDK独自の形式)
- Playdateは一般的なMP4やGIFを直接再生するのには向きません。
- pdv形式: SDK付属のエンコーダーを使用して、画像を独自の動画形式(.pdv)に変換します。これにより、1-bit環境に最適化された低負荷な動画再生が可能になります
色が使えないため、視覚的な豊かさを出すにはテクニックが必要です。
| 技術 |
説明 |
| ディザリング (Dithering) |
白と黒のドットを交互に配置することで、疑似的なグレー(中間色)を表現します |
| 残像の活用 |
Playdateの液晶(Sharp Memory LCD)は非常に反応が速いですが、あえて1フレームごとに描画をずらすことで、滑らかな動きに見せる手法が取られます |
| アウトライン |
背景とキャラクターが混ざらないよう、キャラの周囲に1ピクセルの白縁(または黒縁)を付けるのが定石です |
3. 実装に役立つSDKの機能
開発効率を上げるための便利なクラスが用意されています。
- playdate.graphics.sprite
- アニメーションする物体を管理する基本クラス。update() 内で draw() を呼び出すだけで、効率的に画面を更新します。
- playdate.graphics.animation.loop
- イメージテーブルのアニメーションを管理するためのヘルパークラス。
- startFrame, endFrame, delay, shouldLoop などを指定可能
- Dirty Rects (汚れた矩形)
- Playdateは画面全体を書き換えるのではなく、変化があった部分だけを書き換えることでパフォーマンスを維持します。スプライトシステムを使うと、これが自動的に最適化されます。
4. パフォーマンスの注意点
- 1. フレームレート
- 標準は30fpsですが、playdate.display.setRefreshRate(50) で最大50fpsまで上げられます。ただし、描画負荷が高いと処理落ちが発生します。
- 2. メモリ制限
- 画像アセットを読み込みすぎるとメモリ不足になります。アニメーション枚数が多い場合は、必要なタイミングで読み込む、あるいは共通のパーツをプログラムで合成するなどの工夫が必要です。
- 3. 透明度の扱い
- 1-bitなので、アルファチャンネル(半透明)は存在しません。描画時に「マスク」を使用して、抜くか抜かないかを制御します。
5. 推奨ツール
- Aseprite
- ドット絵アニメーション制作のデファクトスタンダード。Playdate用のイメージテーブル形式での書き出しスクリプトなども有志によって公開されています。
- Playdate Simulator
- PC上で動作を確認できるだけでなく、CPU負荷やVRAMの使用状況をリアルタイムで監視できるため、アニメーションの最適化に必須です。
- Tip
- Playdateの魅力は「制限の中の創意工夫」です。あえてフレーム数を落としてコミカルに見せたり、クランクを回す速さに合わせてアニメーションの速度を変えたりすることで、プレイヤーに独特の手触り感を与えることができます。
関連ページ
最終更新:2026年04月29日 17:08