アットウィキロゴ

多重スクロール (パララックススクロール)

多重スクロール (パララックススクロール)とは、背景、中景、前景など複数のレイヤー(層)を異なる速度で移動させ、2D画面に擬似的な奥行きや立体感、疾走感を演出する映像・ゲーム技術のこと。


概要

1. パララックススクロールの基本原理
2Dゲームにおいて、視点(カメラ)が移動する際、「遠くのものは遅く、近くのものは速く」動かすことで、平面的な画面に擬似的な奥行き(擬似3D)を生み出す技法です。
前景 (Foreground)
プレイヤーよりも手前にある層。最も速く移動し、時にはプレイヤーを隠すように配置してスピード感を強調します。
中景 (Middleground)
プレイヤーや地面が存在するメインの層。
背景 (Background)
山や雲、星など。最も遅く移動させ、世界の広がりを表現します。

2. Playdate SDKでの実装方法
Playdateの開発環境(Lua/C)では、主に以下の2つのアプローチで実装されます。
A. Sprite(スプライト)システムを利用する
Playdate SDKの playdate.graphics.sprite は非常に強力で、レイヤー管理が容易です。
  • Z-Index (Z-Order。重なり順): setZIndex() を使って、背景を後ろに、前景を前に設定します
  • 自動更新: 毎フレーム、各スプライトの X 座標を「カメラの移動量 × 各層の移動係数」で更新します。
    • 背景の係数:0.1 〜 0.5(ゆっくり動く)
    • 前景の係数:1.2 〜 2.0(プレイヤーを追い越すように動く)
B. タイルマップの描画オフセット
背景がループするタイルの場合、スプライトとして配置するよりも、drawTiled() 関数などで描画開始位置(オフセット)をずらす方がメモリ効率が良い場合があります。

3. Playdateならではの演出と工夫
Playdate特有の制限や機能を活かしたパララックスのテクニックです。
クランク」との連動
クランクを回す速度に合わせてスクロール速度を変化させることで、「自分で世界を動かしている」という強い直感的なフィードバックを与えられます(例:『Whitewater Wipeout』の波の表現など)。
ディザリングによるグラデーション
1-bit ディスプレイでは色の階調が使えません。遠くの背景をあえて薄いディザリング(網点)で描画し、手前のレイヤーをハッキリとした白黒で描くことで、空気遠近法のような効果を出し、多重スクロールの立体感を強調できます。
1ビットの視認性
重なりが多いと画面がごちゃつきやすいため、前景には「白の縁取り」をつけたり、背景の密度を下げたりして、プレイヤーキャラを見失わない工夫が重要です。

4. パフォーマンス上の注意点
PlaydateはGPUを持たないため、あまりに多くの巨大なレイヤーを重ねると描画負荷(CPU)が高まります。
1. 描画範囲の制限
画面外(400x240ピクセル外)にあるスプライトは描画されないよう、SDK側で最適化されていますが、計算自体は最小限にする必要があります。
2. 不透明度の活用
透明部分(アルファチャンネル)が多いスプライトを大量に重ねると重くなります。背景レイヤーは可能な限り「不透明なタイル」として扱うのが理想的です。
3. FPSの維持
パララックスは滑らかさが命です。カクつくと奥行き感が損なわれるため、安定して30fps(または50fps)を出せる範囲でレイヤー数を調整します。


関連ページ

最終更新:2026年05月02日 13:05