Unity 2Dのピクセルアートを理解する


10

Unityのピクセルアートの背後にある基本を理解するのに苦労しています。

ユニットとは何かを理解しています。16x16ピクセルでスプライトを描画する場合は、PPUを16に設定する必要があります。

たとえば、スターデューバレーを見てください。下の画像では、プレーヤーが正方形ではないことがはっきりとわかります。ゲームの作成者は、すべてを16x16で作成したと言いましたが、キャラクターにはどのように多くの詳細がありますか?(タイルマップの場合のように)キャラクターを作成するためにいくつかの16x16の正方形にパッチを適用しませんか?

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

画像内の文字のように、正方形ではないものを処理する「一般的な」方法は何ですか。16x32スプライトを作成し、PPUを16に設定しますか?16x16スプライトの横で少し奇妙に見えるのではないでしょうか?通常、1つのサイズ(つまり、16、32、64)を選択して、ゲームのすべてのサイズを維持しますか?

私が見た視覚的な問題はこれです。32x32スプライトが16x16スプライトの隣で非常に場違い(鋭すぎる)に見えます。

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

したがって、1つの画像が他の画像よりもはるかに鮮明に見える場合に、この効果を得るためにどのようにサイズを混合するのでしょうか。たとえば、タイルが16x16のときに、文字を16x32、または非正方形の値にしたい場合


2
PPUは、スプライトのテクスチャ寸法とは何の関係もありません。それは、スプライトが表示されるスケールを、ワールド座標系に対して決定するだけです。同じPPUを持つ2つのスプライトは、画像のサイズが完全に異なっていても、同じピクセル密度を示します(つまり、各ピクセルブロックの表示サイズは、まっすぐに見たときに1つのスプライトから他のスプライトまで同じです)。それで、「それが少し奇妙に見えるのではないか」という意味がわかりません。あなたが観察した視覚的な問題について正確に詳しく説明できますか?
DMGregory

@DMGregory確かに、画像をアップロードさせてください
Green_qaue

1
例のスクリーンショットに示されている効果は、2つの画像を異なるPPU値と一緒に配置した場合(または、1つの画像のテクスチャ自体でピクセルが2倍または3倍になった場合、または1つの画像にスケールを適用したが、他の画像には適用しなかった場合)です。 。1つの一貫したPPU値に固執し、スプライトをスケーリングしない場合、一貫したピクセル密度を維持します
DMGregory

@DMGregoryたとえば、タイルが16x16で、より詳細な文字が必要な場合(上記の16x16の文字は非常に詳細が少ないことがわかります)、たとえば32x16の場合、32x16スプライトを作成し、PPUを16に維持する必要があります(同じ)タイルとして)?または、たとえば、象が必要な場合、64x128にする必要があるかもしれませんが、それも16 PPUに設定しますか?
Green_qaue

1
PPUは、1つのワールド単位に収まるピクセル数です。常に同じサイズのピクセルが必要な場合は、常に1つの一貫したPPU値を使用する必要があります。(つまり、16 PPUでの16x16の低木と64x128の象はどちらも同じピクセル密度を示し、象は低木よりも32倍多くの画面領域をカバーします)。あなたが思っていたのはそれだけですか?
DMGregory

回答:


16

上記のポイントを要約すると、2つのピクセルアートが一致するために重要なのは、それらのピクセル密度(画面領域あたりのテクセル/ワールド単位)が同じであることです。

例としてStardew Valleyのいくつかのスプライトを使用すると、各スプライトは異なるテクスチャー寸法を持っていますが、各ピクセルが同じサイズで描画されるため、一貫したグリッド上で一致することがわかります。

同じピクセル密度で2つの異なるサイズのスプライトを示す例。

植物のサイズを1タイル/ワールドスペースの1ユニットと考えると、このユニットは水平および垂直に16ピクセルにわたることがわかります。植物の高さの2倍のキャラクターは、タイルの2倍の数/ワールド単位もカバーするため、ピクセルの密度は、ワールド単位あたり16ピクセルのまま変わりません。

特にUnityの場合、これはSpriteインポート設定インスペクターのPixels Per Unit設定としてこれを公開します。ここですべてのスプライトに1つの一貫した数値を使用している限り、Unityは自動的にそれらを世界の適切なサイズで描画し、このピクセル密度を維持します—それらが奇数サイズで2のべき乗でも正確でもない場合でもタイルサイズの倍数。したがって、この例では、低木とキャラクターの両方、およびゲームの他のすべてが16のPPUを使用します。

選択する正確な数は大した問題ではなく、一貫性が最も重要です。各タイルが2つのワールドユニットにまたがるようにして、レベル編集時にタイルのコーナー(奇数)とタイルの中心(偶数)に簡単にスナップできるようにするには、すべてのスプライトに代わりに8のPPUを使用します。

あまりにも下げないでください低く。PPU設定を1にすることを推奨している記事がいくつかあります。つまり、256ピクセルのスプライトは256ワールド単位にまたがります。これは驚くほど聞こえないかもしれませんが、物理のようなシステムは、ほとんどのゲームプレイが10分の1から数十単位のスケールで発生することを想定して調整されています。スケールを大きくしすぎると、動作が低下する可能性があります。キャラクターの幅やタイルなど、ゲームプレイで意味のあるピクセル数を選択してみてください。これはまた、プログラミングとレベルデザインの計算を容易にします(たとえば、「このキャラクターに3タイルを右にダッシュさせたいので、それがそうですx + 3.0f」)。

変換プロパティを使用してスプライト、UI画像、またはその親をスケーリングすると、これらの一貫したピクセル密度から歪むので、スケーリングプロパティには十分注意して、シーンのほとんどまたはすべてを1.0のスケールに維持して簡単にしてください。

最後の注意点の1つは、スプライトが実際に画面に表示されるサイズを決定するものではないことです。これは、ゲームウィンドウ/画面のサイズ、およびカメラのサイズ/ FoV /角度によって決定されます。ピクセルパーフェクト2Dの場合、ウィンドウの高さが、カメラが見るスプライトピクセルの数の整数倍であることを確認する必要もあります(カメラの正投影高さx 2 x PPU)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.