Unreal Engine 4 Оптимизация проекта под мобильные устройства

preview_player
Показать описание
#UE4 #UnrealEngine4 #оптимизация #blueprint #смартфон #урок
В этом уроке я покажу способы оптимизации вашего проекта на Unreal Engine 4 под мобильные устройства

Рекомендации по теме
Комментарии
Автор

0:51 - Спрайты
4:34 - Звук
5:31 - Bluprint
7:33 - Камера
8:24 - Портретный режим
11:23 - Профайлинг
12:33 - Виртуальный джойстик
14:00 - Прямой запуск на смартфоне из движка
15:24 - Дополнительные настройки (Важно)
16:00 - Адаптированный интерфейс
17:12 - Project Settings

cyberstars-
Автор

Реально очень крутой и полезный ролик, еще и тайминги в комментах есть, вообще класс

artash
Автор

Глянул видео. К сожалению, автор забыл добавить множество вещей. Добавлю от себя:
(если какие-то понятия не известны, гуглите, в коммент все не поместится)

Первое, актуально для 3D и 2D игр. Отключение MobileHDR в ProjectSettings->Rendering дает огромный буст производительности в замен на возможность использовать постобработку, динамические тени и ещё некоторые вещи, которые, впрочем, в мобилках нужны не часто или они слишком дорогие. На большом парке девайсов замечается прирост в 15-30fps.
Так же в ProjectSettings->Rendering стоит отключить и другие возможности, которые вам не нужны. В 2D играх вообще можно повырубать почти все.

Используйте Foliage или Инстанс меши. Таким образом можно поставить много одинаковой геометрии в один DrawCall, при этом ничего не мерджить и иметь возможность двигать все по отдельности. Тем не менее, мердж тоже хорошая практика, когда нужно объеденить разные меши в один кусок. Однако не стоит забывать о каллинге геометрии (которая не рендерится, когда не видно). Если вы объедините слишком большой кусок, то даже если кусок немного залезит на экран, он будет рендерится целиком и будет хуже. Лучше объединять близкостоящие меши, которые часто будут на экране вместе.

Используйте LOD'ы геометрии, что бы урезать геометрию моделей в далеке. Актуально для 3D игр.

Используйте как можно меньше материалов и текстур на сцене и в кадре. DrawCall меша с материалом, который уже отрендерился, будет стоить дешевле. Если у вас очень много материалов, то велика вероятность, что вы потратите кучу времени процессора на обновление шейдера и передачу этого добра в рендеринг. Чем меньше материалов, тем дешевле рендеринг. Если простыми словами, то два меша с разными материалами рендерятся дольше, чем два меша с одним материалом.

Миф: Инстанс материалы дешевле обычного материала. Это неправда. Инстанс материалы не дешевле. Они экономят разве что немного памяти. На деле это просто инструмент для работы, который, все же, рекомендуется использовать ради удобства.

Зачем урезать лишнюю геометрию на спрайтах в начале видео? Для уменьшения так называемого Overdraw (Когда на один пиксель рендерится несколько объектов, особенно проявляется с прозрачными и Masked материалами). Обрезание на прозрачных материалах смысла не имеет, только на Masked, так как непрозрачная часть материала не рендерит пиксели позади, Overdraw не происходит. Особенно актуально на мобилках, но для ПК рекомендуется делать тоже самое на растительности.

Лучше не уменьшать частоту тиков, вместо этого воспользоваться таймером, а тик вообще выключить. Это удобнее и гибче в будущем с точки зрения рефакторинга и масштабирования вашего кода. Более того добавлю, что лучше заменять таймером технические вещи (проверки и прочее). Их нет смысла делать каждый кадр. А вот визуалку можно повесить на каждый кадр, если это нужно.

Распихивание кода в функции ничего не дает с точки зрения оптимизации. Это лишь удобство и качество вашего кода.
Автор говорит "старайтесь больше использовать кастом эвенты". Лучше наоборот использовать как можно меньше этих эвентов и делать функции. Графы будут чище и организованнее.
Но, возможно, автор хотел сказать об Event-Driven подходе, вместо тика. Если вкратце, это когда вы не ставите на тик проверки и действия, вместо этого работаете с делегатами и вызываете логику и проверки только тогда, когда что-то произошло (например не проверяете на тик, нажата ли кнопка мыши, вместо этого делаете действие по сигналу нажатия).

По поводу нативизации, то рекомендуется нативизировать только блупринты с большим количеством сложной логики. Нативизация простеньких блупринтов может сделать только хуже.

Flakky
Автор

Дякую!! БЕЗцінний метеріал в безплатному доступі

Vittorio
Автор

ПОдскажи, если к примеру есть ассет..blueprint который выполняет постобработку, причем множество вариантов, а мне нужен только один, при запаковке он не будет подтягивать весь ассет вместе со всеми возможностями? Или мне нужно обрезать соединения в блупринте чтобы он ничего не умел кроме как того что мне нужно?

flynsxcool
Автор

Привет, шерстил, искал но как то не смог ничем заполнить пустоты в голове) какие то конкретные стандарты по кол-ву полигонов существуют? Для мобильных игр. Где я могу самостоятельно найти актуальные сведения?

wwndquc
Автор

Отличный урок, спасибо! Один вопрос, по поводу масштабирования интерфейса (17-18). Можно ведь вместо настроек ключей, как в этом видео, просто потратить больше времени в UMG редакторе на создание адаптивного интерфейса? Просто режет глаз масштабирование " ступенями". Или эти настройки тоже придется применять?

andrejermolenko
Автор

А сделай оптимизацыю игр на пк видео урок

kirillgamer
Автор

Будет ли полезен атлас спрайтов для UMG ?

jeick
Автор

Раскажи теперь все тоже самое но про 3D игры
У меня какого то хрена пустой проэкт на андроид весит 60 мб

pfg
Автор

А как создавать в игры от третьего лица катсцены

slava
Автор

извинюсь за возможно тупой вопрос, но как (и можно ли) на ue4 сделать игру по вертикали смартфона? Допустим я хочу создать 3d арканойд.

TheS
Автор

Бро, знаешь как сделать отладку игры на андроид через USB или хоть как ещё, но без загрузки в google console.

ElChampi
Автор

Подскажите, пожалуйста, что делать, если в самом движке лаунч не видит устройство, но на компьютере оно отображается ?

mterlee
Автор

Всем привет! Кто подскажет при оптимизации пишет вот такую ошибку Keystore file is missing. Check the DistributionSettings section in the Android tab of Project Settings. Но ключ создал и прописал!

wfycwru
Автор

Хотел спросить как настроить свой проект под дисплей с разным соотношениям сторон ну к примеру по умолчанию игра настроена на соотношения сторон 16:9, а большинство смартфонов который сейчас выходят на рынок, имеют соотношения сторон (18:9; 19, 5:9; 20:9 ну и.т.д...) и на этих смартфонах игра будет запускаться также с соотношения сторон 16:9 оставляя чёрный рамки по краям может кто, знает как эта исправить ?

zagr