Приветствую всех в новом сообществе, где я буду делиться ходом разработки!
Сегодня говорим о том где вообще записываются диалоги игры.

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

Дело в том что диалоги внутри движка могут быть представлены в двух форматах - по умолчанию используются таблицы данных (DATA TABLES), в другом случае вы их получите из данных экспорта из вашего редактора. Если мы используем первый вариант, то тогда наша система будет оперировать таблицами - в UE, если вы разрабатываете на блюпринтах, как это делаю я, вы сможете пользоваться нодами самого UE и обрабатывать текст напрямую. Если у вас специальные данные, то разрабы ПО либо сделают плагин для интеграции их редактора в UE, либо вы сможете экспортировать их из редактора в нужный тип данных.А зачем нам вообще какой-то редактор для диалогов? Если в UE есть возможность писать их вручную, то почему бы не воспользоваться этим способом? Ответ на СКРИН_1.

СКРИН_1
СКРИН_1

Заполнять таблицы в ручную наверное даже можно, если вы делаете короткие, линейные диалоги. Но если вам нужны диалоги с развилками, проверками на пассивки и активки, если у реплик будут условия появления, то вы сразу же поставите крест на ручном методе и будете искать оболочку для автоматизации процесса. Вручную таблицу просто не заполнить. Этого не сделать для игры с таким большим упором на текст. Мало того что это нужно все банально прокликать и записать, так еще у вас будет меняться программирование самой игры, вы будете писать и переписывать эти диалоги. Делать в ручную - смерти подобно. К тому же когда диалоги изображены в цепочке со стрелочками - намного понятнее как работает геометрия самого диалога.

И так, если мы решили делать это в отдельном редакторе, то какой же нам выбрать? И так, существуют редакторы, существует Unreal Engine, и еще чтобы их породнить существуют плагины, которые включают редактор в движок. Другими словами мы выбираем также и плагины - они все платные кроме того что подключает ARTICY. И выглядит он неплохо. Так что я остановился на нем. СКРИН_2 (так выглядят диалоги изнутри)

СКРИН_2
СКРИН_2

После того как мы выбрали плагин и написали тестовый диалог нам нужно его подключить.
С этим возникла кошмарная проблема к которой я совершенно не был готов. Нужно сперва оговорить что в ARTICY есть 2 плагина — старый версии 3 и новый версии X — видимо они его обновили и создали отдельную версию.

Что случилось: Во первых я выбрал версию 3 как более устойчивую и проверенную временем. Однако ARTICY банально не мог экспортировать данные в UE. Я подключил плагин, везде галочки стоят. Я должен просто закинуть данные в UE и плагин создаст 3 красивых файла с диалогами. Вместо этого он создавал пустую папку. Пытаясь разобраться в чем проблема я попробовал следующее...

Список того что не помогло:
Я включал и выключал плагин, пробовал его разные настройки, пробовал обновлять данные внутри UE через их встроенное меню.

Затем я понял что проблема была в другом - плагин видимо не совместим с моей версией анрила, либо он устарел, либо не поддерживается. Короче говоря пришлось ставить ARTICY X. Делаем все те же самые операции, а результат тот же - пустая папка. Совершенно не понимаю в чем проблема.И вот меня осенило - в UE все проекты могут создавать на блюпринтах(визуальное программирование) и c++(прямое программирование через оболочку Visual Studio). Я понял что плагин видимо не работает c проектом на блюпринтах. Я попробовал быстрый тест на чистых c++ и вуаля - все файлы на месте.

Дальше я перенес проект с блюпринты на блюпринты и с++ - двойной вариант. Для того чтобы перейти на другой тип проекта UE заставит установить оболочку VISUAL STUDIO, обновить ее и можно смело начинать работать. Установка этой оболочки для программирования, как оказалось, частая и узкая проблема с которой многие сталкиваются. Для корректной работы UE вам нужно выбрать пакет данных (СКРИН_3). Узость в том что выбрать вы можете хоть 300гб данных. Более того, вы не хотите устанавливать так много ненужного мусора, но также не можете установить слишком мало, их нужно установить в определенной последовательности, определенное количество и конкретные пакеты для вашей версии UE.

СКРИН_3
СКРИН_3

