Как стать автором
Обновить

Комментарии 14

Мне интересно кто такой технический продюсер. А то гугл что-то невнятное на эту тему пишет.

Да это скорее я себя так обозвал. Можно почитать в целом на сайте у меня https://noxatra.ru/

А так, если коротко. Аля как продюсер в кино, только в диджитал проектах. Нахожу проект, составляю бюджет, подбираю команду, руковожу процессом производства и так далее.

что-то мне думается, что вы не правы насчет того, что если анимации лежат по разным fbx, то это увеличит размер билда. Не fbx ведь в билд попадает, а импортированные Юнити и конвертированные бинарные данные из него - отдельно меши и анимации, в зависимости от того что вы используете в сценах/префабах. Из FBX с анимацией в билд попадут только анимационные клипы, на которые будет ссылаться ваш Animator/Animation.

Ну в целом да. Я перепроверил сейчас. И судя по вот этому.

В билд идёт только анимация. Но есть исключение, которое я добавлю. Если оно лежит в ресурсах. Просто бывает такое, что fbx кладётся в ресурсы. Чтобы загружать модель по пути, а не по ссылке. И нужно дописать, что это конкретно про этот кейс.

Вообще, в контексте "Размера билда Юнити", хотелось увидеть что-то более неожиданное, как например уменьшение размера даже пустого билда, путем пересмотра содержимого PackageManager, или еще каких-нибудь грязных трюков :)

Не, я на старте заявил, что тут разбираются инструменты именно Unity. А там мало неожиданного. Просто остальное очень контекстуально. Возьмём палитры. Допустим у нас 8-ми битная игра. Но допустим большая часть компрессий не позволяет настраивать в Unity битность текстуры. Поэтому получается если у нас текстуры 32 бита, а при этом 8 бит на цвет, то в одной текстуре мы можем хранить 4 текстуры. И можно написать инструмент. Но применимо это только для 8-ми битных игр.

Причём очевидно что лучше не использовать JPEG подобные алгоритмы сжатия, так как по принципу работы JPEG там будут весьма специфичные артефакты. Так как цветовая информация в JPEG ужимается. А без изменений остаётся грейскейл. И так далее.

билд должен весить не больше 100 мб для скачивания по мобильной сети на IOS

Нет же. Ещё в 2017 повысили. А сейчас наверно ещё выше лимит.

Ща исправлю. 200МБ, если в настройки не лезть телефона. С аойс 13 можно поставить что любой размер будет качаться.


Strip Enigne Code — High

Strip Enigne Code это чекбокс. High это про Managed Stripping Level

нет ничего особо интересного в плане настроек или не такое сильное влияние на вес билда

шейдеры на скриншоте по размеру в 10-ке. в Stripping scriptable shader variants утверждают, что эта операция уменьшила "вес" шейдеров в билде примерчика с 511 до 151 МБ

Спасибо за статью, мои 6 копеек в копилку:

  1. Правильные настройки качества и сжатия звуков довольно важный аспект оптимизации проекта в котором планируется богатое звуковое сопровождение. В таких проектах это один из тех пунктов оптимизации, что следует учитывать на уровне процессов, например организовав шаблонные настройки сжатия для звуков разного типа (музыка, sfx, речь и т.п.). Это поможет не только снизить вес билда, но и поспособствует более рациональному использованию ресурсов CPU, I/O и RAM в рантайме. Есть неплохая статья с разумными выводами относительно настроек импорта звуков.

  2. Существенно снизить объем билда можно срезав неиспользуемые варианты шейдеров, особенно когда вам заранее известен спектр железа под которым будет работать проект. Выше есть комментарий на эту тему со ссылкой на соответствующий пост в блоге Unity.

  3. А ещё есть настройка алгоритма сжатия билда: Compression Method, прямо в Build Settings. На некоторых проектах и платформах выбор правильного алгоритма сжатия может снизить вес крайне существенно ценой увеличения времени запуска и чтения упакованных ресурсов (порой совсем незначительного).

  4. Часто в Sprite Atlas'ах оказываются неиспользуемые текстуры бесполезно раздувая их размеры и количество, за этим стоит поглядывать.

  5. Стоит упомянуть классику с неверным использованием папок Resources, когда в них лежат ассеты, не подгружаемые в рантайме через Resources.* API. Это касается и вложенных папок.

  6. Для анализа Build Report у Unity есть пакет Build Report Inspector, с ним может быть поудобнее.

Да, спасибо. Отличное дополнение :)

Я мало с жирными в плане звука проектами работал. Ну и по остальным пунктам согласен.

немного не по теме статьи, но папку Resources лучше не использовать вообще. Мало того, что оно плохо контролируема, и туда вероятно попадает много лишнего, так и при большом количестве файлов замедляется запуск приложения, из-за индексации всего содержимого. После появления Addressables стало намного проще организовывать локально подгружаемые ресурсы, и к тому же в любой момент можно все перенести на CDN без переработки кода. В конце концов, можно и бандлами ограничиться, если захочется чуть производительности сэкономить и отказаться от Addressables

Да, это атавизм давних времён, но на удивление всё ещё часто встречается в различных проектах студий от мала до велика, причём не только в легаси контексте. А ещё иногда это всё-таки удобнее чем Addressables или бандлы, например при использовании внутри пакетов - не тянет лишних зависимостей и полностью инкапсулировано.

В общем случае с вами согласен - если есть возможность отказаться от использования Resources - лучше так и поступить.

По Build Report есть еще в сторе Build Report Tool платный, удобная вещь.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории