Как уменьшить объем игры

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Как уменьшить объем игры

Сообщение Mir 13 дек 2017, 12:05

Добрый день. При компиляции игра на андроид весит 90 мб.

у меня 300 картинок в ней по 19-25 кб каждая. плюс 7 сцен.

на каждой картинке скрипт.

что можно сделать чтобы уменьшить объем игры? это так влияет вес картинок?
Mir
UNIт
 
Сообщения: 82
Зарегистрирован: 18 июн 2016, 19:44

Re: Как уменьшить объем игры

Сообщение Valerich 14 дек 2017, 02:37

Хм... У меня в данный момент в игре 17.9мб общий вес папки спрайтов, и это еще не все, что заготовлено.
У вас же выходит 7.2мб...
Это если рассчитывать игру менее или примерно на 50мб всего объема)
В этом окне подбираются максимальный минимальный размер и качество самих спрайтов и в том числе и текстур.
Изображение
Даже не знаю что и сказать еще есть конечно и в PlayerSettings настройки влияющие на билд (Armv7+x86) если сборка будет без x86 то и билд будет в 2 раза меньше, но он и не запустится на устройствах с такими процессорами, но думаю вы это и так знаете.
Так же есть в BuildSettings-> Texture Compression.
Ну как то так. :ymdaydream:
Аватара пользователя
Valerich
UNITрон
 
Сообщения: 328
Зарегистрирован: 07 сен 2016, 11:24

Re: Как уменьшить объем игры

Сообщение DbIMok 14 дек 2017, 04:53

Посмотреть в Editor.log после билда. Посмотреть в .apk размеры, например 7zip.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Как уменьшить объем игры

Сообщение Mir 14 дек 2017, 14:41

Valerich писал(а):Хм... У меня в данный момент в игре 17.9мб общий вес папки спрайтов, и это еще не все, что заготовлено.
У вас же выходит 7.2мб...
Это если рассчитывать игру менее или примерно на 50мб всего объема)
В этом окне подбираются максимальный минимальный размер и качество самих спрайтов и в том числе и текстур.
Изображение
Даже не знаю что и сказать еще есть конечно и в PlayerSettings настройки влияющие на билд (Armv7+x86) если сборка будет без x86 то и билд будет в 2 раза меньше, но он и не запустится на устройствах с такими процессорами, но думаю вы это и так знаете.
Так же есть в BuildSettings-> Texture Compression.
Ну как то так. :ymdaydream:



Да у меня папка с спрайтами 9 мб. у меня 7 сцен может это влияет? а общий объем папки я посмотрела 221 мб, причем папка с библиотеками весит 190 мб из этого объема. из чего она формируется? влияет ли она как то на вес??? я заменила ее на другую. и снова она 190 мб. а вдругих проектах она 30 мб максимум
Mir
UNIт
 
Сообщения: 82
Зарегистрирован: 18 июн 2016, 19:44

Re: Как уменьшить объем игры

Сообщение DbIMok 14 дек 2017, 15:42

Mir писал(а):влияет ли она как то на вес???

размер проекта не имеет никакого отношения к размеру билда.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Как уменьшить объем игры

Сообщение Mir 14 дек 2017, 21:45

DbIMok писал(а):Посмотреть в Editor.log после билда. Посмотреть в .apk размеры, например 7zip.


простите как это посмотретть?

и что я должна там увидеть?
Mir
UNIт
 
Сообщения: 82
Зарегистрирован: 18 июн 2016, 19:44

Re: Как уменьшить объем игры

Сообщение Pollux 14 дек 2017, 23:02

1) Для каждого типа архитектуры (x86 и ARMv7) делайте отдельный билд;
Build Settings - Other settings - Device Filter

2) В графе Stripping Level установите Use micro mscorlib

3) Используйте упрощенную библиотеку:
Build Settings - Other settings - Api Compatibility Level - .NET 2.0 Subset

4) Правильно используйте текстуры/изображения (обычно главная причина большого размера apk):
- используйте текстуры POT(Power of two), т.е стороны картинки должны быть кратны степени двойки, например, 64x64, 512x256, 2048x512
Если это условие выполняется, то размер рассчитывается следующим образом (если не ошибаюсь), например картинка 512x256:
512 * 256 * 0.5 ~ 65kb

Если же картинка не POT, например 511x257, с глубиной 32bit (т.е 8 * 4 (каналы r, g, b, a)):
511 * 257 * 4 ~ 0.53mb


Для текстур без альфа канала можно использовать сжатие ETC (поддерживается всеми Android устройствами)
Если же использование не POT текстур невозможно, для них можно применять сжатие ASTC, хорошо сжимает "неправильные" текстуры, но поддерживается не всеми устройствами. Если устройство не поддерживает какой либо алгоритм сжатия то, насколько мне известно, текстура отображаться будет, но на её загрузку(обработку) устройству понадобится больше времени и оперативная память для одного изображения будет использована дважды, т.к будет происходить переконвертация.

