Найти в Дзене

Создание и использование спрайт-шитов в Unity

Создание и использование спрайт-шитов в Unity https://medium.com/@gaetano.tonzuso/unity-create-and-implement-a-spritesheet-in-unity-034492fd1851 Статья что-то совсем на инди. Суть статьи сложно описать. Тезисно. Мы инди без дизайнера, у нас есть задача сделать гуй, мы находим спрайт шит в интернете, редактируем его в GIMP и InkSpace, и кидаем в юнити проект, а юнити само нарежет нам это на отдельные спрайты. Ну и типа определение, что такое SpriteSheet. Что это у нас соответственно текстура с кучей картинок на прозрачном фоне. Ну допустим. Но вообще конечно в 2025 у юнити есть много прикольных систем внутри. Если вспомниать древние времена, то все пользовались Texture Packer и без них. Но основной вопрос не что такое спрайтшит или текстурный атлас. А зачем они нужны? Я немного дополню для новичков, так как статья явно для них. В юнити всё меши. Гуй, спрайты в 2д играх и очевидно 3дшка. В сущности это всё 3д графика. С рендерером как у 3д графики и вот таким графическим конвейером. И

Создание и использование спрайт-шитов в Unity

https://medium.com/@gaetano.tonzuso/unity-create-and-implement-a-spritesheet-in-unity-034492fd1851

Статья что-то совсем на инди. Суть статьи сложно описать. Тезисно. Мы инди без дизайнера, у нас есть задача сделать гуй, мы находим спрайт шит в интернете, редактируем его в GIMP и InkSpace, и кидаем в юнити проект, а юнити само нарежет нам это на отдельные спрайты. Ну и типа определение, что такое SpriteSheet. Что это у нас соответственно текстура с кучей картинок на прозрачном фоне. Ну допустим.

Но вообще конечно в 2025 у юнити есть много прикольных систем внутри. Если вспомниать древние времена, то все пользовались Texture Packer и без них. Но основной вопрос не что такое спрайтшит или текстурный атлас. А зачем они нужны? Я немного дополню для новичков, так как статья явно для них.

В юнити всё меши. Гуй, спрайты в 2д играх и очевидно 3дшка. В сущности это всё 3д графика. С рендерером как у 3д графики и вот таким графическим конвейером. И вообще стандартно это так не только в Unity. Почти все 2д движки в конечном итоге под капотом работают с 3д. Простые движки 2д графику воспринимают как квады, а в Unity в случе гуя - это квады, в случае просто 2д графики - это меши для оптимизации альфа блендинга.

Так как у нас тот же графический конвейер и принципы, то и оптимизации у нас те же. А как мы оптимизируем 3д графику? Используем меньше текстур и материалов, меньше вертексных параметров, упрощаем геометрию. Если пункты 2 и 3 не применимы. То тот факт, что батчатся у нас меши только на которых висит один материал уже роль играет. И тут важны текстурные атласы. Чтобы на всех мешах наших был один материал с одной текстурой. (Помимо нюансов стоимости вызова самплинга текстуры)

Мы хотим всегда минимум дроуколлов. Если у нас весь гуй в одном текстурном алтасе с одним материалом (базовым), то он рисуется в один дроуколл. Собственно всё. И тут стоит дополнить, что да. По простому мы берем спрайтшит из интернета, используем спрайты из него и работает. Но вряд ли он упакован оптимально 🙂 Даже юнитевский паковщик SpriteAtlas пакует не лучшим образом (как я тестировал TexturePacker укладывать в ряде случаев умеет по плотнее) А судя даже по примеру из статьи, там "как дизайнер разложил" так и лежит.

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

#новости