Как спрайту установить фиксированный размер?

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Как спрайту установить фиксированный размер?

Сообщение GuroMan 26 апр 2019, 13:28

Вообщем сейчас создаем 2д игру, где основной упор сделан именно на пиксельный стиль, где все спрайты состоят из четко выраженных пикселей. Для спрайтов используем полотно 64х64. После размещения в игровой сцене производим их скалирование к примеру на 4 и в итоге получаем то что хотели бы видеть. Можно бы порадоваться, если бы не одно НО. Вся соль в том что в самой игре (когда уже билд собран и скомпелирован) при разных разрешениях вся игровая сцена масштабируется подстраиваясь под разрешение экрана, рабочего окна и в результате все спрайты так же сжимаются или растягиваются, что приводит к потери того стиля который мы хотим добиться. Особенно сильно это наблюдается при анимации мелких деталей, где движения минимальны.

Собственно сейчас ищем решение этой проблемы. Вариант который я вижу, это найти способ так чтобы спрайты имели фиксированный размер относительно игровой камеры и не масштабировались от нее. Да тогда получится что на разных разрешениях будут видны разные области игровой сцены, но это лучше нежели чем то что происходит сейчас.

Возможно есть другой способ решения, вот ради этого и создаю тему. Очень надеюсь что получится добиться того что нам надо.
GuroMan
UNец
 
Сообщения: 29
Зарегистрирован: 07 апр 2016, 11:37

Re: Как спрайту установить фиксированный размер?

Сообщение NAGIBATOR228pacan 26 апр 2019, 15:07

Сомнительная затея, а если вашу игру запустить на 4к монике или даже телефоне, то ваш персонаж микробом будет, либо на лоуразрешнниях будет гигантом, растягивать придется в любом случае, просто это надо делать нормально, позиции при движении надо округлять чтобы было попиксельно ровне движение итд, это все та ещё дичь, создать пиесельную игру не так просто как кажется на первый взгляд
NAGIBATOR228pacan
UNITрон
 
Сообщения: 318
Зарегистрирован: 15 мар 2017, 20:39

Re: Как спрайту установить фиксированный размер?

Сообщение GuroMan 26 апр 2019, 15:36

NAGIBATOR228pacan писал(а):Сомнительная затея, а если вашу игру запустить на 4к монике или даже телефоне, то ваш персонаж микробом будет, либо на лоуразрешнниях будет гигантом, растягивать придется в любом случае, просто это надо делать нормально, позиции при движении надо округлять чтобы было попиксельно ровне движение итд, это все та ещё дичь, создать пиесельную игру не так просто как кажется на первый взгляд


Как вариант заранее создать разные уровни скалирования под разные диапазоны разрешений это решит проблему крайностей размеров для конечного пользователя. Вообще можно оставить и так, но все равно хочется добиться результата когда спрайты будут иметь истинный размеры и не будут каким либо образом деформироваться от разрешения камеры и и экрана соответственно.

Возможно есть другие способы, но пока я ничего лучше не придумал.
GuroMan
UNец
 
Сообщения: 29
Зарегистрирован: 07 апр 2016, 11:37

Re: Как спрайту установить фиксированный размер?

Сообщение NAGIBATOR228pacan 26 апр 2019, 15:44

GuroMan писал(а):
NAGIBATOR228pacan писал(а):Сомнительная затея, а если вашу игру запустить на 4к монике или даже телефоне, то ваш персонаж микробом будет, либо на лоуразрешнниях будет гигантом, растягивать придется в любом случае, просто это надо делать нормально, позиции при движении надо округлять чтобы было попиксельно ровне движение итд, это все та ещё дичь, создать пиесельную игру не так просто как кажется на первый взгляд


Как вариант заранее создать разные уровни скалирования под разные диапазоны разрешений это решит проблему крайностей размеров для конечного пользователя. Вообще можно оставить и так, но все равно хочется добиться результата когда спрайты будут иметь истинный размеры и не будут каким либо образом деформироваться от разрешения камеры и и экрана соответственно.

Возможно есть другие способы, но пока я ничего лучше не придумал.

Как по мне и нормально скалирование тоже нормальное, у вас могут быть проблемы с движением, потому что оно не округляется и пиксели из-за этого дребежжат
NAGIBATOR228pacan
UNITрон
 
