Как в UEFN удалить выброшенный предмет?

Здравствуйте!

Помогите разобраться, как в UEFN я могу удалять выброшенные игроками предметы со сцены по таймеру (даже не обязательно по таймеру, можно сразу после сброса предмета)?

В документации по Verse вообще не могу разобраться. Не могу найти описание структуры классов. После UE + C++ для меня эта система совсем не привычна.

Заранее благодарен!

Привет.
Если ты упомянул UE + и C++, то наверняка хоть немного знаком и понимаешь, что программист должен уметь читать код другого человека и, возможно, на основе него чему-то учиться.

На форуме есть AI генератор кода Verse и попутно этот бот попытается поэтапно расписать шаги основы его идеи.

картинка

Попробуй сам ввести:

  • “removing an object thrown by the player from the stage” в этом случае должно быть достаточно большое и подробное описание с различными вариантами. У меня получилось 62 строчки кода.
  • "removing an object thrown by a player onto the stage by timer after some time " через таймер.

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

Ещё можешь посмотреть про устройство Item Remover статья вот тут… Using Item Remover Devices in Fortnite Creative | Fortnite Creative Documentation | Epic Developer Community

Спасибо за наводку!

Item Remover, насколько я понял, удаляет предмет из инвентаря игрока, мне же нужно удалить “бесхозный” предмет.

Буду пробовать AI генератор. Спасибо!

К сожалению, AI генератор выдает много вариантов, но совсем про другое, уж как я не пытался перефразировать запрос.

У меня сейчас вообще какой-то бардак в голове. Я не могу даже понять, когда игрок выбрасывает, например, оружие, и это оружие лежит на полу, что это за объект получается? Как его получить в коде?

Вот, например, иду таким путем. Создаю устройство с простейшим кодом:


using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }

dropped_item_remover := class(creative_device):

    @editable
    Volume:volume_device = volume_device{}

    OnBegin<override>()<suspends>:void=
        Volume.PropEnterEvent.Subscribe(OnRemoveItem)

    OnRemoveItem<public>(Item:creative_prop) : void =
        Print("Item was droped!")

Затем на сцену помещаю volume_device, переношу в сцену свое устройство dropped_item_remover и инициализирую переменную Volume в редакторе.

Запускаю игру, захожу в эту область и выбрасываю из инвентаря оружие. Оружие валяется на полу и больше ничего не происходит. Получается, никакое событие Области на мое действие никак не отреагировало. Или creative_prop это совсем не про оружие?

Что вообще за сущность Оружие в фортнайт? Или другой предмет? Как с ними работать? По документации вообще не могу этого понять.

Я как-то в UE привык, что если уж совсем никак, то собрал все объекты нужного класса в один массив и делай с ними что хочешь. А как сделать это здесь ума не приложу.

Дружище, я действительно не знаю как тебе чётко помочь.

Скорее всего, если у тебя объектов мало, то тебе надо их отслеживать с помощью TrackObject() и disappearing_object_manager

Как вариант, ты можешь воспользоваться Mutator Zone Devices Using Mutator Zone Devices in Fortnite Creative | Fortnite Documentation | Epic Developer Community

у него в настройках есть Pickup Life Span

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

Просто растяни триггер на весь свой уровень (зону) и определи время.

картинка

Самый лучший вариант, это создать тему в разделе Verse и спросить там. Крайне часто там появляются модераторы или люди которые пишут курсы по Verse. возможно они ответят на твои вопросы.

В любом случае спасибо тебе за советы!

Mutator работает не совсем так как хочется. Он уничтожает все предметы на сцене, и выброшенные, и находящиеся на устройствах выдачи предметов.

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

А вот про TrackObject() и opensinging_object_manager буду читать, нужно с этим разобраться, если не для конкретно этой ситуации, то в любом случае будет полезно.

Весь этот UEFN для меня слишком высокоуровневый пока, не дает сунуть руки поглубже, боится :slight_smile: Даже не смотря на Verse. Но я найду с ним общий язык.

Надеюсь в дальнейшем в UE Эпики не уберут C++, иначе это будет трагедия для меня :slight_smile:

Весь этот UEFN для меня слишком высокоуровневый пока, не дает сунуть руки поглубже, боится :slight_smile: Даже не смотря на Verse. Но я найду с ним общий язык.

Тут дело просто в том, что у Epic всегда были проблемы с документацией и курсами хорошего уровня.
Если документацию ещё как-то можно поэтапно исправлять и добавлять, то курсов от самих Epic, т.е. от людей которые и создают этот самый продукт, знают про него и понимают лучше всех, крайне мало. Ощущение, что им совершенно не интересно общаться с новичками и они иногда выпускают что-то для уже совсем грамотных разработчиков.

Надеюсь в дальнейшем в UE Эпики не уберут C++, иначе это будет трагедия для меня :slight_smile:

Нет, С++ уже врос в UE, десятки тысяч проектов, сотни тысяч разработчиков и позиций вакансий, нельзя его просто так удалить. Это просто невозможно.

Тим Суини в X (Twitter) писал, что в UE6 будет интегрирован Verse, уже с этой версии движка компания постарается развивать этот язык программирования.

На Reddit некоторые молодые люди (16-25 лет примерно) пишут, что пытаются изучать Verse, потому что хотят попасть в первую волну вакансий на рынке, т.е. язык уже будет готов, компания Epic естественно будет организовывать презентации и показывать его преимущества, некоторые игровые компании откроют вакансии и на этой волне люди планируют легко и комфортно войти в игровую сферу.

*при этом я ни разу не видел реальных тестовых сравнений между языками вроде С++ и Verse. Не совсем ясно как и на сколько Verse будет, и будет ли вообще, лучше привычного С++.

Про удаление предметов с пола, думаю тут просто мало информации потому, что сообществу Fortnite это либо не нужно, от слова совсем, либо не интересно в данный момент.

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

Если хочешь стабильно развиваться и находить ответы на свои вопросы по Verse, тебе действительно надо общаться с более грамотными людьми, найти тех, кто от самих Epic пишут руководства, курсы и отвечает в ветках на форуме. Просто даже самые “грамотные” YouTubе`ры вроде Graeme Bull или
PlayUGC не дают каких-то фундаментальных и глубоких знаний. Они рассматривают и затрагивают только поверхностные, хайповые и метовые вопросы вроде колеса выбора (аналог казино), таблицы лидеров (Leaderboard) и пр.

1 Like

Спасибо тебе за советы! Буду разбираться.

1 Like