Д'жинни Вики
Advertisement

Написано Катажиной Кучиньской.

CDPR logo


Что такое NPC?[]

NPC (Non Player Character, неигровой персонаж) – компьютерный персонаж игры. Каждому NPC присвоено определенное имя, характеристики, места (в которых персонаж появляется на различных стадиях игры), реплики (которые персонаж произносит в различных ситуациях) и т. д. Это уникальный персонаж. Если его убивают, он больше не появляется в игре. На рис. 1 отображен NPC Тобиас Хофман, солтыс деревни Темноводье.

B npc 01

Рис. 1. Пример компьютерного персонажа


Создание файла NPC[]

Чтобы создать файл, в котором перечислены все параметры NPC, в меню Файл (File) выберите Создать –> Основной персонаж (New ‐> Story NPC).

B npc 02

Рис. 2. Создание файла с расширением *.npc


В поле Примечание (Comment) введите краткое описание персонажа (например, "Тобиас Хофман, солтыс деревни"). Поведение каждого NPC разделено по стадиям (стадии сюжета). С помощью квестов и скриптов можно производить смену сюжетных стадий NPC, что повлечет за собой перемены в поведении персонажа. Для каждой стадии необходимо указать действия персонажа, идентификаторы областей действий (зоны, в которых персонаж будет выполнять то или иное действие), а также пункты появления (зоны, в которых персонаж появляется и исчезает). Эту информацию можно указать отдельно для каждой стадии сюжета, что позволяет управлять поведением персонажа на протяжении всей игры.

B npc 03

Рис. 3. Создание новой стадии сюжета


Чтобы создать новую стадию сюжета, щелкните правой кнопкой мыши по серому фону и выберите пункт Добавить стадию сюжета (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 можно присвоить неограниченное количество категорий.

B npc 04

Рис. 4. Добавление действия


Затем выберите действия (другое название – операции), которые NPC будет выполнять во время данной стадии появления. Действия – набор анимационных роликов, воспроизводимых для определенного персонажа в соответствующий момент времени. Чтобы добавить действие, щелкните правой кнопкой мыши по коричневому полю в столбце Список действий (Action List). В контекстном меню выберите пункт Добавить действие (Add Action). Далее найдите нужное действие и дважды щелкните по нему. Имя выбранного действия появится в столбце Имя действия (Action Name). В столбце Вероятность (Probability) указывается процентная вероятность того, что персонаж выполнит именно это действие. Добавив все необходимые действия, удостоверьтесь, что сумма всех значений в этом столбце составляет 100 (рис. 5). В следующем столбце Цикл действий (Actions Looped) всегда выбирайте значение True. В противном случае, персонаж выполнит действие, после чего отправится к своему пункту выхода и исчезнет из игры. Дважды щелкните по белому полю в столбце Цикл действий (Actions Looped) и выберите значение Yes.

B npc 05

Рис. 5. Действия и вероятность их выполнения


В столбце Список зон (Region List) для каждой стадии появления указываются зоны (идентификаторы областей действий). Эти зоны сообщают NPC, какие действия необходимо выполнить в той или иной области действий (разумеется, в списке действий этой области должны быть указаны те же самые действия). Чтобы создать новую зону, щелкните правой кнопкой мыши по коричневому полю в столбце Список зон (Region List). В меню выберите пункт Добавить зону появления (Add Spawn Region). Введите имя зоны. Оно должно быть идентично имени указанной области действий.

Пример файла NPC[]

В качестве примера рассмотрим файл Пата, сына каменщика (рис. 6).

B npc 06

Рис. 6. Пример файла NPC


Для Пата предусмотрены две сюжетные стадии: 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 в игре

Создание кузницыСоздание места отдыхаСоздание магазинаСоздание хранилища вещей

Создание переходов между локациямиРазмещение объектов в локациях

Д'жинни

С чего начатьБазовые статьиМодулиПерсонажиДиалогиКвестыЗапуск и тестирование игрыРолики

СкриптыПриложенияМодели персонажейФорматы файлов

Advertisement