Как из пиксельарт игры сделать не пиксельарт игру
Это как нейросети, только без нейросетей. Дёшево и сердито.
Проблема
помимо игроков, которые считают, что "О, игра пиксель-арт, круто!" есть и те, кто считает "О, игра пиксель-арт, говно априори."
А у меня 90% игр как раз пиксель-артовые. Это не плохо, но обидно, что кто-то не сыграет в игру только из-за этой ерунды. Хочу попытаться это исправить.
Решение
Никакого секрета фирмы нету, все методы известны очень давно.
Быстро апскейлнутое пиксельартом не считается.
Достаточно открыть любой старенький консольный эмулятор и посмотреть на доступные фильтры.
До недавнего времени я не задавался вопросом почему то что есть там не может быть в настройках моей игры. А задался я им после того как увидел в ленте своего заблокированного на территории РФ твиттера пару интересных штук от Daniel Linsen, он же managore. Довольно известный индюк по участиям в Ludum Dare.
Честно говоря, я ни разу такого в пиксель-арт играх не встречал, чтобы в настройках были такие фильтры. Неужели авторы всегда считают, что пиксельарт настолько прекрасен сам по себе, что апскейлить его бессмысленно? Отвечу на этот вопрос чуть позже.
Сперва разберёмся с тем, как вытащить фильтры из эмулятора и вставить в игру. Ответ: ничего вытаскивать не нужно, все алгоритмы известны и опубликованы в свободный доступ. Это, конечно хорошо, но ведь тогда придётся переписывать рендер?
Зачем это делать yourself, когда это может accomplish-нуть motherfucking шейдер?
Да, вставляется это всё при помощи не сильно сложного пиксельного шейдера. Я решил бахнуть самый топовый из простых - xBR. Подробнее про эволюцию алгоритмов пиксельного апскейла можно читнуть на википедии.
Ссылка на опенсорсный проект на языке GLSL:
Именно этот шейдер я использовал, адаптировав для Game Maker, т.е. выпилив всё лишнее.
Но есть нюансы
Можно было бы не заморачиваться и просто включить бикубическую интерполяцию, но проблема в том, что картинка тогда превращается в мыло, а хочется иметь у объектов чёткие края. И это условие выполнимо, но только за счёт исходных данных - ограниченная палитра. Позже наглядно будет видно. И второй момент - это кратность масштаба, т.е. x2, x3, x4 и т.д. При дробных масштабах работать нормально не будет.
После первых удачных экспериментов я решил попробовать на других своих пиксельарт проектах как законченных, так и замороженных. Делюсь результатами:
Последние два, или даже три теста как раз из серии неудачных. Как мне кажется, это из-за сильно разросшейся цветовой палитры. В танчиках из-за сильной детализации эффект незаметен, т.к. фильтр xBR направлен на сохранение деталей. А в последнем варианте сильно много цветового шума, который просто размазывается.
Так что да, отвечая на вопрос выше: в некоторых случаях пиксельарт прекрасен сам по себе настолько, что улучшайзеры лучше его не сделают =)
А в некоторых случаях, при соблюдений условий, это даёт довольно интересный эффект. Это конечно не полная прокачка графена, но играешь уже явно не в пиксельарт.
Голосуем и обсуждаем, господа!
Многие из вышеперечисленных проектов не сделаны только потому что вместо того чтобы их делать я несколько лет подряд занят поиском стабильного дохода.
В ваших силах исправить ситуацию и поддержать моё творчество:
- Моя группа VK - почти ежедневный девлог по геймдеву + релизы
- Моя страница Бусти - для поддержки + отчёты
Буду рад любым формам поддержки - от финансовой до репостов =)
Комментарий недоступен
Комментарий недоступен
CRT-шейдеры тогда уж для пиксель-арта надо. Чтобы как на ЭЛТ мониторах было.
Ну не было тогда таких подушкообразных искажений, если только моник не настраивать надо было. А я начинал с черно-белого советского монитора дюймов на 12.
тут не надо путать мониторы и телевизоры - пк игры и консольные игры
тут стоит указать на размытие шрифта.
Без этого уточнения не ясно в чём фишка "сеточки".
Стопэ, 28-е свидание Лины!??