Size: a a a

2020 July 20

С

Сэр MSTR in Unreal Engine
Ребят, хотел бы посоветоваться

Если стоит задача сделать инвентарь персонажа не конкретно у самого персонажа, а у вещей, которые на него надеты. То есть у куртки отдельное хранилище, у штанов отдельное и т д

Как бы это было лучше сделать?

Я вижу способ а лоб, но мне кажется он будет дороговат

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

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

Может еще что подскажете?
источник

VA

Vladimir Alyamkin in Unreal Engine
Vladimir Alyamkin
Из того что под рукой, Full Rebuild рабочего проекта:
* Seagate ST1000DM003 -- 277,00 seconds
* Crucial Micron 1100 SATA -- 274,87 seconds
Из забавного - вот что значит "время идет". Текущий фулл ребилд занял 175 секунд, с учетом того что я еще в ютубчик и браузер тупил.
источник

С

Сэр MSTR in Unreal Engine
Сильно вообще такой способ поможет удешевить?
источник

RM

Roman Merkushin in Unreal Engine
источник

n

norlin in Unreal Engine
Господа, а кто-нибудь знает, как правильно написать CSV чтоб оно импортировалось как многострочный FText ? надо как-то по-особенному эскейпить переносы строк?
источник

N

NoCodeBugsFree in Unreal Engine
после реимпорта модели(скелетал меш), если количество материалов менялось, то возникают пустые слоты, которые пытаюсь снести вручную. При попытке их удалить, сначало предупреждение вылазит
источник

N

NoCodeBugsFree in Unreal Engine
источник

N

NoCodeBugsFree in Unreal Engine
потом краш
источник

N

NoCodeBugsFree in Unreal Engine
с выходом за границу массива
источник

N

NoCodeBugsFree in Unreal Engine
Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:D:\Build\++UE4\Sync\Engine\Source\Runtime\Core\Public\Containers/Array.h] [Line: 614] Array index out of bounds: 11 from an array of size 11"

что делаю не так??
источник

С

Сэр MSTR in Unreal Engine
norlin
Господа, а кто-нибудь знает, как правильно написать CSV чтоб оно импортировалось как многострочный FText ? надо как-то по-особенному эскейпить переносы строк?
Ты же мне сам скидывал туториал по DT, там это было вроде
источник

VA

Vladimir Alyamkin in Unreal Engine
Сэр MSTR
Ребят, хотел бы посоветоваться

Если стоит задача сделать инвентарь персонажа не конкретно у самого персонажа, а у вещей, которые на него надеты. То есть у куртки отдельное хранилище, у штанов отдельное и т д

Как бы это было лучше сделать?

Я вижу способ а лоб, но мне кажется он будет дороговат

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

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

Может еще что подскажете?
Имхо делай по первому методу. Это будет лучше для старта. А если хочешь прям сразу оптимизировать - раздели сущности "внешний вид персонажа" и "инвентари", т.е. инвентари они же owner only обычно, формируют тебе "внешний вид" который "на всех".
источник

VA

Vladimir Alyamkin in Unreal Engine
norlin
Господа, а кто-нибудь знает, как правильно написать CSV чтоб оно импортировалось как многострочный FText ? надо как-то по-особенному эскейпить переносы строк?
Проще всего сделать экспорт такой строки и посмотреть как там будет)
источник

VA

Vladimir Alyamkin in Unreal Engine
NoCodeBugsFree
после реимпорта модели(скелетал меш), если количество материалов менялось, то возникают пустые слоты, которые пытаюсь снести вручную. При попытке их удалить, сначало предупреждение вылазит
это значит что на скелеталке есть невалидный слот с материалом
источник

VA

Vladimir Alyamkin in Unreal Engine
баг 4.24 если память не изменяет?
источник

VA

Vladimir Alyamkin in Unreal Engine
причем его же фиксили в 4.24.2 вроде?
источник

VA

Vladimir Alyamkin in Unreal Engine
Т.е. чтобы все было ок - надо почистить сам меш, чтобы во все материал слоты были назначены материалы.
источник

N

NoCodeBugsFree in Unreal Engine
Vladimir Alyamkin
баг 4.24 если память не изменяет?
да
источник

С

Сэр MSTR in Unreal Engine
Vladimir Alyamkin
Имхо делай по первому методу. Это будет лучше для старта. А если хочешь прям сразу оптимизировать - раздели сущности "внешний вид персонажа" и "инвентари", т.е. инвентари они же owner only обычно, формируют тебе "внешний вид" который "на всех".
Я просто не очень понимаю, большую ли оптимизацию даст второй метод. К тому же при втором методе придется в рантайме создавать компоненты в некоторых случаях (например когда игрок из сундука взял штаны и надел), эпики этого вроде не рекомендуют делать

Пасиба)
источник

n

norlin in Unreal Engine
Vladimir Alyamkin
Проще всего сделать экспорт такой строки и посмотреть как там будет)
да, так и сделал) эскейпится как \r\n %)
источник