Чтобы отследить что и сколько занимает места в apk билде, можно просмотреть лог: после построения билда перейдите на вкладку Console, справа вверху окна нажмите на маленькую стрелочку и выберите Open Editor Log.
Изображение
Там вы сможете просматривать подробную информацию о Вашем билде (не забывайте его очищать, чтобы легче потом было ориентироваться, если несколько раз билдить).
Аватара пользователя
Pollux
UNITрон
 
Сообщения: 276
Зарегистрирован: 01 сен 2016, 22:31

Re: Как уменьшить объем игры

Сообщение Msey 15 дек 2017, 10:33

Есть еще способ уменьшить вес скомпилированного проекта - отказаться от использования сишарповских юзингов, подключая только встроенные библиотеки unity.
Аватара пользователя
Msey
UNIт
 
Сообщения: 120
Зарегистрирован: 31 мар 2015, 20:09
Откуда: Moscow
  • Сайт

Re: Как уменьшить объем игры

Сообщение DbIMok 15 дек 2017, 15:37

после билда в окне Console в выпадающем меню на кнопке в правом верхнем углу выбрать Open Editor Log. в нем найти
Изображение
открыть получившийся apk в 7zip http://www.7-zip.org/download.html там будет примерно такая картинка
Изображение
ну и логи на http://pastebin.com скриншоты тоже куда-нибудь, ссылки на них сюда в тему
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Как уменьшить объем игры

Сообщение Mir 15 дек 2017, 18:27

А может объем зависет от количества префабов? у меня как раз все картинки это префабы и на них скрипты висят на каждом? или это никак не влияет?
Mir
UNIт
 
Сообщения: 82
Зарегистрирован: 18 июн 2016, 19:44

Re: Как уменьшить объем игры

Сообщение DbIMok 15 дек 2017, 21:41

префабы сами по себе места не занимают. если они лежат не в Resources, не используются в сценах, то и в билд не попадут. я могу наложить в папку проекта террабайты ассетов и иметь очень маленький билд. нельзя оптимизировать то, что нельзя измерить. либо вы выполняете рекомендации и все таки измеряете, что у вас много весит, либо можно долго "оптимизировать" наугад совсем не то, что нужно.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Как уменьшить объем игры

Сообщение Mir 16 дек 2017, 13:42

вот мой скриншот editor log

текстуры много весят. почему так(?

http://pastenow.ru/600cb4fe8eaeffd73a31733a7ca17a0d

я посмотрела в папке каждое изображение весит от 10 до 25 кб. а префабы 9,35 кб каждый

вот удалила половину 200 префабов и стало весить 61 мб билд.
значит в префабах дело???
и как быть тогда. почему они так влияют
Mir
UNIт
 
Сообщения: 82
Зарегистрирован: 18 июн 2016, 19:44

Re: Как уменьшить объем игры

Сообщение DbIMok 16 дек 2017, 22:10

дело не в префабах а в текстурах. если вам не нужна быстрая загрузка текстур, то можно переместить их в папку StreamingAssets и грузить через WWW https://docs.unity3d.com/Manual/StreamingAssets.html если такой вариант не подходит, нужно настроить импорт текстур https://docs.unity3d.com/Manual/class-T ... droid.html
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Как уменьшить объем игры

Сообщение Mir 17 дек 2017, 22:40

DbIMok писал(а):дело не в префабах а в текстурах. если вам не нужна быстрая загрузка текстур, то можно переместить их в папку StreamingAssets и грузить через WWW https://docs.unity3d.com/Manual/StreamingAssets.html если такой вариант не подходит, нужно настроить импорт текстур https://docs.unity3d.com/Manual/class-T ... droid.html



второй вариант помог спасибо) теперь 40 мб стало))))
только я удалила OpenGLEs2 и перестало открываться на моем устройстве не поддерживает. я не поняла заечм эт и что сжимает?

а если я сделаю 1024 вместо 2048 качество сильно нарушитяс для картинок?
Mir
UNIт
 
Сообщения: 82
Зарегистрирован: 18 июн 2016, 19:44

Re: Как уменьшить объем игры

Сообщение burovalex88 21 окт 2022, 12:57

Оптимальные правила: разрешение должно быть кратно 4 и стороны быть равными.
2340*1080 = 7.2 МБ - компрессия не работает
4096*4096 = 0.9 МБ - Compressed ETC2
2340*2340 = 0.46 МБ - Compressed ETC2

http://joxi.ru/Y2LGJL8hx3J7pm
http://joxi.ru/ZrJglWEIQJzMkm
http://joxi.ru/bmo74QBtO6v9qm
burovalex88
UNец
 
Сообщения: 3
Зарегистрирован: 21 окт 2022, 11:37


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 33