Войти
UE4 CommunityФорум

Sprite to texture (inventory system)?

#0
19:32, 16 ноя. 2019

Всем привет! Подскажите, есть ли какой-нибудь вменяемый способ в блупринтах спрайт перевести в текстуру?
Суть следующая: делаю инвентарь, пользователю планирую показывать 2d-текстуру, как в мануалах, проблема лишь в том, что в оригинале предметов для инвентаря используются картинки и 2d-спрайты. Ссылки на объекты хранятся в массиве, а инвентарь воспроизводится в виджетах, заменяя расставленные Image. Проблема в том, в что в Image не сохранить спрайт, и даже brush не очень получается (в описании сказано, что это может быть текстура или материал). Пока единственным способом я вижу конвертировать спрайт в материал и его подменять в инвентаре, чтобы показать предмет пользователю.
Если логика верна, как можно получить текстуру из спрайта в блупринте?


#1
19:37, 16 ноя. 2019

Что-то я не понимаю что такое "2д спрайт". Можете рассказать?

#2
20:25, 16 ноя. 2019

@!!ex
Могу. Создаёшь класс Actor, его компонент - Paper Sprite, в него (Source Sprite) кладёшь сам спрайт. Ну а сам спрайт создаёшь из любой png-картинки: Sprite Actions -> Create Sprite. По сути, изначальная картинка - это и есть текстура (если читать всплывающую подсказку) для спрайта, который потом используется в классе Actor.

#3
20:33, 16 ноя. 2019

Понял. Спасибо. К сожалению зря потратил ваше время, не работал с 2Д и не могу помочь.

#4
21:54, 18 ноя. 2019

Вот что-то нашёл, но так и не понял, как это сделать: https://forums.unrealengine.com/development-discussion/blueprint-… prite-texture
Обычно такие вопросы безответны: https://forums.unrealengine.com/development-discussion/blueprint-… via-blueprint

Задача - добраться так: Get All actor of class -> Get component class (Source sprite - тут я добрался) -> Source Texture (такого нет).

На крайний случай, думаю, во всех объектах использовать не PaperSprite, а взять картинку и преобразовать в каждом спрайте (вручную) текстуру и материал, ну а дальше как во всех мануалах - выводить их в инвентаре как Image.

#5
(Правка: 18:11) 18:11, 19 ноя. 2019

В общем, всё просто, парни. Можно, конечно, сделать из текстуры png (исходной картинки) материал, в объект вставить любой Static Mesh и раскрасить его, а дальше менять материал.
Но можно и проще, с обычными картинками.

Get All actor of class -> Get component class (Paper Sptite) ->Source sprite - > Make Brush from Sprite.

А картинка в инвентаре меняется просто как Image (нужно предварительно её пометить как переменную) -> Set Brush.

UE4 CommunityФорум