質問: unityroomで公開したゲームの容量を減らすにはどうしたらよいでしょうか? unityroomで公開したゲームの容量削減を検討したいと思います。 * 画像ファイル(png)の最適化 * 画像のアトラス化 * 音声ファイルの最適化(これが特によくわかりません) などなど試みているのですが,今ひとつ効果がありません。「この辺を見ると良いかも」「これをやると効果的でした!」というアドバイスや経験談などあれば,ぜひお願いいたします。 また,参考資料やサイトなどあれば,ぜひ教えていただきたいです!
回答: とりあえず自分が知る限りで...... まずは具体的な容量の内訳を確認するのが良いと思います。 1.びるどします 2.ビルド後、consoleウインドウの右上のメニューを開きます 3.メニューから"open editor log"を選択します 4.テキストエディタが開きます。下の方にアセット別の容量のデータがあります。 だいたいは、大部分をテクスチャが占めている結果が出ると思います。 次いで音声ファイル。 容量別にソートされるので、上の方から対処すると効率的です。 ■使っていないものが組み込まれていないか確認 Unityはビルド時に、使用しているリソースを判断してビルドしてくれますが、 完璧ではありません。例えばResourcesフォルダに入っているものは問答無用で組み込まれます。 例え実際のゲーム中で登場する事が無くても、シーンに配置(あるいは参照)されていれば組み込まれてしまいます。 そういった可能性を検証して、もし不必要に組み込まれているものがあれば除外していきます。 ■テクスチャ圧縮 ここらへんは試されているかとも思いますが。 テクスチャを選択し、ImportSettingをごにょごにょし、サイズを削減します。 ・圧縮アルゴリズムを使う ・ミップマップテクスチャの使用をやめる(ただし、代わりに描画パフォーマンスに影響します) ・そもそもの全体サイズ(Max Size)を小さくする 特に3番目かなと。アセット素材だとそのままだと4096x4096みたいなのがあるので...... アトラスはどちらかと言えば描画パフォーマンスの改善(SetPass Callの削減)なので 容量にはそこまで大きく影響はしないかなと思います。 ■音声圧縮 手っ取り早いのは、Import SettingのQualityを下げてしまう事ですが、 言うまでもなく音の質が下がるので、慎重に行う必要があります。 特にBGMはがむしゃらにQualityを落すと、判る人には即判るレベルで劣化します。 直接波形を弄る方法としては、残響音のカットでしょうか。 SEの中では、かなり多めに残響を取ってるものもあります(素材系なら尚更)。 もしBGMが流れる中で再生されるSEの場合、後半の残響はほぼ聞こえない事も考えられるので、 適当な波形編集ソフトで残響をカットするのは手です(メジャーなのはSoundEngineでしょうか)。 後半部分の残響をカットすれば、確実に容量は減ると思います。 残響がいきなり止まるのが多少不自然に聞こえる場合はさらにフェードアウト処理を加えると良いと思います。 あとは3Dゲームの場合、モーションなんかが可能性に加わると思いますが、 自分はあまりその手のゲームを作らないので......モーションの圧縮設定も確かあったはずです。 補足:もしかしたらwebGLだと事情が変わるものもあるかもしれません。特にオーディオ周り。