Редактор диалогов
Возможности, особенности и отличия от существующих редакторов[править]
- создание новых и изменение существующих диалогов
- автоматическая компоновка графа фраз
- простое редактирование идентификатора фразы и соответствующего ей локализованного текста
- проверка существования инфопорций и скриптовых функций
- автоматическое определение инициатора диалога (актор/персонаж) по профилю персонажа
- различаются скриптовые (без явно заданного <phrase_list>) и обычные диалоги
Проект реализует простой аналог файловой системы движка X-Ray. Это означает, что для работы обязательно требуется конфиг файловой системы fsgame.ltx
Редакторы используют базовый файл конфигурации system.ltx, откуда ltx-файлы читаются рекурсивно через дерево инклудов, а xml-файлы – руководствуясь значениями в соответствующих секциях ltx.
Иных жёстких привязок к файлам нет.
Естественно, программа работает только с распакованными ресурсами игры.
Первоначальный запуск[править]
Программа собрана только для 64-разрядной Windows и процессоров с AVX. Тестировалась на "Чистом небе" под Windows 10.
Для работы требуются установленные библиотеки времени выполнения Visual C++
Для того, чтобы использовать программу, необходимо:
- скачать свежий релиз (нажать на Assets и выбрать архив с именем вида borscht_concept_%дата%.7z)
- распаковать содержимое архива рядом с корнем файловой системы X-Ray и распакованными ресурсами игры (папкой gamedata)
- запустить исполняемый файл
Посмотреть пример использования редактора можно на ютубе или на гуглдиске.
Использование[править]
При запуске программы автоматически загружаются все диалоги, инфопорции и профили персонажей, зарегистрированные в system.ltx, а также считываются имена глобальных функций всех доступных скриптов из $scripts$
После запуска редактор готов к работе, никаких дополнительных действий не требуется.
Окно редактора разделено на две панели:
- слева список диалогов, условно (лишь условно, для удобства геймдизайнера) разбитых на отдельные файлы
- справа граф фраз, над ним атрибуты диалога и его инициатор
Атрибуты добавляются через контекстное меню: для фраз – кликом ПКМ на ноде, для диалога в целом – кликом ПКМ по панели над нодовым редактором.
Атрибут priority записывается в файл лишь в том случае, если он не равен 0. Для него нет отдельной кнопки удаления в угоду дизайну ui: если приоритет диалога нулевой, то атрибут удаляется автоматически.
В окне нодового представления действуют следующие горячие клавиши:
- N – создать фразу (ноду) под курсором
- A – перекомпоновать граф
- Tab – смена режима "локализация <-> идентификатор"
Другие горячие клавиши:
- Ctrl+Space – полноэкранный режима
- Ctrl+Q – выход из программы
Ноды компонуются автоматически при загрузке редактора. Положение нод на экране не сохраняется при перезагрузке (как и в любом другом серьёзном нодовом редакторе).
Поиск в зачаточном состоянии из-за сложности в реализации UI. В данный момент существует только фильтрация: введённое слово оставляет список диалогов, соответствующих запросу.
Анализ данных и поиск ошибок[править]
Подробный вывод парсера позволяет увидеть несоответствия в тегах xml, а также дубликаты секций и ключей во всех ltx-файлах, подключённых к system.ltx через #include.
Несмотря на то, что парсер движка X-Ray молча съедает такие вещи, наш парсер более строг и не станет загружать xml-файл, в котором отсутствует, скажем, закрывающий тег.
Реализован механизм автодополнения при вводе инфопорций и скриптовых функций (срабатывает при вводе >2 символов).
Не найденные в файлах инфопорции и скриптовые функции подсвечивают поля ввода красным.
Сохранение и регистрация xml-файлов в конфигурации[править]
Поскольку xml-файлы нужно не просто сохранить, но ещё и зарегистрировать в ltx – и при этом логика происходящего должна быть прозрачной для пользователя – был реализован механизм, который каждый тип xml-файла (диалог/шаблон профиля/описание персонажа и т.п.) регистрирует/разрегистрирует вместе с его зависимостями в соответствующей секции ltx, а также создаёт новый/удаляет существующий файл данного типа. При использовании СКВ такое решение полностью закрывает проблему пользовательских манипуляций с xml-файлами.
Окно регистрации и сохранения вызывается сочетанием клавиш Ctrl+S.
Статус файла можно понять по его цвету: белым зарегистрированный, серым незарегистрированный.
Переименовывается файл по двойному клику ЛКМ.
Сохраняется сразу весь файл. В новые xml-файлы добавляется минимально валидное содержимое. Новый файл не регистрируется в ltx до того, как пользователь сам это не сделает. При удалении диалога удаляется и парный ему файл таблицы строк.
При записи в xml применяется табулирование, эквивалентное 4 пробелам. Комментарии НЕ сохраняются. Самозакрывающиеся теги и теги без содержимого НЕ сохраняются.
Локализация диалогов[править]
Поддерживается русский, английский и (экспериментально, не протестировано) польский язык для файлов таблицы строк.
Язык локализации для редактора меняется ровно таким же образом, как и для движка – через значение ключа language в секции [string_table] (обычно в файле localization.ltx).
Известные ограничения[править]
- Символы ‘ ’ … — – « » автоматически заменяются на общеупотребительные аналоги при чтении таблицы строк из файла и при вводе текста.
Обратная связь[править]
Сказать или спросить что-то дельное насчёт редактора можно на странице обсуждения, на нашем форуме или на форуме АМК.