私は今、巨大な「ゲームデザイン」の質問の前にいます。ピクセルアート風のゲームを作成しています。双線形補間を使用すると、アニメーションの問題の多くを解決できます。一方、もはや「ピクセルゲーム」ではありません。
バイリニア補間を使用すると、アニメーションは機能しますが、「ハイブリッドっぽく」見え、アートスタイルが失われます。アニメーションを台無しにするか、アートスタイルを台無しにする。どちらもないようです。
これを解決する他の方法はありますか?
私は今、巨大な「ゲームデザイン」の質問の前にいます。ピクセルアート風のゲームを作成しています。双線形補間を使用すると、アニメーションの問題の多くを解決できます。一方、もはや「ピクセルゲーム」ではありません。
バイリニア補間を使用すると、アニメーションは機能しますが、「ハイブリッドっぽく」見え、アートスタイルが失われます。アニメーションを台無しにするか、アートスタイルを台無しにする。どちらもないようです。
これを解決する他の方法はありますか?
回答:
ピクセルアートの90度以外の角度による自動回転は、通常はうまくいきません。ピクセルアートの美学を維持したい場合は、通常、各角度でアートを再描画する必要はありません。
スプライトが実際に見るよりもはるかに高い解像度であるフェイクレトロな外観を使用する場合、グラフィックエディターで補間せずに整数係数でそれらをアップスケーリングし、実行時に線形補間で回転させることで回避できる場合があります。スプライトが元の方向にあるときにぼやけないようにするには、描画位置が最も近い整数に丸められるようにしてください(一部のグラフィックエンジン/フレームワーク/ライブラリでは、浮動小数点座標にスプライトを描画できるため、ぼやけが発生することがよくあります)。しかし、それは通常、手作業で達成できる品質に達しない、単なる怠惰な代替品です。
元のサイズのスプライトの例を次に示します。補間なしで係数3で拡大され、線形補間で30度回転されます。
見て RotSpriteを。
RotSpriteは、Xenowhirlによって開発されたスプライトのスケーリングおよび回転アルゴリズムです。最近傍回転アルゴリズムよりもはるかに少ないアーティファクトを生成し、EPXのように、(ほとんどの補間システムとは異なり)画像に新しい色を導入しません。
このアルゴリズムは、最初に画像を元のサイズの8倍に拡大縮小し、類似した(同一ではない)ピクセルを一致として扱う変更されたScale2xアルゴリズムを使用します。次に、境界ピクセルではないサンプルポイントを優先して、使用する回転オフセットを計算します。次に、大きな画像を元のサイズに縮小して回転する最近傍スケーリングと回転アルゴリズムを使用して、回転画像を作成します。最後に、ソース画像の対応するピクセルが異なり、宛先ピクセルに3つの同一の隣接ピクセルがある場合、見落とされた単一ピクセルの詳細が復元されます。
このアルゴリズムは、ゲームの描画コードの一部として自分で実装することも、事前に回転アセットを作成するために使用することもできます。ピクセルアートツールAsepriteは、Sprite Editorの一部としてを統合しています。
また、UnityでRotSpriteを使用する方法、およびRotSpriteに関するより一般的な情報については、このUnityフォーラムスレッドをご覧ください。