ピクセルアートプラットフォーマーを720pから1080pにスケーリングする


12

私はPCとスマートフォン用のピクセルアート2Dプラットフォーマーを開発していますが、技術的な問題にこだわっています。

32x32タイル解像度と64x64文字スプライト解像度を選択しました。レベルは「スクリーン」と呼ばれるセクションに分割され、各スクリーンには40x23に近似した40x22.5のタイルがあるため、最小解像度は1280x720です。

ゲームでは、ダブルジャンプのメカニックを持っているので、各「スクリーン」に適切な垂直視野範囲が必要です。

ここに問題があります:1280x720はあまり高解像度ではありません。HDモニターでは、ウィンドウは大きくありません。解像度を2倍に拡大すると、2560x1440になり、ウィンドウは実際のHDモニターよりもはるかに大きくなります。1280x720から2560x1440の間のサイズを試してみると、グラフィックが途切れたり、変形したりします。

この問題を解決するにはどうすればよいですか?すべてのタイルとスプライトを16x16形式で再描画する必要がないソリューションはありますか?


解像度を下げますが、カメラに画面を移動させることは、許容できる設計上の選択ですか?つまり、解像度は640 x 360になりましたが、画面はまだ1280x720ですが、MetroidやAxiom Vergeのように部屋の中を移動する必要がありますか?
lozzajp

2Dゲームであっても、カメラを定義する必要があります。そのため、カメラは表示解像度、視野角、角度を定義し、データをカメラに提示するだけです。そうすれば、あなたのゲームは魂に依存しません
Yosh Synergi


問題が正確に何であるかを確認しようとしています。1280X720マップディスプレイは1920X1080モニターディスプレイよりも小さいため、マップディスプレイを可能な限り「フルスクリーン」にアップスケールしたいと言っていますか?とにかく、16X16タイルを描いても問題は解決しないので(私は理解しているように)、私は混乱しています。
RobM

@D整数または小数、そのアーティファクトが表示されます。アーティファクトでは、そこにあるべきではないものを意味します。これは、ぼかしとは異なり、十分なピクセルなしで高スケーリングに発生します。
ヨシュSynergi

回答:


16

なぜこれがピクセルアートの問題なのか疑問に思う人のために、スーパーマリオワールドのシーンを使用した簡単な例を示します。

ピクセルアートシーンをスケーリングして、アーティファクトを表示する例

実行時にピクセルアートゲームを720から1080にスケーリングする場合(通常のゲームカメラの場合)、ソーステクセルあたりの画面ピクセルの非整数比のためにアーティファクトが発生します。右側のスケーリングされた例の数値の不整合、および葉とマリオの耳の外観の文字化けを確認してください。

再生可能ですが、その魅力的なピクセルアートの鮮明さは失われています。そして動きの中で、これらのアーティファクトはスプライトをクロールし、きらめくように見えます。

隣接するピクセルをブレンドするフィルタリングモードを使用すると、波紋は回避されますが、代わりにピクセルアートが塗りつぶされてぼやけるので、あまり望ましくありません。


残念ながら、720pと1080pの間の1.5倍の比率は、私たちが遭遇する最悪のシナリオです。

あなたが注意したよう、1Xをスケーリングすることは小さすぎると2xが同じように広いマージン両方の方法により、大きすぎる、と何もありません全体番のスケーリング比たちが選択するための間では。

