Написано Катажиной Кучиньской.
Что такое NPC?[]
NPC (Non Player Character, неигровой персонаж) – компьютерный персонаж игры. Каждому NPC присвоено определенное имя, характеристики, места (в которых персонаж появляется на различных стадиях игры), реплики (которые персонаж произносит в различных ситуациях) и т. д. Это уникальный персонаж. Если его убивают, он больше не появляется в игре. На рис. 1 отображен NPC Тобиас Хофман, солтыс деревни Темноводье.
Создание файла NPC[]
Чтобы создать файл, в котором перечислены все параметры NPC, в меню Файл (File) выберите Создать –> Основной персонаж (New ‐> Story NPC).
В поле Примечание (Comment) введите краткое описание персонажа (например, "Тобиас Хофман, солтыс деревни"). Поведение каждого NPC разделено по стадиям (стадии сюжета). С помощью квестов и скриптов можно производить смену сюжетных стадий NPC, что повлечет за собой перемены в поведении персонажа. Для каждой стадии необходимо указать действия персонажа, идентификаторы областей действий (зоны, в которых персонаж будет выполнять то или иное действие), а также пункты появления (зоны, в которых персонаж появляется и исчезает). Эту информацию можно указать отдельно для каждой стадии сюжета, что позволяет управлять поведением персонажа на протяжении всей игры.
Чтобы создать новую стадию сюжета, щелкните правой кнопкой мыши по серому фону и выберите пункт Добавить стадию сюжета (Add Story Phase) (рис. 3). Прежде всего, необходимо присвоить этой стадии имя. Сделать это можно в самом первом столбце Стадия сюжета (Story Phase). Имя должно быть простым и понятным, так как вам придется указывать его каждый раз, когда вы захотите сменить сюжетную стадию.
В следующем столбце укажите стадию появления (подразделение сюжетной стадии). Количество стадий появления не ограничено. Чтобы создать новую стадию появления, щелкните правой кнопкой мыши по белому полю в столбце Стадия появления (Spawn Phase). В меню выберите пункт Добавить стадию появления (Add Spawn Phase). Эти стадии, как правило, используются для распределения действий по времени суток.
Следующий шаг – установить временной промежуток, во время которого персонаж будет выполнять определенные действия (каждой стадии появления присваиваются свои действия). В столбце Время начала (Start time) указывается время начала стадии появления, а в столбце Время конца (End Time) – время завершения стадии появления. Если хотите, чтобы данный персонаж постоянно находился в одной стадии появления, установите в обоих столбцах значение 00:00:00. При указании времени учтите, что эти промежутки не могут пересекаться. Персонаж не может одновременно находиться в двух стадиях появления. В столбце Скрипт при появлении (OnSpawn Script) указывается скрипт, выполняемый при каждом появлении NPC в игре. Чтобы добавить скрипт, дважды щелкните по полю в этом столбце и в списке значений укажите нужный скрипт. Каждой стадии появления можно присвоить свой скрипт.
Еще один важный аспект – добавление шаблона персонажа. Чтобы это сделать, дважды щелкните по белому полю в столбце Шаблон (Template). Затем выберите соответствующий файл (созданию шаблонов посвящена соответствующая глава руководства). Каждой стадии появления NPC можно присвоить свой шаблон персонажа, но, чтобы смена была заметна в игре, персонаж сначала должен исчезнуть, а затем снова появиться. Для этого игрок должен выйти из локации и заново войти в нее. В отличие от шаблонов второстепенных персонажей, в шаблоне NPC не указываются файлы диалога. Дело в том, что каждой стадии появления можно присвоить свой диалог (например, ночью персонаж спит и отказывается разговаривать с Геральтом, а днем дает Геральту задание). Чтобы добавить диалог, дважды щелкните по белому полю в столбце Диалоги (Dialogs). Затем выберите нужный файл диалога.
Далее необходимо установить категории появления. Это идентификаторы, которые сообщают NPC информацию, в каком пункте появления персонаж должен появляться или исчезать. Чтобы добавить категорию появления, щелкните правой кнопкой мыши по коричневой ячейке в столбце Категории появления (Spawn Categories). В меню выберите пункт Добавить категорию (Add Category). Затем укажите имя категории. Учтите, что имя категории должно быть идентично категории, созданной в соответствующем пункте появления. Каждой стадии появления NPC можно присвоить неограниченное количество категорий.
Затем выберите действия (другое название – операции), которые NPC будет выполнять во время данной стадии появления. Действия – набор анимационных роликов, воспроизводимых для определенного персонажа в соответствующий момент времени. Чтобы добавить действие, щелкните правой кнопкой мыши по коричневому полю в столбце Список действий (Action List). В контекстном меню выберите пункт Добавить действие (Add Action). Далее найдите нужное действие и дважды щелкните по нему. Имя выбранного действия появится в столбце Имя действия (Action Name). В столбце Вероятность (Probability) указывается процентная вероятность того, что персонаж выполнит именно это действие. Добавив все необходимые действия, удостоверьтесь, что сумма всех значений в этом столбце составляет 100 (рис. 5). В следующем столбце Цикл действий (Actions Looped) всегда выбирайте значение True. В противном случае, персонаж выполнит действие, после чего отправится к своему пункту выхода и исчезнет из игры. Дважды щелкните по белому полю в столбце Цикл действий (Actions Looped) и выберите значение Yes.
В столбце Список зон (Region List) для каждой стадии появления указываются зоны (идентификаторы областей действий). Эти зоны сообщают NPC, какие действия необходимо выполнить в той или иной области действий (разумеется, в списке действий этой области должны быть указаны те же самые действия). Чтобы создать новую зону, щелкните правой кнопкой мыши по коричневому полю в столбце Список зон (Region List). В меню выберите пункт Добавить зону появления (Add Spawn Region). Введите имя зоны. Оно должно быть идентично имени указанной области действий.
Пример файла NPC[]
В качестве примера рассмотрим файл Пата, сына каменщика (рис. 6).
Для Пата предусмотрены две сюжетные стадии: a4_default и a4_ally. Первая сюжетная стадия включает в себя четыре стадии появления: work (работа), dinner (обед), work (работа) и sleep (сон). Как видите, имена соответствуют действиям, которые будет выполнять Пат на каждой стадии. Сюжетная стадия a4_ally включает в себя только одну стадию появления fields (поля). Теперь подробнее рассмотрим отдельные стадии.
Первая стадия work длится с 07:30 до 12:30. В этот период Пату присвоен шаблон q4014_pat и диалог cn_pat01. Пат появляется в пункте q4014_bridge, то есть у моста, который он строит со своим отцом.
Взглянув на список действий, вы увидите, что они действительно относятся к работе. Действие w_h_fixing – анимация для ударов молотком. Вероятность выполнения именно этого действия – 50%. Другими словами, примерно половину времени с 07:30 до 12:30 Пат будет бить по чему‐нибудь молотком в одной из областей действий (в зоне q4014_bridge), которой присвоено действие w_h_fixing. В оставшееся время Пат будет выполнять следующие действия: w_h_tired1, w_h_tired2, w_h_tired3 (усталость), w_h_loot (Пат наклоняется и подбирает что‐то с земли) и w_h_lookaround (осматривается). Во время следующей стадии появления (с 12:30 до 14:30) Пат будет обедать неподалеку от своего рабочего места. В 19:30 Пат отправится к пункту выхода, так как его следующей стадии появления присвоена другая категория (q4014_home), пункт появления которой находится в доме Пата. С 19:30 до 07:30 Пат будет со 100% вероятностью выполнять действие w_h_sleep. Действие будет выполняться в области действий зоны q4014_home, которая находится в кровати Пата. В 07:30 Пат исчезнет из дома и появится у моста, где цикл начнется заново.
Если вы выполнили задание каменщика и в качестве награды выбрали помощь Пата в полях (он отличный лучник), сюжетная стадия Пата сменится с a4_default на a4_ally. Она включает в себя одну стадию появления, которая длится целые сутки. При появлении (то есть в тот момент, когда игрок появляется на поле) запускается скрипт q4014_boylfw. Он заставляет Пата следовать за ведьмаком. Поэтому этой стадии не присвоены ни действия, ни зоны. Они Пату просто не нужны. Вы же не хотите, чтобы он выполнял какие‐либо действия в каких бы то ни было областях действий. Вам нужно лишь, чтобы он повсюду следовал за Геральтом.
СТАТЬИ | |
---|---|
С чего начать | |
• Первые шаги в Д'жинни • Интерфейс • Основы написания скриптов • Создание квеста •
• Создание файла NPC • Создание новых персонажей • Как создать образ монстра • Активация системы появления • Настройка NPC в игре • • Создание кузницы • Создание места отдыха • Создание магазина • Создание хранилища вещей • • Создание переходов между локациями • Размещение объектов в локациях • | |
• Д'жинни •
• С чего начать • Базовые статьи • Модули • Персонажи • Диалоги • Квесты • Запуск и тестирование игры • Ролики • • Скрипты • Приложения • Модели персонажей • Форматы файлов • |