Добро пожаловать, berk
Twitter Группа Steam Страница Вконтакте Группа C.O.R.E. Dragon Age Контакте Новостная лента RSS
/ Статьи / Общеролевые статьи / Аналитика

Создание разветвлённой диалоговой системы. Часть 3: Создание диалогового дерева

Автор: Alexander Freed | Добавил: m00n1ight, 21.03.2015 | Просмотры: 1654

Предыдущие статьи серии:

Александр Фрид — вольнонаёмный писатель, почти десять лет работающий над сценариями игр. Начал карьеру в этом направлении в BioWare, где был главным сценаристом Star Wars: The Old Republic и Shadow Realms, затем ушёл из компании и занялся свободным творчеством. В настоящее время работает сценаристом как для инди-игр, так и для игр AAA-класса. Рисует комиксы и пишет прозу.

В этой части мы оставим в стороне визуальную составляющую и займёмся структурой и только структурой. Я не буду давать советы о том, как писать захватывающие диалоги или как завладеть вниманием игрока. Сегодня мы поговорим о том, как создать гигантского чудовищного спрута по имени «Диалоговое дерево» и сделать его понятным, лёгким для редактирования и написания сценариев.

Невозможно переоценить важность структуры диалогового дерева. Как бы хорошо ни был написан диалог, если он напоминает по виду клубок змей, то обязательно затормозит весь проект, когда понадобится отредактировать варианты ответов или изменить элементы сюжета. Вы можете более эффективно использовать время, растрачиваемое на облагораживание собственной работы (или поиски тех, кто сделает это за вас), особенно если позаботиться обо всём заранее.

Инструменты для редактирования

В первой части мы уже говорили о том, что для создания разветвлённой диалоговой системы необходимы соответствующие инструменты. Даже не думайте разрабатывать или писать диалоги, скажем, в Excel и заставлять игру анализировать таблицы. Конечно, можно сделать и так, если вам по душе рисовать детальные ландшафты скрепкой.

Инструменты для создания диалоговых деревьев (1)Инструменты для создания диалоговых деревьев (2)Инструменты для создания диалоговых деревьев (3)

Примеры инструментов Dragon Age: Origins, inklewriter и Chat Mapper.

Для экспериментов и обучения лучше всего подходят бесплатные инструменты, входящие в состав Dragon Age: Origins, Neverwinter Nights и Neverwinter Nights 2. Условия лицензии, конечно, не позволяют использовать их в коммерческих целях. Мне сообщили, что Shadowrun Returns также поставляется с похожим редактором диалогов, и между всеми этими инструментами есть много общего. Программа inklewriter от Inkle Studios поддерживает коммерческую лицензию — её использовали для создания The Banner Saga от студии Stoic, хотя она рассчитана на более богатые текстом игры, где диалоги являются ведущим элементом игры. Urban Brain Studios выпускает Chat Mapper, ещё один набор инструментов, поддерживающий коммерческую лицензию (я не работал с ним и не могу оценить его достоинства и недостатки).

Без сомнения, существуют и другие наборы инструментов, доступные для общего пользования и поддерживающие коммерческую лицензию (и, конечно же, можно создать набор инструментов с нуля). Я буду приводить примеры из патентованного редактора, созданного Риком Бёртоном из Knight Mayor.

Каким бы программным обеспечением вы ни пользовались, редактор разветвлённой диалоговой системы должен обладать следующими функциями:

  • Разветвление диалога. Не самое оригинальное и удивительное требование. Редактор должен поддерживать создание фраз персонажей и вариантов ответов игрока. Необходимо, чтобы различные фразы игрока вели к разным ответам персонажа. В идеале, с помощью редактора можно устанавливать переменные факторы и создавать диалоговое дерево на основе этих факторов, показывая различные варианты фраз игрока и персонажа в зависимости от установленных (или не установленных) для игрока переменных факторов.
  • Создание ссылок. Редактор должен уметь «связывать» фразы между собой (подобно символической ссылке в UNIX-подобной файловой системе или ярлыку в Windows). Так вы позволите игроку использовать одинаковые варианты ответов или целые диалоговые ветви в нескольких ситуациях, не переписывая их заново. Качественная система ссылок между фразами (как мы обсудим ниже) крайне важна для создания аккуратного, легко редактируемого диалога.
  • Визуальное представление и навигация. В редакторе должна быть функция отображения структуры диалога целиком. Очень сложно создавать диалоговое дерево, просматривая его построчно. Для поддержания хорошей структуры необходимо наблюдать за тем, как развивается диалог, где он разветвляется, насколько длинны его ветви, и где они снова сливаются в единое целое.

Различные инструменты по-разному представляют структуру диалогового дерева. На моих примерах структура отображается в общем стиле редактора диалогов для Neverwinter Nights, а inklewriter использует другой стиль и требует перехода в специальный режим просмотра «карты» диалога. У каждого сценариста свои предпочтения пользовательского интерфейса. Тем не менее, не сложно адаптировать стиль одного инструмента под другой — основные особенности остаются неизменны.

Критический путь

Мы знаем, какие функции инструментов нам нужны, а как применить их на практике?

Основой любого диалогового дерева выступает критический путь. Как мы уже упоминали в прошлой части, в любом диалоге есть элементы «обязательные к ознакомлению» для всех игроков. Они и называются критическим путём. Без участия этих элементов сюжет не сможет развиваться дальше. Поэтому критический путь должен содержать всю важную информацию и сюжетные подробности, необходимые для увлекательного полноценного прохождения игры.

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

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

Основная структура

    

