В этом разделе речь пойдет об управлении поведением персонажа и установке времени и места появления персонажа в игре. Система появления персонажей, разработанная создателями «Ведьмака», очень удобна и, что самое главное, отлично организована. Она позволяет задать место и время появления каждого персонажа в игре, а также указать выполняемые персонажами действия.
Благодаря этой системе можно, к примеру, создать персонажа, который появится в кузнице в 07:00 и будет оставаться там до 15:00, занимаясь созданием мечей и доспехов. В 15:00 этот же персонаж отправиться в таверну, чтобы выпить и сыграть в покер. В 20:00 он покинет таверну и отправится домой спать. На следующее утро в 07:00 он встанет и снова отправится в кузницу. Возможности практически безграничны.
Как мы уже говорили в начале этой главы, персонажей «Ведьмака» можно разделить на 3 условные группы: NPC, независимые или второстепенные персонажи (такие, как городские жители, торговцы или разбойники) и монстры. Мы начнем с NPC.
NPC[]
Для NPC задается имя; индивидуальные характеристики; места, где персонаж проводить время на разных стадиях игры; диалоги в определенных ситуациях и т. д. Другими словами, такой персонаж является уникальным. Если его убить, больше он в игре не появится. Системы появления NPC несколько отличаются от систем появления других персонажей (второстепенных персонажей и монстров).
Для начала я опишу процесс создания системы появления NPC. В нашем случае NPC – это Зигфрид, и данную систему появления мы создаём для него. В меню Файл (File) выберите Создать ‐> Основной персонаж (.npc) (New ‐> Story NPC (.npc)).
Откроется окно Новый основной персонаж (new story npc).
Список достаточно длинный, поэтому для его просмотра воспользуйтесь полосой прокрутки в нижней части окна. Окно разделено на несколько столбцов. Мы обсудим все столбцы по порядку и способы добавления новых записей.
Примечание (Comment)[]
В это поле вы можете ввести своё примечание. В игре они не используются и служат только для информационных целей. Сюда вы можете ввести любой текст, например краткое описание персонажа. Чтобы ввести текст, дважды щелкните по белому полю рядом со словом Примечание (Comment).
В случае Зигфрида можете ввести сюда «Зигфрид – рыцарь, работодатель» (Zygfryd – zakonnik, zleceniodawca). Затем нажмите клавишу [Enter].
Стадия сюжета (Story Phase)[]
Действия персонажа зависят от стадии сюжета. С помощью скриптов или заданий можно сменить сюжетную стадию. Это в свою очередь приведет к смене поведения персонажа (если для персонажа определено несколько стадий). В каждой сюжетной стадии необходимо задать действия, которые будет выполнять персонаж, а также идентификаторы пункта появления. Более подробно пункты появления и области действии описаны в отдельных главах этого руководства.
Для каждого NPC можно создать неограниченное количество стадий сюжета. В каждой стадии можно указать выполняемые персонажем действия, идентификаторы пункта появления и так далее. Таким образом, поведение персонажа можно настроить для каждой стадии игры. Чтобы добавить новую сюжетную стадию, щелкните правой кнопкой мыши по столбцу Стадия сюжета (Story Phase).
В контекстном меню выберите пункт Добавить стадию сюжета (Add Story Phase).
Будет создана новая стадия сюжета.
Для начала присвойте новой сюжетной стадии имя. Это имя должно быть простым и интуитивно понятным, так как оно понадобится при каждой смене сюжетных стадий персонажа.
Так как в нашем случае Зигфрид даёт Геральту задание, введите в это поле слово zadanie (zlecenie) и нажмите клавишу Enter.
Стадия появления (Spawn Phase)[]
Следующий шаг – создание стадии появления. Эти стадии в целом отвечают за разные части суток, в которые персонаж выполняет действия. Каждая стадия сюжета может содержать несколько стадий появления. Чтобы создать новую стадию появления, щелкните правой кнопкой мыши по полю в столбце Стадия появления (Spawn Phase).
В контекстном меню выберите пункт Добавить стадию появления (Add Spawn Phase).
Будет создана новая стадия появления. Обратите внимание, что в сюжетной стадии zadanie появилась новая строка.
Сюжетная стадия zadanie в настоящий момент содержит две стадии появления. Так как в нашем случае у Зигфрида будет только одна такая стадия, вторую можно удалить. Для этого щелкните правой кнопкой мыши по стадии появления, которую нужно удалить. Удалить стоит вторую стадию, так как мы только что ее создали. Щелкните правой кнопкой мыши по полю в столбце Стадия появления (Spawn Phase).
В контекстном меню выберите пункт Удалить стадию появления (Delete Spawn Phase).
Ненужная стадия появления была удалена. Каждая новая сюжетная стадия уже содержит одну стадию появления. Давайте присвоим ей имя. Для этого щелкните по полю в столбце Стадия появления (Spawn Phase).
Введите ozhidanie (oczekiwanie) и нажмите клавишу Enter. Таким образом, мы создали сюжетную стадию zadanie (zlecenie) с одной стадией появления ozhidanie (oczekiwanie).
Время начала (Start time)[]
Наш следующий шаг – установить время выполнения действия. Для этого в столбце Время начала (Start time) необходимо указать время начала данной стадии появления. А в столбце Время конца (End Time) указывается время конца данной стадии появления. В этот временной период NPC будет выполнять действия, которые мы назначим чуть позже. Чтобы ввести время начала, дважды щелкните по полю в столбце Время начала (Start time).
Значение можно ввести с клавиатуры или с помощью стрелок, расположенных с правой стороны ячейки.
Оставьте здесь значение 00:00:00.
Время конца (End Time)[]
В этом столбце указывается время конца данной стадии появления. По умолчанию стоит значение 06:00:00. Если мы оставим это значение, Зигфрид появится в игре в 00:00:00 и исчезнет в 06:00:00, но это нас не устраивает. В нашем случае Зигрид должен быть в игре постоянно, днем и ночью. Для этого необходимо установить время начала и время конца стадии появления на 00:00:00. Дважды щелкните по полю в столбце Время конца (End Time).
Введите 00:00:00 и нажмите клавишу [Enter].
Учтите, что разные стадии появления не могут пересекаться по времени, так как один и тот же персонаж не может одновременно находиться в разных стадиях появления.
Скрипт при появлении (OnSpawn Script)[]
В этом столбце указывается скрипт, выполняемый при каждом появлении NPC в игре. В случае Зигфрида устанавливать скрипт не нужно. Однако если вы хотите назначить скрипт, дважды щелкните по полю в столбце Скрипт при появлении (OnSpawn Script).
Откроется окно выбора (Select).
В этом окне перечислены все скрипты, доступные в игре. Древовидная схема списка отображает структуру каталога Data\Scripts (где хранятся все скрипты). Чтобы открыть дерево, щелкните по знаку плюса.
Чтобы закрыть ветвь, щёлкните по знаку минуса.
Дважды щелкните по нужному скрипту. Например, Зигфриду можно назначить скрипт 2city.
После того, как вы дважды щелкните по скрипту 2city, он появится в поле в столбце Скрипт при появлении (OnSpawn Script).
Чтобы удалить скрипт, дважды щелкните по полю в столбце Скрипт при появлении (OnSpawn Script). Но на этот раз в окне выбора дважды щелкните по пункту <Удалить> (<Delete>) в верхней части списка.
Скрипт 2city будет удалён. Обратите внимание, что каждой стадии появления можно присвоить свой скрипт.
Шаблон (Template)[]
Ещё один важный шаг – добавить шаблон персонажа. Именно здесь указывается шаблон персонажа, который мы создали чуть ранее. Процесс назначения шаблона аналогичен процессу назначения скриптов. Дважды щелкните по полю в столбце Шаблон (Template). Откроется окно выбора (Select).
На этот раз в окне перечислены все шаблоны персонажей, доступные в игре. Древовидная схема шаблонов отображает структуру каталога Data\Templates. Шаблон Зигфрида сохранен в каталоге Data\Templates\Characters\NPC. Найдите шаблон nash_zygfryd (nasz_zygfryd) и дважды щелкните по нему.
Шаблон nash_zygfryd (nasz_zygfryd) назначен на сюжетную стадию zadanie.
После того, как шаблон персонажа назначен в системе появления персонажа, удалить его невозможно. Можно лишь заменить его другим шаблоном. Каждой стадии появления для NPC можно присвоить разные шаблоны персонажа, но чтобы смена была заметна в игре, персонаж сначала должен исчезнуть, а затем снова появиться. Для этого от игрока может потребоваться выйти из локации и заново войти в нее.
Диалоги (Dialogs)[]
Созданию диалогов посвящена отдельная глава этого руководства. Диалог – разговор между двумя и более персонажами. Зигфриду необходимо назначить диалог, но это мы сделаем позже. А теперь я лишь расскажу вам, как это сделать. Процедура аналогична добавлению скрипта или шаблона персонажа. Дважды щелкните по полю в столбце Диалоги (Dialogs).
Откроется окно выбора (Select).
В окне перечислены диалоги. Древовидная схема списка отображает структуру каталога Data\Dialogues (где хранятся все диалоги игры). Чтобы добавить диалог, найдите его в списке и дважды щелкните по нему. Например, можете назначить Зигфриду диалог cn_boy01.
Выбранный диалог появится в поле в столбце Диалоги (Dialogs).
Так как созданием собственных диалогов мы займемся позже, дважды щелкните по полю в столбце Диалоги (Dialogs) и в окне выбора (Select) выберите пункт <Удалить> (<Delete>).
Диалог будет удалён. Каждой стадии появления для NPC можно присвоить разные файлы диалогов. Именно поэтому таким персонажам не присваивают файлы диалогов в шаблоне персонажа.
Категории появления (Spawn Categories)[]
Следующий столбец – категории появления. Это идентификатор, который сообщает NPC информацию, в каком пункте появления персонаж должен появляться или исчезать. Чтобы добавить категорию появления, щелкните правой кнопкой мыши по полю в столбце Категории появления (Spawn Categories).
В контекстном меню выберите пункт Добавить категорию (Add Category).
Будет создана новая категория появления. Чтобы присвоить ей имя, дважды щелкните по полю, которое только что появилось в столбце Категории появления (Spawn Categories).
В случае Зигфрида присвоим категории имя spawn_zygfryd. Введите имя и нажмите клавишу [Enter].
Чтобы Зигфрид мог впоследствии появиться в игре, необходимо создать пункт появления с тегом spawn_zygfryd. Более подробно пункты появления описаны в отдельной главе этого руководства.
Каждая стадия появления для ключевых персонажей игры может содержать неограниченное количество категорий появления. Добавим Зигфриду еще одну категорию. Щелкните правой кнопкой мыши по полю в столбце Категории появления (Spawn Categories). В контекстном меню выберите пункт Добавить категорию (Add Category). Появится следующее поле.
Правда, в нашем случае вторая категория появления не нужна, поэтому ее можно удалить. Для этого щёлкните правой кнопкой мыши по соответствующему полю в столбце Категории появления (Spawn Categories).
В контекстном меню выберите пункт Удалить категорию (Delete Category).
Список действий (Action List)[]
В этом столбце указываются все действия, которые будет выполнять Зигфрид в данной стадии появления. Это наборы анимационных роликов, воспроизводимых для определенного персонажа в соответствующий момент. Чтобы добавить действие, щелкните правой кнопкой мыши по полю в столбце Список действий (Action List).
В контекстном меню выберите пункт Добавить действие (Add Action).
Откроется окно выбора (Select).
В этом окне вы увидите обширный список действий. Найдите пункт w_h_pray (заставит Зигфрида молиться) и дважды щёлкните по нему.
Выбранное действие появится в столбце Имя действия (Action Name).
В столбце Вероятность (Probability) появилось значение 50%. Это означает, что для нашего персонажа вероятность выполнить действие w_h_pray в определенный момент составляет 50% по сравнению со всеми другими действиями. Учтите, после того, как вы укажете все действия, которые должен выполнить персонаж за данную стадию появления, сумма всех значений в этом столбце должна составлять 100%. Предположим, вероятность выполнения действия w_h_pray для Зигфрида должна составлять всего 5%. Чтобы изменить значение, дважды щелкните по полю в столбце Вероятность (Probability).
Введите значение 5 и нажмите клавишу [Enter]. Знак процентов вводить необязательно, так как он добавляется автоматически. Теперь добавим ещё одно действие. Еще раз щелкните правой кнопкой по столбцу Имя действия (Action Name) в строке сюжетной стадии zadanie. На этот раз, когда откроется окно выбора (Select), щелкните по крестику, чтобы закрыть окно.
Будет добавлено пустое действие.
Естественно, это поле нельзя оставлять пустым. Щёлкните по пустому полю в столбце Имя действия (Action Name), чтобы открыть окно выбора (Select) со списком действий.
Снова откроется окно выбора. Найдите в списке пункт w_h_alarmed (заставляет Зигфрида тревожно осматриваться) и дважды щёлкните по нему.
Выбранное действие появится в столбце Имя действия (Action Name).
Дважды щелкните по ячейке в столбце Вероятность (Probability) рядом с действием w_h_alarmed, установите значение на 10% и нажмите клавишу [Enter].
Добавьте Зигфриду еще три действия: all_walkto1 (вероятность 35%), all_walkto2 (вероятность 35%) и w_h_bored (вероятность 15%). Вы уже знаете, как это сделать. В целом, список действий Зигфрида должен выглядеть следующим образом.
Запомните, что общая сумма значений в столбце Вероятность (Probability) должна составлять 100%. Появившись в игре, Зигфрид будет ходить с места на место, время от времени будет вставать на колени и молиться, оглядываться по сторонам или потягиваться от скуки. Если хотите удалить то или иное действие, щелкните по нему правой кнопкой мыши и в контекстном меню выберите пункт Удалить действие (Delete Action).
Цикл действий (Actions Looped)[]
При установке значения True в этом столбце действия, перечисленные в столбце Имя действия (Action Name) будут выполняться циклично. То есть Зигфрид будет постоянно выполнять указанные действия. При выборе значения False Зигфрид выполнит каждое действие один раз, а затем отправится к пункту выхода. Чтобы установить цикличный повтор действий, дважды щелкните по полю в столбце Цикл действий (Actions Looped).
В меню выберите пункт Да (Yes).
Цикл действий будет включен.
Чтобы изменить значение, щелкните правой кнопкой мыши по ячейке в столбце Цикл действий (Actions Looped) и выберите в меню пункт Нет (No).
Список зон (Regions List)[]
Зона появления – это просто идентификатор для области действий (более подробно области действий описываются в отдельной главе данного руководства). Зона появления передает персонажу информацию, какие действия необходимо выполнить в той или иной области действий. Учтите, что в списке области действий, в которой персонаж должен что‐то сделать, должны быть указаны идентичные действия. Чтобы добавить новую зону появления, щелкните правой кнопкой мыши по полю в столбце Список зон (Regions List).
В контекстном меню выберите пункт Добавить зону появления (Add Spawn Region).
Будет создана новая зона появления.
Теперь присвоим ей имя. Дважды щелкните по полю, которое только что было добавлено в столбец Список зон (Regions List). Введите action_zygfryd и нажмите клавишу [Enter].
Учтите, что имя области действия, в которой Зигфрид должен выполнять свои действия, должно быть идентично имени зоны появления. В каждой стадии появления можно создать любое количество зон появления. Чтобы добавить еще одну зону, щелкните правой кнопкой мыши по столбцу Список зон (Regions List) и выберите в меню пункт Добавить зону появления (Add Spawn Region). Появится ещё одно поле.
Правда, в нашем случае вторая зона появления не нужна, поэтому щелкните по ней правой кнопкой мыши и выберите в контекстном меню пункт Удалить зону появления (Delete Spawn Region).
Вот практически и всё, что касается создания систем появления для ключевых персонажей игры. Можно создать одну систему появления для всех основных NPC, но так делать не рекомендуется. Лучше всего создать отдельную систему параметров для каждого персонажа.
Сохранение[]
Теперь сохраним систему появления. Для этого в меню Файл (File) выберите пункт Сохранить как... (Save As...).
Откроется стандартное окно Windows для сохранения файлов. Сохраните параметры появления Зигфрида в каталог Templates\NPCSpawn. Перейдите в этот каталог, введите имя файла nash_zygfryd (nasz_zygfryd) и нажмите кнопку Сохранить. Не забудьте, что имя файла должно содержать не более 16 символов. В противном случае редактор D’jinni просто не увидит этот файл. Убедитесь, что сохраняете файл в формате npc.
Если в окне указан другой тип файла, это, возможно, означает, что вы случайно пытаетесь сохранить содержимое другого открытого окна. Прежде, чем сохранять шаблон персонажа, убедитесь, что у вас активно окно Новый основной персонаж (new story npc). Если оно не активно, его заголовок будет отображаться серым цветом.
Любой другой цвет заголовка означает, что данное окно является активным.
Звездочка перед текстом в заголовке окна означает, что последние изменения в этом файле не были сохранены. Как и в случае с шаблонами, вместо пункта Сохранить как... (Save As...) можно выбрать в меню Файл (File) пункт Сохранить нового основного персонажа (Save new story npc). Таким образом вы сможете сохранить файл непосредственно в модуль. Но в данном руководстве этот способ не рассматривается.
Второстепенные персонажи и монстры[]
Теперь перейдем к системам появления для остальных персонажей, то есть для второстепенных персонажей и монстров. Начнём с Юза. Задача этого персонажа – играть в покер с Геральтом. Чтобы создать систему появления Юза, выберите в меню Файл (File) пункт Создать ‐> Система появления (.spn) (New ‐> Spawn set (.spn)).
Откроется окно Новая система появления (new spawn set).
Как и при работе с окном Новый основной персонаж (new story npc), в данном случае можете воспользоваться полосой прокрутки в нижней части окна. Это окно также разделено на несколько столбцов. И хотя некоторые столбцы здесь идентичны столбцам окна Новый основной персонаж (new story npc), я расскажу о них еще раз, чтобы процедура создания системы появления была понятнее.
Примечание (Comment)[]
В это поле вы можете ввести свое примечание. В игре они не используются и служат только для информационных целей. Сюда вы можете ввести любой текст, например краткое описание персонажа. Чтобы ввести текст, дважды щелкните по белому полю рядом со словом Примечание (Comment).
В случае Юза можете ввести сюда «Юз — заядлый игрок в покер» (Józek – pasjonata gry w kości), после чего нажмите клавишу [Enter].
Элемент появления (Spawn Entry)[]
Для неключевых персонажей игры не предусмотрены параметры Стадия сюжета (Story Phase) и Стадия появления (Spawn Phase). Дело в том, что таким персонажам это не требуется. Однако параметр Элемент появления (Spawn entry) в определенной степени аналогичен стадии появления. С помощью элементов появления персонажу можно присвоить действия, которые он будет выполнять в разное время суток. Чтобы создать новый элемент появления, щелкните правой кнопкой мыши по столбцу Элемент появления (Spawn Entry).
В контекстном меню выберите пункт Добавить элемент появления (Add Spawn Entry).
Будет создан новый элемент появления.
Чтобы присвоить ему имя, дважды щелкните по полю в столбце Элемент появления (Spawn Entry).
Так как Юз в нашем случае любит играть в покер, просто введите в поле слово poker и нажмите клавишу [Enter].
Чтобы добавить еще один элемент появления, снова щелкните правой кнопкой мыши по столбцу Элемент появления (Spawn Entry) и выберите в меню пункт Добавить элемент появления (Add Spawn Entry). Будет создан второй элемент появления.
Однако второй пункт нам не нужен, поэтому можете его удалить. Щелкните правой кнопкой мыши по полю в столбце Время начала (Start time).
В контекстном меню выберите пункт Удалить элемент появления (Delete Spawn Entry).
Учтите, что в контекстном меню столбца Элемент появления (Spawn Entry) нет пункта Удалить элемент появления (Delete Spawn Entry).
Время начала (Start time)[]
Для независимых (второстепенных) персонажей также необходимо указывать период выполнения действий. Столбцы Время начала (Start time) и Время конца (End Time) аналогичны одноименным столбцам в окне Новый основной персонаж (new story npc). Чтобы указать время начала для элемента появления, дважды щелкните по полю в столбце Время начала (Start time).
Значение можно ввести с клавиатуры или с помощью стрелок, расположенных с правой стороны ячейки.
Оставьте здесь значение 00:00:00.
Время конца (End Time)[]
По умолчанию здесь стоит то же значение, что и в предыдущем случае – 06:00:00. Если оставить это значение, Юз будет появляться в 00:00:00 и исчезать в 06:00:00. Однако в нашем случае необходимо, чтобы и Зигфрид, и Юз присутствовали в игре постоянно, днем и ночью. Как и в случае с настройками для NPC, независимые персонажи будут постоянно присутствовать в игре, если и время начала, и время конца установлено на 00:00:00. Дважды щелкните по полю в столбце Время конца (End Time).
СТАТЬИ | |
---|---|
Персонажи | |
• Введение • Шаблоны • Системы появления • Пункты появления • Области действий • | |
• Д'жинни •
• С чего начать • Базовые статьи • Модули • Персонажи • Диалоги • Квесты • Запуск и тестирование игры • Ролики • • Скрипты • Приложения • Модели персонажей • Форматы файлов • |