Difference between revisions of "Учебник Bethesda Продвинутые диалоги"
Учебник Bethesda Продвинутые диалоги (edit)
Revision as of 04:20, 4 September 2012
, 04:20, 4 September 2012no edit summary
imported>Vitamant (Created page with "{{PageTitle|Продвинутые диалоги}} {{RussianPage|t}} {{Tutorial Index/ru |titlename=Продвинутые |Prev=Bethesda_Tutorial_Quest_Aliases/ru |Next=B...") |
imported>V.erS.us |
||
(19 intermediate revisions by 3 users not shown) | |||
Line 4: | Line 4: | ||
{{Tutorial Index/ru | {{Tutorial Index/ru | ||
|titlename=Продвинутые | |titlename=Продвинутые диалоги | ||
|Prev=Bethesda_Tutorial_Quest_Aliases/ru | |Prev=Bethesda_Tutorial_Quest_Aliases/ru | ||
|Next=Bethesda_Tutorial_Scenes/ru | |Next=Bethesda_Tutorial_Scenes/ru | ||
Line 12: | Line 12: | ||
=Краткий обзор= | =Краткий обзор= | ||
Эта глава расскажет больше о системе диалогов. Научит более гибко настраивать реплики персонажей, в том числе и в бою. | |||
<br><br> | <br><br>Ты узнаешь: | ||
* | * Какие специальные темы существуют. | ||
* | * Как использовать сброс таймеров. | ||
* | * Как описать реплики в бою. | ||
* | * Как заблокировать тему. | ||
= | =Специальные темы= | ||
Раньше мы писали только обычные диалоги, которые персонаж произносит при обращении к нему игрока. Это бесспорно очень важный аспект, однако для создания реалистичного живого мира, нужно наполнить диалогами окружение, бои, научить персонажей реагировать на появление игрока, и т.д. | |||
После изучения главы [[Bethesda_Tutorial_Quest_Loose_Ends/ru|о хвостах]] предыдущего учебника, у тебя уже появилось некоторое представление о специальных темах. Вместо того чтобы создавать отдельную тему в меню диалога, мы привязали монологи НИП к событиям взаимодействия. На вкладке Misc окна квеста (там, где мы создавали Приветствие и Прощание) ты можешь увидеть список всех событий, которые могут инициировать начало того или иного монолога. | |||
Все подобные диалоги в игре подразделяются на типы по вызывающему событию. Каждому типу соответствует огромный банк данных, содержащий диалоги. Когда игра вызывает специальную тему, для того чтобы определить - что персонаж должен сказать, начинается перебор '''всех''' соответствующих данному типу монологов, определенных в запущенных квестах, связанных с говорящим. Движок помещает каждую найденную тему в стек, в порядке определенном приоритетом квеста (тема, определенная в квесте с приоритетом 70 всегда будет выше темы в квесте с приоритетом 50). После тогда, как создание стека будет завершено, начнется перебор тем сверху вниз до тех пор, пока не найдется первая из них, все условия которой истинны. | |||
Если игра дойдет до основания стека, а тема, удовлетворяющая условиям найдена не будет, персонаж ничего не произнесет. | |||
{{Template:InDepth| | {{Template:InDepth|Если ты программист, то успокойся, отпусти мышь, перестань скрипеть зубами и царапать стол, сделай пару глубоких вдохов и успокойся. Из описания и вправду получается очень не эффективное решение. Не волнуйся, в недрах движка всё намного сложнее, а решение намного эффективнее, но на концептуальном уровне все выглядит именно так.}} | ||
= | =Таймеры, одноразовые и случайные монологи= | ||
Движок игры предоставляет несколько простых, но в тоже время функциональных инструментов, созданных для того чтобы один и тот же монолог не всплывал в разговорах слишком часто. | |||
Рассмотрим их поподробнее. Открой окно редактирования монологов и обрати внимание на центральную часть, где скопилась группа флажков, выпадающий список и текстовое поле. | |||
[[File:InfoCheckBoxes.png]] | [[File:InfoCheckBoxes.png]] | ||
==Say Once== | ==Флаг "Say Once"== | ||
Как не трудно догадаться, отмеченный данным флажком монолог появится в игре всего один раз, после чего навсегда исчезнет. Строго не рекомендуется помечать им важные, сюжетные диалоги, так как игрок имеет все шансы их пропустить. Оптимальный вариант использования - знакомство персонажа с игроком. | |||
==Hours until reset== | ==Поле "Hours until reset"== | ||
Здесь указывается количество часов, которое должно пройти прежде, чем однажды произнесенный монолог, появится снова. Это число не может быть меньше 0 и больше 24. | |||
==Random== | ==Флаг "Random"== | ||
Представь - у нас есть персонаж, у него есть приветствие, и он раз за разом повторяет его игроку, словно заведенный. Нужен нам в игре такой робот? Едва ли. Для того чтобы заставить персонажа произнести '''удовлетворяющий условиям''' случайный монолог из набора и служит этот флаг. | |||
Прежде чем его использовать, вспомни, что все доступные монологи, в случае ответа на выбранную персонажем тему (равно как и на специальную тему), выстраиваются в стек и берется тот из них, что расположен выше всех (и отвечает условиям). Однако, если мы будем использовать таймеры в совокупности со случайными ответами, то может возникнуть проблема, когда все доступные варианты отвечающие ситуации будут исчерпаны, и персонаж в разгар какого-нибудь важного задания, вдруг заговорит общими фразами, не относящимися к делу. Чтобы этого не случилось, стоит пометить самый нижний из случайных вариантов флажком "Random End". Тогда, даже если каждый монолог будет произнесен и заработает определенный таймаут, игра будет выводить помеченный, как конечный монолог, пока таймеры остальных не восстановятся. | |||
Всё это может показаться сложным, поэтому ниже приведен пример. | |||
== | ==Как всё это использовать== | ||
Открой наш любимый квест GSQ01 и перейди на вкладку Misc. Открой ранее созданную тему GSQ01Hellos. Как видишь, Бэнду упорно благодарит игрока за помощь, после завершения задания. Нехорошо. Давай разнообразим его монологи. | |||
Открой его благодарственную речь, пометь ее флажком "Random" и укажи задержку между повторами равную 30 минутам (0.5 часа). Закрой. ПКМ по ней и выбери "Copy" чтобы сделать дубликат. Повтори это действие еще два раза и получишь четыре одинаковые линии. Измени три последние: | |||
* " | * "Я могу лишь представить, как мужественно сражались вы с этим гадким ворюгой!" | ||
* " | * "Моя прелесть. Спасибо, что вернули мою прелесть..." | ||
* " | * "Да?.. Что-то еще?" | ||
Открой последний монолог и отметь флажок "Random End". Последний монолог намеренно представлен короткой скучной фразой, чтобы игрок понял - НИП сказал всё, что мог и больше ничего интересного не поведает. В игре этот монолог будет произноситься в случайном порядке наравне с остальными. Когда же у всех остальных появится таймаут, она будет появляться постоянно, пока таймеры не отсчитают положенные полчаса. | |||
=Combat Lines= | =Combat Lines= | ||
"Like the bite of a flea!" | "Like the bite of a flea!" — «Как укус блохи!» (прим. переводчика: выкрики, которые звучат во время боя) | ||
В окне заданий (Quest window) имеется также вкладка «'''Combat'''» (Бой). Темы (topic) из этого раздела имеют самое непосредственное отношение к «оживлению» схваток с гуманоидными (или не очень) врагами. Работает это все абсолютно аналогично приветствиям, о которых уже было написано ранее. Сброс таймеров, стек (порядок вызова), приоритеты и т.д. — всё то же самое. За исключением ситуации, в которой используется данная вкладка, — в случае, когда персонаж, к которому прикреплен диалог, вступает в битву. | |||
Creation Kit | Описанная система может показаться несколько <del>неадекватной</del> запутанной. Но, стоит только поработать с ней, поставить несколько практических экспериментов, как осознание происходящего начинает снисходить на вас.. Равно как и понимание того, что за что отвечает, и чем всё это может грозить. В итоге, разобраться со всеми хитросплетениями Creation Kit помогут не многочисленные писанные и переписанные туториалы, а практика! | ||
= | =Прочие темы диалогов (Dialogue topics)= | ||
По-умолчанию, когда мы создаем новую тему (topic) в режиме отображения диалогов (Dialogue View), она устанавливается как '''Top-Level'''. Это означает, что в случае, если начальная тема (topic) прошла все проверки, при выборе её игроком, тема отобразится как один из вариантов меню диалога персонажа (Actor). | |||
[[File:ConnectedDialogue.png]] | [[File:ConnectedDialogue.png]] | ||
На схеме оранжевый цвет рамки темы (topic) показывает, что это '''top-level''' тема. Двойное нажатие левой кнопкой мыши на этой рамке откроет окно диалоговой ветки (Dialogue Branch). Две другие опции: | |||
* '''Normal''': | * '''Normal''' (Нормальная): Это ветвь не будет отображаться в списке тем, если она явно не связана с другой веткой. Это может оказаться полезным для организационных целей или для ветвей, вызываемых из специальных пакетов (FoorceGreet package). | ||
* '''Blocking''': | * '''Blocking''' (Блокирующая): Старт темы (topic) блокирующей ветви, подразумевает, что персонаж (actor) сможет говорить только об этом. Исходной темой при этом становится приветствие ветви а список выбора верхнего уровня (top-level) заменяется всем тем, что связано с отправной темой (starting topic). | ||
Стартовые темы (topic) блокирующей ветки могут быть полезны в тех случаях, когда персонажу необходимо сообщить игроку что-то очень важное. При этом игрок не может получить доступ к обычному диалогу персонажа до тех пор, пока не выслушал все реплики блокирующей ветки (поэтому убедитесь, что вы сделали все необходимое, чтобы в конце этой ветки блокировалась её стартовая тема, иначе вы рискуете слушать эту «важную» новость постоянно). | |||
Блокирующие ветви отображаются в редакторе бледно-зеленым цветом. | |||
[[File:BlockingBranch.png]] | [[File:BlockingBranch.png]] |