Предисловие: Мобильные устройства как игла в заднице, когда дело доходит до оптимизации… На слабых устройствах фпс падает на глазах при довольно малых нагрузках и красивую картинку получить сложно, но вполне реально. Данные советы рассчитаны на людей “создающих” ресурсы и не разжеваны в плане интеграции в Unity. Также большинство советов элементарные, но столкнувшись с командой, делающей потрясающие 3д модели и арт, но не работавшими с лоуполи и мобильными устройствами, осознал как сложно получить нужный результат. Все примеры и наблюдения я подаю “со своей колокольни”, отталкиваясь от личного опыта и кучи прочитанных статей. (ссылки я уже не вспомню но кто ищет тот найдет) На своем опыте, борясь за каждый фпс, я пришел к выводу, что начинать нужно с “корня”, то есть с ресурсов - ведь много фпс терялось именно из-за них. И простые, на первый взгляд, вещи часто упускаются, но дают о себе знать во время игры. И так начнем!
Сразу оговорюсь Изображения снятуты с гугла и нужны больше для оформления чем для информативности... 3D:
3д в играх давно стало обычным явлением на мобильных устройствах, но все еще накладывает ряд своих правил…
1.Топология ♦“Меньше полигонов - лучше!” Можно прочитать в любом примере по оптимизации, и так оно и есть, за исключением пары ситуаций.
♦Для оптимально сокращения количества “треугольников” нужно определить насколько они важны и создать LOD группы: чем ближе к камере тем больше можно позволить детализации, соответственно на дальних расстояниях можно сводить модель в сторону силуэта… Размеры экрана помогают визуально сгладить подобный подход, и на расстоянии лоуполи модель не отличить от хайполи, а порог количества объектов, при нормальном ФПС, увеличиться многократно.
♦Невидимые из камеры полигоны можно сразу исключить из модели. Это не повлияет на отображение но сэкономит полигоны, возможно, текстурное пространство, а также немного снизит вес модели. “Внутренние” полигоны и дублированные вершины тем более нужно убирать.
♦Нужно всегда следить за нормалями! Вывернутые нормали будут прозрачными в Unity, а шейдер на 2-сторонние текстуры тяжелый для подобных косяков, что значит нужно позаботиться об этом до импорта.
♦Небольшие модели из “запчастей” лучше объединить в один меш - это не особо влияет на производительность, но на время работы и количество возможных косяков с этой моделью в Unity.
♦Большие модели (на 2+ “экрана”) наоборот лучше разбить на несколько частей. Уменьшает время расчета отсечения невидимых вершин.
♦Особое внимание нужно уделить альфе в моделях. Для ПК версии игры можно использовать альфу для уменьшения полигонов, но мобильные устройства показали обратный эффект и несколько лишних полигонов дают лучшую производительность чем альфа текстура. Но только если можно обойтись несколькими полигонами(Волосы или траву лучше все таки сделать текстурой)
♦Также стоит соблюдать размерность моделей. Т.к масштабирование в Unity снижает ФПС из-за увеличения времени расчета финального изображения.
2.Текстуры ♦Текстуры весят много, сжимаются не всегда хорошо, грузятся медленно. Вывод: меньше текстуры лучше… но все не так!
♦Одна текстура 2048х2048рх(больше может вызвать сбои на многих устройствах), напрягает систему в разы меньше 32 текстур 64х64рх. Ведь система постоянно загружает\выгружает эти текстуры в зависимости от надобности. Поэтому, при возможности, развертки моделей которые отображаются “рядом” лучше объединять в атласы. Но нужно учитывать, что любая модель использующая атлас загрузит его в полном объеме, а значит лучше делить их на группы использования “в одном месте”.
♦При возможности, “запекать” свет, блики и нормали сразу в итоговую текстуру. Шейдеры для мобильных очень требовательны и лучше. без необходимости, не нагружать их. + свет, необходимый для отображения этих вещей, так же грузит систему…
3.Анимации ♦С анимациями все просто: -есть возможность проредить “ключи”?Делай! -у разных моделей одни анимации? Не дублируй!
2D(спрайты):
Спрайты, шрифты и текстуры используются во всех играх(не беру в расчет извращения на некоторых устройствах) Но особое внимание уделю именно спрайтам т.к бездумное использование оных стоит своих ФПС.
1.Атласы Тексту́рный а́тлас (англ. Texture atlas) — это изображение, содержащее набор (или «атлас») под-изображений, каждое из которых является текстурой для некоторого 2D или 3D объекта
Wikipedia
♦Спрайт в Unity - обычная текстура с UV координатами, а объединяя их в атласы, сокращается время на их обработку. При условии что спрайты используются более или менее одновременно на экране.
2.Сокращение текстуры ♦Спрайтовая анимация и элементы интерфейса занимают много текстурного места, что сказывается на весе приложения и скорости работы, а Unity дает множество инструментов для работы с графикой… значит воспользуемся вторым, чтобы сэкономить на первом!
♦В цикличных и “Ping pong” - образных анимациях все дубли “в топку”, при сборке в Unity используем то что есть - разницы не будет.
♦Обрезаем повторяющиеся участки в кадрах анимации: Если улитка моргает за 20 кадров и визуально меняются только глаза, то отрезаем “статическую” часть(раковину)от глаз и оставляем для нее 1 спрайт а для анимации оставляем покадрово глаза. Склеив это в движке, разницы заметно не будет но экономиться место (19 х размер раковины)
♦Для UI, есть возможность сохранить много места, разбивая его на составляющие. Таким образом можно сделать разные окна и элементы при минимуме затрат текстурного места.
♦Для большей экономии Можно некоторые прямоугольные объекты обрезать и сжимать, с последующим восстановлением нужных размеров инструментами Unity. Так подложка окна 1000х500рх займет всего +\-50х50рх в атласе, не потеряв качество. Но для подобного нужно продумывать дизайн элементов заранее, чтобы не получить криво растянутую картинку.
3.Маски и Полупрозрачность ♦Маски в Unity создают чрезмерную нагрузку(увеличивают кол-во Draw Calls) Поэтому нужно максимально снизить их одновременное количество при составлении дизайна.
♦Полупрозрачность дает о себе знать при многократном наложении. Особенно заметно на системах частиц.
P.S. ♦Со звуком пока еще ре разбирался, а разберусь дополню... ♦Если статья будет полезной, в следующей углублюсь больше в инструментарий Unity(Запекание света, UGUI, Материалы, Код и немного шейдеры) Более мощный компьютер глючит быстрее и точнее.
Сообщение отредактировал BrightSpot - Четверг, 15 Марта 2018, 02:04
не думай что все следят за твоими проектами и знают что ты делаешь и что тебе нужно... я, например, понял что ты делаешь карту про черепашек ниндзя и то только с последнего сообщения... Если нужен результат четко формулируй запросы Более мощный компьютер глючит быстрее и точнее.
вбей в гугл скачать "модели для варкрафта" и пользуйся тем что есть - базы огромные на некоторых сайта + может там на форумах и подскажут\помогут=) тут ,если и остались, те кто связывался с редактором уже давно все забыли=)) Я так точно уже не помню прог для импорта моделек в вариковский формат... Более мощный компьютер глючит быстрее и точнее.
игра ещё в разработке и не надо говорить что-то, не зная ничего
ЦитатаFatoShadow ()
Подробно описывать проект свой не хочу
Не зная ничего - обсуждаем то что есть... если это не то что ты ожидал, то зря выложил... ведь
ЦитатаFatoShadow ()
А это интернет.
ЦитатаFatoShadow ()
по крайней мере, я создаю что-то оригинальное, что-то своё, а не делаю ремейки, не создаю то, чего создали до меня, как делают это другие.
это довольно спорный вопрос - зуб даю что, разобрав твою идею\наработки можно каждую деталь отнести к "то, чего создали до меня" Время у нас такое
ЦитатаFatoShadow ()
Не отрицаю того факта, что некоторые анимации были взяты с интернета и немного изменены. Но некоторые анимации, а не все.
я смотрел видео и все, кроме одной, анимации я видел в бесплатном сборнике mixamo... (я много тестовых персонажей прогнал через эту систему и глаз наметан)
ЦитатаFatoShadow ()
Потому что игру я делаю 2 года и делаю её сам, мне никто не помогает. Помогают лишь с озвучкой, а это мелочи. Всем процессом занимаюсь я, начиная с написания сценария, композиции, дизайна уровней, персонажей и т.д. Так что не надо мне тут ля-ля.
во-первых тут форум, "кишит" одиночками и признания за это не будет... во-вторых за 2 года, даже в одинокую, должно быть что показать(наметки управления, боевая система, UI, бестиарий, идея, история мира или хоть что то) А видео показывает работу за неделю(месяц, при условии изучения 3д редактора с 0)
ЦитатаFatoShadow ()
просмотры мне в Ютуб не важны. Если бы мне нужны были бы просмотры, я бы срубил их с помощью пиара в Инстаграм
Прямо "По Фрейду" столько раз за одно сообщение "фраза" выплыла
ЦитатаFatoShadow ()
что делаю коммерческую игру, я намекал на то, что эта игра не будет игрой очередного школьника, который рисует в пеинте.
полный бред... коммерческая игра, как минимум значит попытка ее продать, а кто, как и на чем ее сделает - совсем другая тема.
ЦитатаFatoShadow ()
Целых 2 года я делаю эту игру, 2 года, Карл, 2 года
Хорошая выдержка... но "2 года, Карл, 2 года" и никаких, Карл, никаких результатов не видно! Более мощный компьютер глючит быстрее и точнее.
Посмотри в сторону модов для San Andreas - проще,чем с 0 игру писать... тем более есть примеры реализации подобных модов под некоторые города... но работы все равно много Более мощный компьютер глючит быстрее и точнее.
я писал:"за код не ручаюсь - не тестил"... мог и напартачить... если что, на работе соберу рабочий вариант и отпишусь
Добавлено (12 Марта 2018, 11:27) --------------------------------------------- вот варриант смешения спрайта с текстурой - альфу учитывает, но нужно соблюдать uv -коорды от спрайта...
Все верно. И это значит что во время исполнения сначала проходят все события (у всех объектов) начала шага потом обычный и конечный... (не помню точно, вроде разрыва в количестве итераций нету) таким образом можно разделить приоритет выполнения - например принимать события контроллера и делать действия в обычном шаге, а в конечном делать проверки на коллизии и править результат, таким образом все объекты успеют сделать что им нужно а проверка "затрет" несостыковки"... или можно вычитывать урон по мобам в степе, а удалять их в конечном степе, что бы не вышло ситуации,что юнит "умер", а персонаж еще наносит урон... Более мощный компьютер глючит быстрее и точнее.
придумать концепцию не сложно - сложно реализовать.
ЦитатаnoJIoTeH4uK ()
а продуманна эта идея потому что я понимаю какой оптимальный и выверенный геймплей в плане прокачки и квестов надо ввести в игру что бы это было всё играбельно без адового задротства, что б ммо рпг и для отдыха а не адовых задрот марафонов) хотя и такие адово задротные квесты будут где над пати собрать из 20 человек и пойти кого то сильного бить)
Это не продуманая идея, а одна из сторон гемплея... продуманная идея еще включает такие, банальные на первый взгляд, вещи как UI, Движение, взаимодействие со всем что есть в игре и еще много чего(точнее все что будет в игре). Более мощный компьютер глючит быстрее и точнее.
Кароч придумал как минимум две почти идеально продуманные концепции игр. одна железобетонная но полностью прописанная а вторая больше для души и даж если попытаться ее спереть то ничего не получится потому что это рпг в открытом мире и только я её вижу в мозгу как она должна выглядеть)
прямо гений ГД, но по сообщению не похоже... распиши детальный диз док со всем и вся и поймешь "зелезобетонность"...
ЦитатаnoJIoTeH4uK ()
кароч вопрос, если я опишу ее концепцию полностью и ее спи..ят я могу потом придьявить за кражу интелектуальной собственности?%)
Концепция - не есть готовый продукт... да и подшаманив над мелочами можно обойти ответственность
ЦитатаnoJIoTeH4uK ()
военную технику не разработчики придумали))))
вот таким образом концепции и уходят,если нужно=)
ЦитатаnoJIoTeH4uK ()
могу ли я тут найти спонсоров для создания игры?
Да, но захотят ли они дать тебе денег - нет! им нужен результат, и максимум, если идея реально стоящая, могут купить ее и забыть о тебе... дальше нечего коментировать=) Более мощный компьютер глючит быстрее и точнее.
В первом запуске в первой же игре появляется это сообщение, думаю прям обучение не стоит делать все же понятно интуитивно.
я тоже так думаю, но поработав на фирме - понимаешь насколько у всех "интуитивнопонятно" разное=) наверное сделаю слайд перед стартом со "стрелочками" и подсказками... Более мощный компьютер глючит быстрее и точнее.
Просто игра в 5 строчек кода и логикой в 3 слова, а расписал Вон Как=)) Смотрел скрины - неплохо выглядит Более мощный компьютер глючит быстрее и точнее.