Итак, у вас есть редактор диалоговой системы, и вы знаете, что хотите написать (в последующих частях мы рассмотрим, как выстраивать разговор персонажей в плане здравого смысла, сейчас же мы создаём только идеально структурированный диалог без всякого смысла). Как должно выглядеть диалоговое дерево?

Примерно так:

Диалог с водопадной структурой

Диалог с водопадной структурой.

В этом диалоге используется водопадная структура. Узловая структура выглядит похоже, но «зацикливается» в нескольких местах, например, вот так:

Диалог с узловой структурой

Диалог с узловой структурой.

Разберём эти два диалога по частям.

1. Красные и синие строки. В этом редакторе красные строки обозначают фразы персонажа (его имя показано в квадратных скобках перед текстом), а синие строки — ответы игрока.

2. Запрограммированные фразы игрока. Заметьте, что у игрока нет вариантов ответа — для плавности диалога мы заставляем его назвать персонажа по имени (если этот разговор идёт с озвучением, скорее всего, такая фраза воспроизведётся автоматически, а не всплывёт на экране, как единственный вариант ответа).

3. Сдвоенные ответы персонажа. После фразы персонажа игрока «Стэн?» идут два ответа неигрового персонажа. Это диалоговая ветвь, но она не основана на ответе игрока.

Зачем она нужна? В этом примере персонаж игрока может быть «Филиппом» или «Элизабет» (выбор предоставляется при создании персонажа). Эти строки должны быть подкреплены сценарием, проверяющим переменный фактор — «игрок — Филипп?» Если ответ «да» — воспроизводится первый вариант, если «нет» — персонаж перескакивает к следующему варианту (подразумевающему, что игрок выбрал роль Элизабет).

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

4. Пустые узлы. Пронумерованы для удобства. В данном редакторе за каждой фразой персонажа должен следовать ответ игрока и наоборот. Поэтому, чтобы поставить две фразы персонажа подряд, строка игрока между ними должна быть пустой.

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

5. Ссылки на фразу. Серая строка обозначает ссылку на другую диалоговую ветвь. В теории можно поставить «реальную» строку выше и перебросить ссылку на фразу «Элизабет» — диалог будет идти так же. Но для создания чёткой структуры лучше создавать ссылки в нисходящем направлении (по крайней мере, в одном постоянном направлении, если ваш редактор отображает структуру иначе). Диалог с нисходящими ссылками намного проще просматривать при редактировании и создании сценариев.

6. Ответы игрока. Первый набор ответов игрока на фразу «Теперь я точно хочу узнать…». Так как мы рассчитываем на озвучение и кинематографическое оформление диалога, в этом примере используются сокращения (указаны в круглых скобках).

7. Дополнительные запрограммированные фразы. Для реалистичного обмена репликами необходимо несколько запрограммированных фраз игрока. Представьте, как выглядел бы диалог, если бы мы останавливали игру для выбора варианта ответа после каждой реплики персонажа. Конечно же, приходится жертвовать контролем над персонажем.

8. Слияние диалоговых ветвей. После обмена репликами мы снова ставим диалоговую ветвь со ссылкой. Можно продлить эту диалоговую ветвь ещё одним набором ответов игрока, но помните, что каждая ветвь является второстепенной частью основного диалога. Всегда обдумывайте, стоит ли выстраивать длинную диалоговую ветвь — растрачиваемое вами (и вашими коллегами) время на обработку не столь важной ветви диалога можно использовать для улучшения и полировки критического пути разговора.

Star Control 2

(1. Кто из вас Фот? 2. Мы — «Путешественник», флагман Нового Альянса Свободных Звёзд с Земли. Каковы ваши намерения? 3. МОЛЧАТЬ, БОЛТЛИВЫЕ ПАРАЗИТЫ! Мы ваши новые хозяева!).
Определённые диалоговые ветви, несомненно, приведут к катастрофе, но приятно осознавать, что их можно выбрать (из Star Control 2).

Естественно, игрок быстро заметит и разочаруется в диалоге, если каждая опция приведёт к одному и тому же результату. Кроме того, полезно поддерживать веру игроков в богатый, живой внутренний мир игры, который невозможно постичь за одно прохождение.

Определение подходящего места для разветвления диалогового дерева — одна из основных сложностей составления интерактивных диалогов. Мы ещё рассмотрим эту тему в следующих частях.

9. Второй набор ответов игрока. Второй набор ответов игрока не сопровождается фразами персонажа (они скрыты для удобства чтения — значки «+» и «-» напротив каждого ответа открывают или скрывают последующие строки), но диалог может идти бесконечно, начиная отсюда, и пока писатель не решит его завершить.

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

11. Конец диалога. После убийства персонажа разговор продолжать не с кем. Предположительно, скрытые ветви от второго набора ответов игрока ведут к иному исходу диалога.

12. Узловой диалог. Второй разговор построен иначе, с использованием узловой структуры. Каждая фраза игрока (кроме последней, заканчивающей диалог) возвращает к одному и тому же набору ответов, за исключением уже использованных.

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

В следующей главе

Мы разобрали основы структурирования диалогового дерева. Конечно же, создание по-настоящему увлекательного и эмоционального диалога — это совсем другой разговор. В следующий раз мы поговорим о руководящих принципах написания разветвлённого диалогового дерева и ответим на следующие вопросы: «Как сделать выбор «важным»?», «Как поместить персонажа игрока в центр событий?» и «Что делать с игроками, старающимися только пролистать все диалоги, чтобы дальше отстреливать всё, что движется?».

Перевод: Никита Осколков. Оригинальная статья: Gamasutra.


Обсудить статью на форуме

Обновления форума

Копирайты

  • C.O.R.E. © 2009 – 2016
Система Orphus Creative Commons License
Войти на сайт?
Логин:
Пароль: