Вопрос или проблема
У меня есть приложение, которое работает только с пользовательским интерфейсом (WidgetsBlueprints) на Unreal Engine 4.27, и когда я собираю и устанавливаю APK на несколько устройств, пользовательский интерфейс выглядит очень пиксельным, с низким разрешением. Моему приложению нужно работать только на конкретном устройстве с Android 11 (подобно Android TV) и 4K UHD экраном. Я уже пытался изменить кривую DPI (установить все разрешения на масштаб 1 или 2, правило масштабирования, и т.д.), а также использовать команду r.SetRes 3840x2160f в консольных командах в начале приложения, но когда я это делаю, разрешение кажется нормальным, но видна только нижняя правая часть пользовательского интерфейса. Вот изображение того, как выглядит стартовая страница приложения без консольной команды (с плохим разрешением интерфейса) и с консольной командой:
изображение с низким разрешением интерфейса
изображение, когда я нажимаю на эту верхнюю левую кнопку, чтобы изменить на 4K разрешение (для теста) и запускаю команду r.SetRes 3840x2160f в консоли. Кривая DPI установлена по умолчанию, иначе у меня даже больше внешних частей моего пользовательского интерфейса на экране.
Также я провел множество тестов с высокими настройками сжатия, но ничего не изменяет низкое разрешение. Мои исходные текстуры имеют хорошее разрешение, когда я запускаю в редакторе, в мобильном предварительном просмотре в Unreal, все выглядит хорошо, только после сборки это происходит. Вот другие изображения того, что, как я думаю, может быть важно, например, настройки конфигурации текстур и другие настройки проекта:
Настройки конфигурации всех моих текстур (также пытался изменить сжатие на UserInterface2D, но это ничего не меняет в отношении низкого разрешения, и делает APK больше, чего я не хочу, уже есть 700 МБ из-за количества текстур)
Некоторые общие настройки проекта Android, SDK и NDK
И настройки пользовательского интерфейса с моей кривой DPI, разрешение 1080 является стандартным и проецируется на UMG, а 2160 установлено на масштаб 2 в кривой. Также аспект разрешения, когда пользовательский интерфейс корректен на экране, выглядит хуже, чем разрешение fullHD (1920×1080).
У кого-то была похожая проблема или кто-то знает, как на это ответить? Что я упускаю? Пожалуйста, кто-нибудь, помогите мне с этим! Две недели мучений с этим и никаких решений!
Ответ или решение
Возможные причины пикселизации пользовательского интерфейса в Unreal Engine 4.27 на Android
Ваше беспокойство относительно пикселизации пользовательского интерфейса в мобильном приложении на Unreal Engine 4.27 вполне обосновано, особенно учитывая специфические требования платформы и устройства. Давайте разберемся в возможных причинах проблемы и методах ее решения, структурируя ответы в соответствии с FOREST (Factual, Opinion, Relatable, Emotional, Story).
Фактические данные
-
Проблемы с разрешением:
- Если ваш пользовательский интерфейс выглядит пикселизированным на устройстве с разрешением 4K, это может быть связано с неправильной настройкой масштабирования и разрешения в проекте. Убедитесь, что все элементы UI настроены на использование высококачественных текстур и соответствующей DPI.
-
Настройки DPI:
- Вы уже упомянули о настройке кривой DPI. Проверьте, чтобы для 2160p была установлена правильная шкала (например, 2), и убедитесь, что это отражается на всех элементах интерфейса.
-
Конфигурирование текстур:
- Текстуры должны иметь соответствующий формат и настройки сжатия. Попробуйте изменить настройки сжатия на UserInterface2D для всех текстур интерфейса, чтобы избежать нежелательной потери качества. Также убедитесь, что текстуры имеют достаточное разрешение.
Мнение эксперта
Сложности с пикселизацией UI могут быть вызваны определёнными настройками в Unreal Engine. Часто разработчики пропускают условиях конфигурации графических настроек под Android. Теоретически, даже при высоком разрешении, приложение может масштабироваться неправильно, что приводит к качеству, как у 1080p на 4K экране.
Применимость
Если ваша аппликация должна работать только на одном конкретном устройстве с Android 11, это открывает дополнительные возможности. На вашем высококачественном устройстве, таком как Android TV с 4K UHD экраном, убедитесь, что заданы правильные параметры запуска и графические настройки в проекте Unreal Engine.
Эмоциональная составляющая
Понимаю, как разочаровывающе может быть это испытание, особенно после двух недель безуспешных попыток. Потраченное время на неработающие решения может быть подавляющим. Однако, следуйте плану и методично исключайте возможные источники проблемы, чтобы в конечном итоге достичь желаемого результата.
История и рекомендации
Во время работы над проектами на UE4 многие разработчики сталкиваются с аналогичными проблемами. Например, один из разработчиков столкнулся с аналогичной проблемой с пикселизацией интерфейса, но решение состояло в изменении метода наложения текстур и в использовании системы Autoscale в настройках UI. Попробуйте применить эти рекомендации для вашего проекта:
- Проверьте и пересмотрите настройки памяти графики и качество текстур.
- Убедитесь, что при тестировании на мобильных устройствах вы используете правильный конфигурационный файл, который поддерживает 4K.
- Проверьте, не создаёт ли сам движок определённые ограничения на графику при сборке APK.
Ваш опыт — это путешествие, и с правильным подходом вы сможете преодолеть эти трудности. Если после всех вышеуказанных рекомендаций проблема не исчезнет, рекомендуется обратиться к сообществу разработчиков Unreal Engine или технической поддержке, ведь совместными усилиями возможно найти решение.