オプションは次のように要約されます。

  • 1xスケール耐え、画面よりも1/3小さいウィンドウにゲームを表示し、スペースを埋める必要がある場合に装飾的な境界線を追加します。

    • トリミングを拡張して、高解像度の画面で一度により多くのシーンを表示できる場合があります。これにより、必要なパディング/レターボックス化が削減されますが、ゲームのプレイ方法に影響するかどうかを評価する必要があります

      (たとえば、一部のデバイスのプレーヤーに不当な優位性を与えたり、それほど簡単には見えない秘密を見つけさせたりしますか?)

  • 2倍に拡大し、シーンをトリミングして、プレーヤーが一度に見るシーンが少なくなるようにします(以前の3/4程度)。

    これも、ゲームのプレイ方法に影響を与える可能性があります。プレーヤーがダブルジャンプする必要のある場所を見にくくすることにより。

    • これをカメラロジックで補正することで、プレーヤーを追跡または予測するビューパンを持たせることができるため、重要なコンテンツは小さい画面でも1つの画面に表示されますが、使用するのに最適な普遍的なカメラはありません。

      このルートを選択する場合は、ゲームプレイと現在のカメラの詳細、およびシーンの例を共有してみてください。これにより、カメラの動作を調整して補正することができる場合があります(または、ゲームをフラットにするには、より多くの可視性が必要になる場合があります)

  • 異なる解像度で代替アセットを作成します。(ええ、これは多くの作業ですが、ゲームのルックアンドフィールを制御するための最も多くのオプションを提供します)

    これは、720pで見栄えの良い既存のアセットを捨てる必要があるという意味ではありません。この記事では、さまざまなアセットセット間でコンテキストを交換して、より広い範囲のターゲット解像度をサポートする方法について説明します(Unityで、Unity以外のゲームにも原則を適用できます)。

    • ご指摘のとおり、すべてのアセットを半分のサイズ(16x16タイル、32x32文字)で再描画すると、現在と同じ数のタイルが表示され、2xスケールで720p、3xスケールで1080pを処理できます。ただし、小さなタイルの解像度は視覚的に制限が厳しい場合があります。

    • 150%大きい(48x48タイル、96x96文字)代替の「大判」アセットセットを描画することもできます。これは、1xスケールで1080pを処理します。(既存のアセットを720pや1440などに使用します)。解像度を大きくすると、現在のアートの忠実度を維持できるため、現在のスタイルと詳細を犠牲にする必要はありません。

      150%スケールで再描画されたアセットの例

    • 3番目のオプションは、わずかに小さいアセットセット(24x24タイル、48x48文字)を描画することです。これは、2倍のスケールで1080pを処理できます。

      これらの3つのオプションはすべて、720と1080でフレーミングとゲームプレイをまったく同じ状態に保ちますが、コストはおおよそ2倍になります。

残念ながら、ここでは簡単に勝つことはできず、トレードオフが異なります。


2
元のスケールを維持し、装飾的なボーダーを使用することに言及します。コンテキストによっては、スコアや生活などのGUI要素を配置するのに最適な場所です。これらの境界がそのような情報に適切に適合するのに十分な大きさである場合、それは「フィラー」のように見えず、より「コンテンツがいっぱい」でゲームに関連するように見えます。
Gnemlock

3

異なる解像度で代替アセットを作成する@DMGregoryのオプションについて具体的に説明します。

私が知っている最良の解決策は、おそらくこの時点であなたにとって最も使用が少ないでしょう:ベクター形式でアート資産を開発し、後で必要に応じてラスタライズします。これは魔法の弾丸ではありません。ほとんどの場合、ラスタライズ後に小さな手作りの変更を行う必要があります。

私が知っている次善のオプションは、さまざまな画像スケーリングアルゴリズム、特にピクセルアートスケーリングアルゴリズムを試すことです。前と同じように、これはパンサーではありません。特定のスケーリングアルゴリズムの選択は、コンテキスト固有です。アート自体と同じようにゲームの「フィーリング」と関係があります。また、アルゴリズムとアートをうまく組み合わせても、おそらくスプライトを手で微調整する必要があります。

どちらの場合でも、アイデアはツールを使用して作業の大部分を行い、残りの詳細に人間の努力を集中させることです。@DMGregoryが言ったように、「ここには簡単な勝利はありません。ただトレードオフが異なります。」


分数スケーリングに関する編集:ほとんどのピクセルアートスケーリングアルゴリズムは、整数だけ増加します。独自のカスタムスケーリングアルゴリズムを展開するのではなく、おそらくアップスケーリングとダウンスケーリングを組み合わせて、探している1.5倍の変更を取得する必要があります。参考として、scale3xアルゴリズムをアップスケールに、ファントアルゴリズムを50%ダウンスケールする結果を以下に示します。

元の:

ここに画像の説明を入力してください

スケーリング:

ここに画像の説明を入力してください


残念ながら、私が見つけたほとんどのピクセルアートスケーリングアルゴリズムは、整数のアップスケーリング(通常2倍、3倍、4倍)のみを処理する傾向があるため、720-> 1080の場合にはあまり役に立ちません。(3xピクセルのアップスケーラーを使用してから半分にダウンサンプリングすることもできますか?それが直接アップスケールよりも良く見えるか悪くなるかはわかりません)
DMGregory

有効なポイント。それに対処するために少し編集しました。また、分数スケーリングをサポートしていると思われるこのシェーダーに出くわしました。
ピカレック

ベクトルソリューションの+1。資産を本当に大きく、ダウンスケールにする必要があります。
マークアベン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.