【Unity】Pixel Perfect Cameraでレトロな画面を再現する【2D Pixel Perfect】

Pixel Perfect Cameraとは

Unityでドット絵画像を使用する場合、Spriteを適切な設定にすればほぼ対応できるようになります。ただし、アニメーション時に適切にレンダリングできずドットが崩れる、画面幅等がうまいこと昔風のゲームにならない等の問題があります。これを解決するのが、Pixel Perfect Cameraコンポーネントです。

ファミコンやメガドライブなどのレトロゲーム機を忠実に再現したゲームを開発したい場合の画面設定等を簡単に整えることができます。

2D Pixel Perfectの設定

Unity2020 LTS以降は2Dプロジェクトで最初から導入されていると思いますが、もしPixel Perfect Cameraコンポーネントが存在しない場合、Package Managerから2D Pixel Perfectをインストールします。

Unity pixel perfect インストール

Main CameraにPixel Perfect Cameraコンポーネントを追加することで利用できるようになります。

Unity pixel perfect

ちなみに上記サンプル画像は16×16のタイルを使っており、Assets Pixels Per Unitは16、メガドライブに合わせたいのでReference Resolutionは320×180で表示しています。

また、ドット画像に関しては、以下のページのようにSprite設定を変更しておく必要があります。

Assets Pixels Per Unit

シーンの1単位あたりのPixel量。SpriteアセットのPPUと同じなので、上記例の場合は16×16ピクセルの画像を利用しているため、16が推奨です。

Reference Resolution

オリジナルの解像度。解像度は参考にするゲーム機の解像度を基準に、実際に表示したい解像度の縦横比を揃えた値を入力します。

ゲーム機解像度16×9画面の推奨解像度
ファミコン256×224256×144
398×224
スーパーファミコン512×478512×288
849×478
メガドライブ320×224320×180
398×224

Upscale Render Texture

チェックを入れると、実際の解像度(上記で設定した解像度)でレンダリングしたものを実画面に合わせて拡大します。フルスクリーンで忠実なドット画像を再現したい場合に利用できます。

Pixel Snap

Upscale Render Textureが未チェックの場合に利用可能。PPUに基づいたグリッド単位で描画します。PPU単位のため、アニメーション時のピクセルのズれが生じません。未チェックだと、ピクセルより小さな単位の色の形が歪な場合があります。

Crop Frame

画面の解像度を基本解像度と一致する大きさで統一し、それ以外の部分をトリミングします。省かれた部分は黒になります。以下のように実際の画面のサイズと合わない部分が黒色になっています。

Unity pixel perfect Crop Frame

関連リンク

こちらの素材をお借りしています。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA