ワールドスペース(Unity)のスプライトサイズに関する混乱


11

私は1080x1920解像度のスプライトを持っています。また、ゲームビューの解像度も1080x1920に設定しました。私が考えていたのは、スプライト(1080x1920)がカメラビュー内に正しく収まるはずだということです。

画像の解像度は1080x1920です

しかし、そのスプライトをドラッグすると、スプライトが拡大され、カメラビューの外に出ます。

画面ビュー、スプライトがカメラの外にあります

このスプライトがカメラビュー内に100%収まるようにするには、どのような調整が必要ですか。スプライト変換スケールを変更することもできました。しかし、他にもたくさんのスプライトを扱う必要があり、それらは比例しているはずなので、それは問題を引き起こします。


3Dスプライトのことですか?またはUI 2Dスプライト?
TomTsagk 2018

A 2D Sprite .....
ファイザンカーン2018

回答:


19

これは、スプライトが単にピクセルごとに画面上でブリットされているわけではないことを思い出すときに意味があります(すべてのアートが異なる方法で切り取られるため、解像度が異なる画面で同じ外観を得るのは悪夢になります)。ではなく、デバイスに依存しないゲームプレイ座標系の3Dワールドの一部であり、ユーザーが制御できます。

そのゲームプレイの世界の他のすべてと同様に、最終的に画面にマッピングされる部分は、カメラオブジェクトの構成方法によって決まります。

したがって、スプライトの表示サイズを決定する4つの部分があります。

  1. スプライトのソース解像度

  2. 単位あたりのピクセルのインポート設定インスペクタで選択した設定。

    これは、サイズをテクスチャ空間のピクセルからワールド空間の単位(つまり、すべてのゲームプレイと物理計算が行われる空間)に変換するための変換係数を設定します。

    ワールド単位の高さ=ピクセル単位のソースの高さ/単位あたりのピクセル

    通常、この数は、ゲーム内のいくつかの関連するゲームプレイメトリックに合わせるために選択する必要があります。例えば。135ピクセルの間隔のタイルグリッドがある場合、ピクセルあたりのピクセル数= 135を選択すると、ゲームの座標系でグリッドの各セルの幅がちょうど1ユニットになり、計算がより簡単になります。

  3. カメラの正投影サイズ

    (または、パースビューカメラを使用している場合は、カメラの視野とカメラからスプライトまでの深度の組み合わせ)

    これにより、ビューの中心から上端まで、カメラが見ることができる世界の単位数が決まります。

    占有されているカメラの高さの一部=ワールド単位の高さ/(2 *カメラのオルソサイズ)

    したがって、135 PPU値で実行した場合、1920ピクセルの高さのスプライトは、世界で14.222222ユニットの高さになります。つまり、上から下まで全体をキャプチャするには高さ7.111111のカメラが必要になります(カメラの高さはミドルアウト)

  4. ウィンドウピクセルサイズ/出力画面の解像度。

    デフォルトでは、カメラのビューは画面を垂直方向に塗りつぶすため、画面/ウィンドウの高さが変化しても、シーンの垂直方向のトリミングは変化しません(画面の上端または下端にあるオブジェクトが移動しないか、切り取られると、シーン全体が利用可能な高さを満たすために大きくなったり小さくなったりします)。

    そのため、カメラが上から下にマップするワールド単位の数から、ウィンドウ/画面のピクセル数が上から下にマップされます。

    出力ピクセルサイズ=占有されているカメラの高さの一部*ピクセル単位のウィンドウの高さ

    したがって、画面の高さが1920ピクセルで、ソーススプライトがカメラのビューを完全に満たす場合、1920画面のピクセル全体に1:1で出力されます。


細かいご回答ありがとうございます!!
Faizan Khan

3
お役に立てて嬉しいです!:私はそれかもしれない、ヘルプユニティでスプライトのサイズでの作業については、いくつかの他のQ&Asを書いたスプライトのサイズを選択する上で異なるサイズのスプライトの外観の一致にスケーリングピクセルアートに
DMGregory

1
ありがとう... Twitterでもフォローしていました... UbiSoftで働いている人とやり取りできて本当に良かったです:)
Faizan Khan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.