Я изо всех сил пытаюсь понять основы пиксельной графики в Unity.
Я понимаю, что такое единица измерения, и что если я рисую свой спрайт с разрешением 16x16 пикселей, я должен установить PPU на 16.
Возьмите, например, долину звездной росы, на изображении ниже вы можете четко видеть, что игрок не квадратный. Создатель игры сказал, что он сделал все в 16x16, но тогда как же так много деталей в персонажах? Конечно, вы не соединяете несколько квадратов 16x16 вместе, чтобы сделать персонажа (как вы сделали бы с картой тайлов)?
Каков «общий» способ иметь дело с вещами, которые не квадратные, как символы на изображении. Вы просто делаете 16x32 спрайт и устанавливаете PPU на 16? Разве это не выглядит немного странно рядом со спрайтами 16x16? Вы обычно выбираете один размер (т.е. 16, 32, 64), а затем придерживаетесь этого для всего в игре?
Визуальная проблема, которую я видел, это то, что спрайт 32x32 выглядит очень неуместным (слишком острым) рядом со спрайтом 16x16.
Поэтому мне интересно, как вы смешиваете размеры без получения этого эффекта, когда одно изображение выглядит намного острее, чем другое. Если я, например, хотел, чтобы символ был 16x32, или любое не квадратное значение, когда мои плитки 16x16
источник
Ответы:
Подводя итог вышеприведенным пунктам, важно, чтобы два пиксельных элемента соответствовали друг другу, чтобы их плотность пикселей (текселей на единицу экрана / единицу мира) была одинаковой.
Используя в качестве примера некоторые спрайты из Stardew Valley, мы можем видеть, что, хотя спрайты имеют разные размеры текстуры, они совпадают по согласованной сетке, потому что каждый пиксель рисуется одинакового размера.
Если мы рассматриваем размер растения как одну плитку / одну единицу мирового пространства, мы можем видеть, что эта единица охватывает 16 пикселей по горизонтали и вертикали. Персонаж, имеющий удвоенную высоту растения, также покрывает вдвое больше плиток / мировых единиц, поэтому плотность пикселей остается неизменной - 16 пикселей на мировую единицу.
В частности, для Unity это предоставляется вам как параметр Pixels Per Unit в инспекторе настроек импорта Sprite . Пока вы используете одно последовательное число здесь для всех ваших спрайтов, Unity будет автоматически обрабатывать их рисование в нужном размере в вашем мире, чтобы сохранить плотность пикселей - даже если они нечетного размера, а не с степенью двойки или точной кратно вашему размеру плитки. Так что в этом примере и кустарник, и персонаж, и все остальное в игре будет использовать PPU OF 16.
Точное число, которое вы выбираете, не имеет большого значения, важнее всего последовательность. Если бы мы хотели, чтобы каждая ячейка охватывала 2 единицы мира, чтобы при редактировании уровней мы могли легко привязываться к углам плиток (нечетным числам) и центрам плиток (четным числам), мы бы использовали вместо этого PPU, равный 8, для всех наших спрайтов.
Только не опускай слишком низко. Вы увидите, что в некоторых статьях рекомендуется, чтобы значение PPU равнялось 1, что означает, что спрайт в 256 пикселей будет охватывать 256 мировых единиц. Хотя это может не звучать тревожно, такие системы, как физика, настроены, предполагая, что большая часть вашего игрового процесса будет происходить в масштабах от десятых до десятков единиц, а слишком большой масштаб может привести к их плохому поведению. Попробуйте выбрать количество пикселей, которые имеют смысл в вашем игровом процессе, например, ширину вашего персонажа или плитки. Это также облегчит вашу математику при программировании и дизайне уровней (например, «Я хочу, чтобы этот персонаж правильно разбил 3 плитки, вот и все
x + 3.0f
»)Обратите внимание, что масштабирование спрайта, изображения пользовательского интерфейса или его родительских элементов с использованием свойств преобразования приведет к их отклонению от этой постоянной плотности пикселей, поэтому будьте очень осторожны со свойствами масштаба и сохраняйте большую часть или всю свою сцену в масштабе 1,0 для простоты.
Еще одно предостережение: ничто из этого не определяет, насколько велики ваши спрайты на вашем экране. Это зависит от размера игрового окна / экрана и размера / угла обзора / угла обзора вашей камеры. Для 2D-идеального пикселя вам также необходимо убедиться, что высота вашего окна равна целому числу, кратному числу пикселей спрайта, которые видит ваша камера (ортографическая высота камеры x 2 x PPU)
источник