Как создать управляемый вопросами список контактов персонажей без утечки скрытых сцен
Управляемый вопросами список контактов работает тогда, когда у каждого ответа есть понятный источник, условие обнаружения и правило видимости. Для каждого персонажа фиксируйте то, что он наблюдал лично, что ему кто-то рассказал, что он может обоснованно предположить и чего он пока не знает. Затем направляйте обычные сюжетные вопросы тем персонажам, чьи знания позволяют дать ответ. Это делает список полезным и не позволяет будущим сценам и еще не раскрытым фактам просочиться в диалоги.
Начните с вопросов, которые читатели действительно могут задать
Выберите узкий набор простых вопросов, привязанных к сюжету: У кого запасной ключ? Где Мира оставила скетчбук? Кто согласился принести складные стулья? Их проще маршрутизировать, чем широкие запросы вроде «Что происходит?» или «Расскажи мне о городе». Хороший вопрос имеет ответ, который можно отследить до события, предмета, разговора или четко обозначенного предположения.
Записывайте каждый вопрос в журнал вопросов с четырьмя полями: ответ, событие-источник, самый ранний момент, когда на него можно ответить, и какие персонажи имеют право отвечать. Например, на вопрос «У кого запасной ключ?» Джо может ответить после того, как получит его в начальной сцене. До этого момента список должен указывать «не установлено», а не строить догадки. Такое разграничение не дает отсутствующему факту случайно превратиться в канон.
Определите для каждого факта источник и тип знания
Относитесь к сюжетным фактам как к записям улик, а не как к общему котлу, из которого может черпать любой персонаж. Компактная запись может выглядеть так:
Факт: У Джо запасной ключ; Источник: Джо берет его с крючка в Сцене 2; Тип знания: Наблюдал / владеет; Самое раннее обнаружение: После Сцены 2; Видимость: Джо; все, кому она расскажет
Факт: Зал забронирован на субботу; Источник: Записка с подтверждением на доске объявлений; Тип знания: Прочитал; Самое раннее обнаружение: После того как персонаж увидит записку; Видимость: Персонажи, которые ее прочитали
Факт: Стулья поместятся в фургон; Источник: Джо сравнивает их размеры; Тип знания: Предположение; Самое раннее обнаружение: После того как она проверит и то, и другое; Видимость: Джо, с формулировкой в виде оценки
Используйте небольшой, постоянный набор типов знания. «Наблюдал» означает, что персонаж присутствовал и мог воспринимать событие. «Узнал со слов» означает, что информацию передал другой персонаж. «Прочитал» означает, что он встретил записку, сообщение, знак или другую запись. «Предположил» означает, что он сделал вывод на основе улик, и это должно формулироваться как мнение или оценка, а не как подтвержденный факт. «Неизвестно» означает, что сюжет еще не дал ему пути к этой информации.
Эта структура — правило редакторского дизайна, а не функция, гарантированная каким-либо инструментом для писателей. Она вытекает из практического различия: отслеживание состояния может фиксировать изменения, но автор по-прежнему решает, что это состояние означает. В документации Ink описано гибкое отслеживание состояния, при этом отмечается, что оно не предоставляет полноценной системы моделирования мира; документация Twine точно так же разделяет глобально доступные переменные истории и локальные временные переменные. Эти механизмы могут помочь представить состояние истории, но ни один из них не определяет автоматически, что должен знать персонаж. (Ink: Writing With Ink, Twine Cookbook: Variables)
Добавляйте фильтры обнаружения вместо раскрытия ради удобства
Фильтр обнаружения (discovery gate) указывает, что должно произойти, прежде чем факт станет доступным. Сделайте его наблюдаемым и конкретным: «после того как Джо прочитает доску объявлений», «после того как Ли расскажет Пэт» или «после того как группа откроет ящик с припасами». Избегайте таких фильтров, как «когда сюжет будет готов», которые трудно применять последовательно.
Разделяйте событие, делающее факт истинным, и событие, благодаря которому персонаж узнает о нем. Зал может быть забронирован до того, как Джо прочитает подтверждение. Ли может переложить запасной ключ, никому не сказав. Когда фильтр открывается, обновляйте информацию только для тех персонажей, у которых был доступ к этому конкретному пути. Если персонаж пропустил разговор, не наделяйте его информацией тайком только потому, что ее видел читатель.
В интерактивных историях фильтры могут быть представлены переменными и условными переходами. Twine Cookbook объясняет, что блоки <<if>> и <<else>> в SugarCube показывают контент в зависимости от условия; Ink также поддерживает изменения состояния и ветвящиеся выборы. Это варианты реализации для показа или скрытия реплики. Истории все равно нужно четкое правило для установки условия — например, фиксация того, что конкретный персонаж прочитал объявление. (Twine Cookbook: «Conditional Statements»: SugarCube, Ink: Writing With Ink)
Отслеживайте общие факты, не делая их общедоступными
Факт может быть открыт группе, паре людей или никому, кроме первоисточника. Записывайте круг лиц явно: «Джо и Ли слышали план», «присутствовали все три персонажа» или «только Пэт видела записку». Не используйте формулировку «все знают» для сокращения, если только в сюжете нет момента, когда об этом действительно узнают все.
Полезное правило — моделировать каждую передачу информации как отдельное событие. Если Ли говорит Джо, что стулья в сарае, Джо получает запись об источнике «узнал со слов»; Пэт — нет. Если позже Джо пишет группе, сюжет может обновить получателей, указанных в этом сообщении. Если сообщение только составлено как черновик или отправлено одному человеку, оно не должно становиться общеизвестным по умолчанию.
Также отличайте общую истину от общей интерпретации. Несколько персонажей могут знать, что зал забронирован на субботу, но расходиться во мнениях относительно того, достаточно ли там места. Фактическая запись может быть общей; оценка принадлежит тем, кто ее высказал. Это сохраняет разнообразие диалогов, не меняя лежащего в их основе события.
Пропускайте каждый ответ из списка контактов через простую проверку
Прежде чем персонаж ответит, прогоните вопрос через следующую последовательность:
Определите точный факт, который запрашивает вопрос. При необходимости разбейте составные вопросы на отдельные факты.
Найдите событие-источник, устанавливающее каждый факт. Если источника нет, пометьте ответ как неизвестный или еще не установленный.
Проверьте, наблюдал ли этот персонаж данный факт, узнал ли он его со слов, прочитал ли или предположил.
Проверьте, открылся ли соответствующий фильтр обнаружения на данном этапе сюжета.
Сопоставьте формулировку с типом знания: прямой ответ для подтвержденного знания, ответ со ссылкой на источник для слухов или осторожная формулировка для предположения.
Удалите детали, полученные из более поздней сцены, из чужой личной точки зрения или из источника, с которым персонаж не сталкивался.
В примере с ключом Джо может сказать: «Запасной ключ у меня», после того как взяла его. Ли может сказать: «Джо говорила мне, что он у нее», после того разговора. Пэт, которая не видела ключа и ничего о нем не слышала, не должна отвечать с уверенностью. Если Пэт строит догадки, глядя на пустой крючок, ответ должен звучать как предположение и оставаться помеченным соответственно. Таким образом, список контактов может быть отзывчивым, не превращаясь во всеведущего рассказчика.
Проверяйте границы с помощью отсутствующих и неполных знаний
Проверяйте обычные вопросы в различных моментах сюжета: до события-источника, сразу после него, после того как один персонаж поделится им, и после того как о нем узнает более широкая группа. Ответ должен меняться только тогда, когда меняется соответствующий фильтр. Включите вопрос, ответ на который действительно неизвестен; надежному списку нужен безопасный способ сказать «в сюжете это пока не установлено».
Проверяйте также и частичные факты. Персонаж может знать, что доставка ожидается в субботу, но не знать времени. Он мог видеть скетчбук на столе, не зная, кто его там оставил. Сохраняйте известную часть и оставляйте остальное открытым вместо того, чтобы заполнять пробелы правдоподобными выдумками. Если в истории используются заголовки сцен, сохраняйте идентифицируемость сцены-источника; руководство по синтаксису Fountain описывает заголовки сцен как отдельный элемент сценария, который может служить удобной справочной меткой в сценарном процессе. (Fountain: Syntax)
Если ответ не проходит проверку, скорректируйте запись об источнике, фильтр обнаружения или текст ответа — в зависимости от того, что именно неверно. Не устраняйте утечку, заставляя каждого персонажа забывать один и тот же факт. Небольшой, четкий журнал знаний задает каждому контакту правдоподобные границы и позволяет читателям задавать полезные вопросы, не узнавая информацию о скрытых сценах раньше времени.
