リリース済みのUnityタイトルで複数解像度に対応した話です。
【ヤマふだ! にごうめ Android版】を題材にしています。
元のゲームは16:9フルHD(1920×1080)で制作されており、Androidの端末によっては横に伸びてしまっていました。
キャラクターが元々ぷっくりしたデザインだったため大きな違和感は無かったのですが、今後のタイトルを見据えて正式に対応をすることにしました。
ここからは、今回対応した要素を3D、2D(UI)、ゲーム部分の3編に分けて紹介します。
続きを読む: 【Unity】リリース済みタイトルのマルチ解像度対応3D
カメラ
ここはシンプルに、各カメラのViewport Rectを調整するためのスクリプトをアタッチしました。
ただ、シーン毎に独立したカメラを設定していたため各シーンで同スクリプトを設定して回る羽目になってしまいました…
基本となるカメラを作ってそのPrefabを使用するか、シーンロード時に対象カメラへコンポーネントを自動追加する機能を作る形が望ましそうです。
2D(UI)
UGui
UGuiは、中心や右上隅といって基準点から位置を設定できるようになっており、これらをCanvas配下に置いておくと自動で位置を補正してくれるようになっています。
が、それを知らずすべて中心基準で作成していたため、一部のUIが画面外に出てしまってしまうことがありました…(古い人間なので全部左上 or 中心基準でした)
なので、シンプルに端基準と中央に設定し直しました。
レターボックス
本作は元が16:9なので、タブレットのような4:3の端末では上下に何もない空間ができてしまいます。
ここを何も描画しないとプラットフォーム側からリジェクトされてしまいますので、ゲームにあった画像を配置します。
ここは一番初めに画面奥側に任意の画像を配置することで解決できます。通常のUIとは別のCanvasを最奥に配置して、ループ画像などを設定しましょう。
※規約的にはゲームに沿った変化をした方が良いようです。
ゲーム部分
アクションゲームなどの場合、プレイヤーの見える範囲が変わり、難易度に影響してしまうことがあります。ただ本作はRPGのような形式のカードゲームのため、影響がありません…
と思っていましたが、ありました。
本作で確認できる先の険しさは2つまでなのですが、ここでは3つ先まで見えてしまっています。
なので、険しさがある程度の距離に近づいてから表示するように変更しました。

まとめ
思いがけないトラップはあったものの、スクリプトもほぼ書かずに対応ができました。
PC専用のゲームを出されている方は、是非お気軽に移植を考えてみてください。(Androidなら開発者登録も安いので…)
お疲れさまでした!
それでは、よいUnityライフを~









