Моя первая проблема при создании 2D игры в Unreal Engine 4

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

Да, я прекрасно понимаю что Unreal Engine 4 не самый лучший выбор для создания 2D игры но из-за наличия Blueprints я решил выбрать его.

И так проблемы у меня начались практически сразу, как бы это смешно не звучало. Для создания пиксельных спрайтов я использую дешевую но достаточно хорошую программу Aseprite.

Советую ее всем кто хочет рисовать в пиксель арте.
Советую ее всем кто хочет рисовать в пиксель арте.

И для создания спрайта я использовал режим цвета "оттенки серого" что в полне логично так как игру я хочу сделать черно белую.

В этом и была моя ошибка
В этом и была моя ошибка

Все было хорошо пока я не залил PNG файл в Unreal Engine 4 и тут понеслась. Видите ли в чем заключалась проблема в том, что при создании спрайта выделялся не треугольник "это прототип корабля" а вся размерная область которая должна была быть пустой она становилась черной и спрайт выглядел как черный квадрат в центре которого был белый треугольник.

Так выглядит правильный спрайт
Так выглядит правильный спрайт
А так выглядел у меня
А так выглядел у меня

В самом Unreal Engine 4 я пытался менять Compression Settings но не чего не выходило.

Выходило только хуже а квадрат все не исчезал
Выходило только хуже а квадрат все не исчезал

В итоге я понял что при рисовании спрайта в Aseprite надо было выбрать режим цвета RGBA так как он имеет 32 бита на пиксель, а оттенки серого 16 бита на пиксель. Честно скажу не знаю то ли движок не поддерживает такое то ли еще что то, но в итоге я смог решить эту проблему и спрайт стал отображаться как надо.

То что нужно
То что нужно
​ Вот пример как выглядят спрайты в самой сцене
​ Вот пример как выглядят спрайты в самой сцене

На последок скажу что если вы будете рисовать спрайты через другие программы такие как Photoshop то таких проблем у вас не должно возникнуть но если есть то проверяйте режимы цвета (если он есть в photoshop =D и тому подобные вещи) Ну а если делайте как я через Aseprite то выбирайте RGBA режим.

RGBA наше все
RGBA наше все

P.S. Интересно то что если в режиме серых оттенков нарисовать черный треугольник а не белый, то спрайт вообще не будет отображаться.

1717
31 комментарий

Почитай, что такое альфа-канал и зачем он нужен. УЕ4 прекрасно знает, что это такое и как с этим работать. А глубина цветопередачи в 16 или 32 бита здесь значения не имеет.

10
Ответить

Почитаем, для этого и написал статью чтоб поделится проблемами и узнать что то новое от знающих людей.

3
Ответить

Любопытно, почему для пиксельной черно-белой игры выбрали UE, а не GMS или Godot?

2
Ответить

Ну если честно по двум причинам 1) сразу разобраться в UE4 на будущее 
2) узнать хотя бы основы программирования, через Blueprints это в разы проще делать чем изучать с нуля C++ или C#

1
Ответить

Сейчас это вроде как модно, делать 2d игры на 3d движке. Типа псевдо 2d графика получается, но можно всяких примочек прикрутить

Ответить

И никогда не используй PNG в UE4. 

Используй TGA 24 бит если нет альфы, и 32 бит если с альфой.

2
Ответить

А что с PNG не так, можно вкратце?)

Ответить