【最適化】Unityでデザイナーが意識する最適化の基礎

面白いゲームアプリの条件の一つとして「軽快に動作する」ことが上げられます。

特に画像はアプリのサイズ、ダウンロードサイズや描画速度などパフォーマンスに大きく影響する為、デザイナーが責任を持って「画像の最適化」をする必要があります。

「そんな事はわかっているよ!」と思われるかもしれませんが、意外と現場のデザイナーでも最適化を意識して制作をしているデザイナーは少ないように感じます。

基本的な部分ではありますが、最適化する際に意識するべき事を軽く紹介したいと思います。

今一度、開発中のアプリ内の画像を見直していただきより良い体験を実現していただければ幸いです。

スポンサーリンク

画像の枚数を最小限にする

読み込む画像の枚数が増えるほどテクスチャの描画速度に影響が出ます。
Atlas画像としてまとめ際にも最終的に画像サイズに影響が出るため開発後期には見直しをしてください。

不要な画像は削除しましょう

開発中に使用されていたダミー画像、画像差し替えにより不要になった画像がそのまま残されている事がよくあります。

Unity上ではオブジェクトにアタッチされていない画像はステージに読み込まれる事はありませんが、プロジェクト内に含まれているということはダウンロードデータにしっかり含まれています。
不要な画像は必ず削除するようにしてください。

画像は使いまわしましょう

別シーンで同じデザインの画像を使用する場面がよくあると思います。
その場合は、できるだけ使いまわすようにしましょう。

UnityのImageオブジェクトでは画像に色を乗せる(乗算ですが)ことができます。
UIパーツで色パターンが必要な場合は、画像で各色作成するよりも白色でパーツを作成してUnity側で色を付ける方が軽く、アニメーションで色替えもできるので無駄がありません。

ただし、AssetをダウンロードするタイミングやそのAssetの範囲によっては使い回さない方が合理的な場合がありますのでフロントエンドの方と相談しながら管理を行ってください。

スポンサーリンク

画像の適切な大きさにする

画像が大きければ綺麗に描画することができますが容量は大きくなります。
特に背景などの大きい画像はAtlasにすることができないのでその分、1枚の画像サイズに対する工夫が必要です。

スライスする

UIで使用する画像などAtlas化が可能なものに関しては、できる限り9スライスを行うようにしてください。
スライスすることで、等倍サイズで画像を保持する必要がなくなり更には使いまわしが聞くようになります。

また、中身が透過されているものは(画像が枠など)FillObjeftのチェックを外すことでより無駄な描画を抑えることができます。

画質の優先度を決め適切なサイズにしましょう

画面上に出てくるキャラクターやUI・背景などは制作に手間がかかっているのですべて綺麗に見せたくなるのもクリエイターの性です。
ただし、プレイヤーは無意識に画面上の一番目立つものまたは一番見たいものを見るのですべての画像を美しく描画するのは得策ではありません。

ユーザーが見る画面の優先度は下記です。

ユーザーが見る画面優先度
  • 優先度:高
    キャラクターやメインコンテンツに当たるもの
  • 優先度:中
    UIやテキスト情報
  • 優先度:低
    背景やエフェクトテクスチャ

特に背景に関しては、キャラクターが背景と馴染んでごちゃついた印象になってしまったり、描画に時間がかかったりとあまり良いことはないので必要でない限りは等倍で使うことは避けてください。

1920*1080サイズの背景は1枚数メガを超えてしまいます。
画像サイズを50%ほど小さくするだけで、許容できるクオリティで70%の容量を削減することができるので40-50%程度のサイズで使用することが良いです。

スポンサーリンク

画像をまとめる

画像の枚数も通信時のダウンロードに影響を与えます。
先に説明した、枚数を減らす/サイズを小さくした後、Atlas化を行うことでダウンロード枚数を大きく減らすことができます。

また、本来画像の枚数ごとマテリアルが必要になるのですが、Atlas化することで複数の画像を1つのマテリアルで済むので描画処理も軽くすることができます。

Unityには2つのAtlas機能が存在するので、必要に応じて使用してください。

  • SpritePacker(旧機能)
    PackingTagを設定して、ビルド時にAtlas画像を生成します
  • SpriteAtlas(Unity2017〜)
    指定フォルダ直下の画像を、ビルド時にAtlas画像を生成します

他にも、TexturePackerなどのツールも存在しますので開発にあったものを選択していただければと思います。

スポンサーリンク

画像を圧縮する

Unityは画像をインポートした際に自動で圧縮設定が適応されます。
その名を「Default」….圧縮フォーマットが謎でありますがプラットフォームに最適化されていないことだけはわかります。

端末やOSのバージョン毎に使用できる圧縮設定は異なってくるので、提供するものに合わせて圧縮設定を出し分ける必要があります。
また、圧縮フォーマットの選択を間違えると画像の劣化が発生しますので注意してください。

どのフォーマットを選択するかに関しては別の記事にて説明させていただきます。

スポンサーリンク

まとめ

デザイナーが意識する最適化の基礎知識を紹介してきました。
そんなに難しいことではないので、できる限り意識して開発にあたっていただければ嬉しいです。

ただし、最適化した後に必ず「Profiler」などでパフォーマンスをチェックするようにしてください。
でないと、効果が出ているのか分かりづらいですからね。。。

タイトルとURLをコピーしました