Редактор диалогов

Материал из xrWiki
Перейти к: навигация, поиск

Возможности, особенности и отличия от существующих редакторов[править]

  • создание новых и изменение существующих диалогов
  • автоматическая компоновка графа фраз
  • простое редактирование идентификатора фразы и соответствующего ей локализованного текста
  • проверка существования инфопорций и скриптовых функций
  • автоматическое определение инициатора диалога (актор/персонаж) по профилю персонажа
  • различаются скриптовые (без явно заданного <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$
После запуска редактор готов к работе, никаких дополнительных действий не требуется.

Окно редактора разделено на две панели:

  • слева список диалогов, условно (лишь условно, для удобства геймдизайнера) разбитых на отдельные файлы
  • справа граф фраз, над ним атрибуты диалога и его инициатор

borscht-dialog-editor-ui-01.png

Атрибуты добавляются через контекстное меню: для фраз – кликом ПКМ на ноде, для диалога в целом – кликом ПКМ по панели над нодовым редактором.

Атрибут 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).

Известные ограничения[править]

  • Символы ‘ ’ … — – « » автоматически заменяются на общеупотребительные аналоги при чтении таблицы строк из файла и при вводе текста.

Обратная связь[править]

Сказать или спросить что-то дельное насчёт редактора можно на странице обсуждения, на нашем форуме или на форуме АМК.