Результат: Недельку сидим и пробуем разные версии только для того чтобы потом снести VISUAL STUDIO нахрен, удалить UE и переустановить ВИНДУ. Потому что неправильно установленные версии так просто удалить нельзя - он�� оставляют след в винде или анриле, или в самой оболочке, но короче говоря оно все так багается и не работает, что я решил снести вообще все и попробовать очень чистую установку. Конечно же с бэкапами.

Удалил, переустановил, включил плагин, экспортировал данные и о боже - наконец-то мы имеем те самые данные! Браво! (СКРИН_4)С ними правда тоже была история - видимо остались какие-то фантомные файлы от старого экспорта, так что пришлось мигрировать все блюпринты в новый проект, чтобы теперь уж точно все было чисто.

СКРИН_4
СКРИН_4

Теперь возникает следующая проблема: Мне нужно перенести всю мою архитектуру на новую почву - поменять Таблицы на поток ARTICY. Помогает мне со всем этим Gemini 2.5 (GPT от Гугла). Оказалось, что он не может работать с ARTICY - потому что инструмент видимо не настолько популярный и хуже того - у них нет документации (ЭТО КАК ВООБЩЕ? Я не шучу, у них есть документация для работы с самим редактором, но нет документации для работы внутри игровых движков. Если вы все таки найдете ее - кидайте в комменты). Короче. ЧАТ не может мне помочь - он все время путается, подсказывает не те ноды и я не могу перенести архитектуру на новый тип данных. Я мучаюсь, но ем кактус, как понимаю что нет, так дело не пойдет, нужно что-то придумать. В UE вам доступны все возможные ноды из общего поиска (СКРИН_5). Если они отображаются в редакторе, значит можно попробовать их оттуда вытащить. Я знаю что можно написать коротенькую программу чтобы она обходила файлы и собирала по ним всю информацию - имя им СКРИПТЫ, как и многим другим похожим программам.

СКРИН_5
СКРИН_5

Так что мы с чатом написали скрипт - он понятное дело не работал, так что пришлось его несколько раз переделать и о чудо - мы получаем полный список нод, которые можно скинуть чату и он перестанет ошибаться(СКРИН_6).

СКРИН_6
СКРИН_6

Снова проблема - ошибки снизились, но они все еще критические, а значит чат не сможет нормально с этим работать никогда. На этом моменте прошло уже недели 3 и я просто задолбался это все д��лать.

В итоге ко мне приходит эврика - можно написать другой скрипт. Который будет обходить не файлы UE, а файлы ARTICY, будет делать из них таблицу и тогда, если мне улыбнется удача, мне не придется даже менять архитектуру. Я смогу остаться на таблицах и при этом пользоваться ARTICY.

Результат: Идеальное решение к которому пришлось долго идти, полностью изменив подход к разработке. Что имеем:ARTICY может экспортировать не только файлы для UE, но и другие форматы - я остановился на .json. Страшные списки с кучей цифр (СКРИН_7).

СКРИН_7
СКРИН_7

Что я с ними делаю: Запускаю скрипт (СКРИН_8), он обходит файлы и формирует таблицу csv, эту таблицу можно закинуть сразу же в UE, где мои блюпринты ее обработают как родную. И таким образом я потратил очень много времени чтобы прийти к следующему: Я получаю преимущества таблиц, разделяю ARTICY и UE скриптом, использую преимущества ARTICY. Здорово.

СКРИН_8
СКРИН_8

Какие же у ARTICY преимущества?
Ответ: диалоги программируются. Это значит что я могу создать шаблон для любой нужной мне ноды диалога(СКРИН_9), это отобразится в таблице и тогда внутри движка я могу поставить условие на обработку этого нового значения.

СКРИН_9
СКРИН_9

Удобно.
Итог выглядит так: СКРИН_10

СКРИН_10
СКРИН_10

Какой урок можно из всего этого вынести:

  • Иногда ЧАТ не может помочь вам решить сложные задачи

  • Не сдаваться, а пробовать новые подходы

Бонус: Чтобы заставить ARTICY работать вам нужен проект на c++, самый новый плагин, и очень важно: при установке visual studio он предлагает много подсказок которые выглядят как туториал, но на самом деле это указания на то чего не хватает для работы - он будет вести вас к правильной установке.

Всем спасибо что прочитали первый пост! Дальше будет больше, лучше, интереснее!

Канал в телеге
Группа ВК