ゲームをプレイしていて「解像度を落として省エネでプレイしたい」と思ったことはありませんか?高解像度で描画されるととても綺麗なのですが、CPUの処理負荷は解像度(画素数)に比例しますから、その分CPUが頑張りすぎてしまい発熱します。端末の温度が上昇すると処理速度が制限されてカクついたりして、とてもイラッとしますよね。
Unityのビルド設定には解像度にまつわる設定があり、これをちょっと調整するだけで「無駄に高い解像度で描画してカックカクのホッカイロ状態」を防ぐことができます。そんな夢のような(?)設定はどこにあるのかというと、👇ここです。
画素密度(DPI)を固定する解像度設定
PlayerSettingsにあります
PlayerSettings > Resolition and Presentation を開きます。
Resolution Scaling Mode を「Fixed DPI」に変更します。
そうすると「Target DPI」の設定が表示されますので、この数値を適切な設定に変更します。
実際どうなるの?
まっさらなプロジェクトでは 30 になっているので、これを 326 にしてみます。この値は古い機種にも対応した一般的な数値です。
こうすることで、326DPIのiPhone8なら元の解像度(1334x750)で表示されます。458DPIのiPhoneXの場合は、元の解像度(2436x1125)から326/458倍され、1734x800で表示されます。少し画素数が減りますので、その分処理が軽くなるということです。
処理が軽くなればフレームレートが上がり、元々60FPS出ている端末では電池消耗が軽減します。
一部のAndroid端末ではフルHD(1920x1080)でありながらそれに耐えうるCPUを持たない狂気じみた機種があります。(京○ラとかね)
そういう端末ではFixed DPIを設定して画素数を固定することで、大幅なパフォーマンス改善が見込めます。
ダイナミックフォントは解像度が高ければ高いほど綺麗に描画されます。3Dポリゴンの輪郭も同様です。
しかし、テクスチャは元の解像度以上には綺麗になりません。テクスチャの見え方で画素数を判断するのがよいかもしれません。
代表的な端末のDPI
機種 | インチ | 解像度 | DPI |
iPhone 5, 5C, 5S, SE | 4 | 1136x640 | 326 |
iPhone 6, 6S, 7, 8, SE(2020) | 4.7 | 1334x750 | 326 |
iPhone 6Plus, 6S Plus, 7Plus, 8Plus | 5.5 | 1920x1080 | 406 |
iPhoneX, XS, 11Pro | 5.85 | 2436x1125 | 458 |
iPhoneXR, 11 | 6.06 | 1792x828 | 326 |
iPhoneXS Max, 11Pro Max | 6.46 | 2688x1242 | 458 |
iPad 3G, 4G, Air, Air2, Pro, 5, 6, iPad mini(第二世代以降) | 9.7 (miniは7.9) | 2048x1536 | 264 (miniは326) |
iPad 7 | 10.2 | 2160x1620 | 264 |
iPad Pro, Air3 | 10.5 | 2224x1668 | 264 |
iPad Pro | 11 | 2388x1668 | 264 |
iPad Pro | 12.9 | 2732x2048 | 264 |
Xperia J1 Compact, A4, Z5 Compact | 4.3 | 1280x720 | 320 |
Xperia Z4, Z5, Z5 Premium | 5.2 | 1920x1080 | 480 |
Xperia Z4 Tablet | 10.1 | 2560x1600 | 320 |
Xperia XZs | 5.2 | 1920x1080 | 424 |
Xperia XZ2 Premium | 5.8 | 3840x2160 | 760 |
Xperia XZ3 | 6.0 | 2880x1440 | 537 |
Xperia Ace | 5.0 | 2160x1080 | 482 |
Xperia 5 | 6.1 | 2520x1080 | 449 |
Xperia 8, 10 II | 6.0 | 2520x1080 | 457 |
Xperia 1, 1 II | 6.5 | 3840x1644 | 643 |
Galaxy Active neo | 4.5 | 800x480 | 240 |
Galaxy S6, S6 edge | 5.1 | 2560x1440 | 640 |
Galaxy A8 | 5.7 | 1920x1080 | 480 |
Galaxy S8, S9, S9+ | 5.8 (S8+,S9+は6.2) | 2960x1440 | 570 (S8+,S9+は529) |
Galaxy Note9 | 6.4 | 2960x1440 | 514 |
Galaxy S10, S10+ | 6.1 (S10+は6.4) | 3040x1440 | 540 (S10+は514) |
Galaxy A20 | 6.4 | 1560x720 | 268 |
Galaxy A60 | 6.3 | 2340x1080 | 409 |
Galaxy Note10 | 6.3 | 2280x1080 | 401 |
Galaxy Note10+ | 6.8 | 3040x1440 | 498 |
Galaxy Z Flip | 6.7 | 2636x1080 | 425 |
Galaxy S20, S20+ | 6.2 (S20+は6.7) | 3200x1440 | 563 (S20+は525) |
Galaxy A41 | 6.1 | 2400x1080 | 431 |
Pixel 3 | 5.5 | 2160x1080 | 440 |
Pixel 3 XL | 6.3 | 2960x1440 | 523 |
Pixel 3a | 5.6 | 2220x1080 | 441 |
Pixel 3a XL | 6.0 | 2160x1080 | 402 |
Pixel 4 | 5.7 | 2280x1080 | 444 |
Pixel 4 XL | 6.3 | 3040x1440 | 537 |
AQUOS sense3 | 5.5 | 2160x1080 | 439 |
Android One S7 | 5.5 | 2160x1080 | 439 |
Huawei nova 5T | 6.26 | 2340x1080 | 412 |
P40 lite 5G | 6.5 | 2400x1080 | 405 |
OPPO Reno3 5G | 6.5 | 2400x1080 | 405 |
Find X2 Pro | 6.7 | 3168x1440 | 513 |
ASUS ZenFone Live | 5.5 | 1440x720 | 293 |
Zenfone 6 ZS630KL | 6.4 | 2340x1080 | 403 |
ROG Phone II | 6.59 | 2340x1080 | 391 |
LG G8X ThinQ | 6.4 | 2340x1080 | 403 |
Xiami Mi 10 Lite 5G | 6.57 | 2340x1080 | 392 |
Nintendo Switch | 6.2 | 1280x720 | 238 |
Nintendo Switch Lite | 5.5 | 1280x720 | 268 |
android端末は多すぎるので比較的最新且つ、メジャーな機種の中から掻い摘んで掲載しました。
ご覧の通りDPI設定は見事にバラバラです。特にandroid端末の自由っぷりが際立ちます。これらのじゃじゃ馬スマホをおとなしくさせる設定が「Fixed DPI」なのです。個人的には 300 以下で設定しておいても良いんじゃないかなと思います。