Сообщения: 318
Зарегистрирован: 15 мар 2017, 20:39

Re: Как спрайту установить фиксированный размер?

Сообщение Saltant 26 апр 2019, 15:45

GuroMan писал(а):хочется добиться результата когда спрайты будут иметь истинный размеры и не будут каким либо образом деформироваться от разрешения камеры и и экрана соответственно.

Это глупая затея, если это мобильная игра, то многие сейчас играют через компьютер, например через BlueStacks и там разрешение монитора будет, все твои пиксели разъедутся. Юнити нормально сама всё скалирует в зависимости от размера экрана телефона/планшета/компьютера.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Как спрайту установить фиксированный размер?

Сообщение GuroMan 26 апр 2019, 16:49

NAGIBATOR228pacan писал(а):
GuroMan писал(а):
NAGIBATOR228pacan писал(а):Сомнительная затея, а если вашу игру запустить на 4к монике или даже телефоне, то ваш персонаж микробом будет, либо на лоуразрешнниях будет гигантом, растягивать придется в любом случае, просто это надо делать нормально, позиции при движении надо округлять чтобы было попиксельно ровне движение итд, это все та ещё дичь, создать пиесельную игру не так просто как кажется на первый взгляд


Как вариант заранее создать разные уровни скалирования под разные диапазоны разрешений это решит проблему крайностей размеров для конечного пользователя. Вообще можно оставить и так, но все равно хочется добиться результата когда спрайты будут иметь истинный размеры и не будут каким либо образом деформироваться от разрешения камеры и и экрана соответственно.

Возможно есть другие способы, но пока я ничего лучше не придумал.

Как по мне и нормально скалирование тоже нормальное, у вас могут быть проблемы с движением, потому что оно не округляется и пиксели из-за этого дребежжат


Ну не то что бы дребезжат, но вот к примеру анимация создана строго по пиксельно, а в игре уже та же анимация отскалирована к примеру в 4 раза проигрывается уже с искажениями, в одном месте пиксель разъехался шире чем надо, в другом месте сжался сильнее чем надо. И если как вы говорите не округляется, то как это можно сделать так чтобы округлялось правильно?
Вот быстро накидал что получается и от чего хочется избавиться:
Изображение
тут постарался показать кадры анимации взгляда. Рисовалось все по пиксельно, а после увеличено в 4 раза, т.е. теперь 1 пиксель это куб из 4х пикселей. Анимация состоит из 3 кадров. Но вот в игре когда проигрывается эта анимация то по какой то причине в данном случае глаза вместо того чтобы сохранить свои пропорции и отобразиться как было задумано, они могут разъехаться и в результате теряется исходный стиль. Вот с этим я пытаюсь бороться. Т.е. получается что из-за того что игровая сцена масштабируется под камеру, а та в свою очередь под разрешение экрана, окна происходит не совсем корректное отображение нужных спрайтов.
GuroMan
UNец
 
Сообщения: 29
Зарегистрирован: 07 апр 2016, 11:37

Re: Как спрайту установить фиксированный размер?

Сообщение NAGIBATOR228pacan 26 апр 2019, 16:56

Странная дичь, попробуйте офнуть все компрессии и сжатия у спрайтов
NAGIBATOR228pacan
UNITрон
 
Сообщения: 318
Зарегистрирован: 15 мар 2017, 20:39

Re: Как спрайту установить фиксированный размер?

Сообщение GuroMan 26 апр 2019, 17:55

NAGIBATOR228pacan писал(а):Странная дичь, попробуйте офнуть все компрессии и сжатия у спрайтов

та вроде вообще все отключено. Но вот если я меняю размер самой камеры, то так же меняется результат отображения сцены, отсюда я сделал вывод что именно из-за камеры все и происходит, т.к. она масштабирует саму сцену :( И первое решение сделать так чтобы объекты не подстраивались под камеру. В общем я хз как это исправить, подожду может кто сталкивался и смог найти решение.
https://cdn.discordapp.com/attachments/515163522234318852/571347543179657227/unknown.png
GuroMan
UNец
 
Сообщения: 29
Зарегистрирован: 07 апр 2016, 11:37


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: GoGo.Ru [Bot], Google [Bot] и гости: 17