Учебный курс Bethsoft. GECK. Население: чудовища и НИП.
Содержание. |
Введение.
Это руководство охватывает основы размещения нивелирующих списков для генерирования противников, использования патруля и поведение в песочнице.
В этой части руководства считается, что у вас уже имеется полностью законченная и работоспособная нависеть. Вы можете, если необходимо, загрузить учебный плагин из предыдущего раздела и работать с ним.
О новой Нивелирующей системе.
Некоторые пользователи возможно уже близко знакомы с принятой в TES4: Oblivion нивелирующей системой.В то время как в основном они схожи, есть несколько ключевых различий, которые нужно усвоить.
- Encounter_Zone - дуэльная зона позволяет разработчику создавать минимально различные уровни для определённой области. Например, если игрок второго уровня оказался в Дуэльной зоне с минимальным уровнем равным 10, то нивелирующий список в Зоне будет генерировать персонажей как если бы игрок был 10 уровня.
- No Recalculation - уровень этой зоны будет установлен постоянным как только игрок войдёт в неё в первый раз. Это означает, что раз игрок попал внутрь, генерируются персонажи в соответствии с нивелирующим списком и никогда не сбрасываются или усложняются.
- Thin Leveled Lists - в отличие от Oblivion, в Fallout 3 большинство нивелирующих списков населены противниками с очень малым количеством уровней. В качестве примера давайте взглянем на нивелирующий список lvlMirelurk. Заметим, что в списке доступны только три типа созданий mirelurk (болотник). Характеристики этих чудовищ не меняются в зависимости от прокачки игрока. Переход в трудные противники отображается визуально и статистически.
Уровень Название создания Идентификатор создания 1 Mirelurk CrMirelurk1 9 Mirelurk Hunter CrMirelurk2 16 Mirelurk King CrMirelurk3King В следствии этого, несмотря на то что Дуэльная зона может выглядеть как зона для созданий 10 уровня, она понижается до наиболее близкого девятого уровня Mirelurk Hunter.
Добавление простого Неигрового персонажа.
Видеокурс на YouTube. Патруль неигрового персонажа.
Для каждого врага предпочтительнее создавать и размещать уникальные, свойственные ему засады. Для размещения враждебных неигровых персонажей (НИПов) мы используем нивелирующий список объектов. Коротко, нивелирующий список, случайным образом генерирует один из предопределённых в списке противников, основываясь на сочетании текущего уровня игрока и Дуэльной зоной, связанной с компонентом.
Размещение Нивелирующей метки неигрового персонажа.
Сначала используем lvlRaiderGun, который генерируется как бандит с ружьём. Мы можем не беспокоиться о типе ружья, или о снаряжении бандита, половом признаке или других зависимых деталях. Вы можете обнаружить этот объект через фильтр или найдя вручную через список Actors>NPC в Окне объектов.
Как нашли lvlRaiderGun, перетащите новую ссылку внутрь Окна отрисовки. Появится новая метка в виде белой M со стрелкой сквозь неё, как на иллюстрации ниже.
Параметр управляющий трудностью используется для установки относительной трудности уровня Дуэльной зоны. TПоменяем значение метки по умолчанию Параметр управляющий трудностью используется для установки относительной трудности уровня Дуэльной зоны. TПоменяем значение метки по умолчанию "None" на "Easy". Чтобы изменить параметр управляющий трудностью, двойным щелчком по маркеру пройдите в Leveled Actor Tab (Закладка нивелированного персонажа). В закладке, сманеврируйте к выпадающему меню Level Modifier (Модификатор уровня) и выберите Easy (Лёгко). Для завершения изменений нажмите OK.
Управляющий параметр трудностью со значением Easy (Легко), как это было выбрано в нивелирующем списке -- особенный. Это означает большое разнообразие противников, в особенности для высокоуровневых игроков. На практике, примерно 50% нивелирующего списка уставлено в "Easy". Узнать больше информации об управляющих параметрах трудностью можно здесь.
После изменения управляющего параметра трудностью в значение Easy, вы заметите, что цвет метки стал зелёным. Каждая трудность изображается разным цветом, так что вы можете с одного взгляда оценить трудность местности. Цвет метки задаётся на основе установленного уровня трудности.
Параметр управляющий трудностью | Цвет метки |
None (Не определён) | Белый |
Easy (Лёгкий) | Зелёный |
Medium (Средний) | Жёлтый |
Hard (Трудный) | Оранжевый |
Boss (Шеф) | Красный |
Now that we've placed our first leveled list in Vault 74, we can concern ourselves with how that raider is going to behave when spawned.
Поведение неигрового персонажа.
Поведение НИП изначально прописано в "AI Packages" (Пакетах ИИ), с очень хорошо настраиваемым набором целей и задач. Чтобы сэкономить время на создании и настройке чёткого, надёжного поведения, могут быть использованы пакеты.
GECK вводит новые возможности, которые позволяют нам быстро определить поведение НИП подобно этому бандиту. Это пакеты поведений общего патруля и песочницы. Спасибо общим пакетам, которые включают предопределённые значения для большинства простых вражеских нивелирующих списков, что позволяет настроить простые поведения даже без непосредственного редактирования пакета.
Чтобы получить дополнительную информацию о настройке поведения НИП, проследуйте по ссылкам ниже.
Создание Патруля.
Патруль — это набор взаимосвязанных меток установленных в игровом мире. НИП в патруле перемещается вперёд до тех пор пока движение не прервёт вступление в схватку или другая команда ИИ. Патрульные путевые точки могут настраиваться путём включения информации, такой как проигрываемая анимация или время ожидания до возобновления движения.
Связывание Зависимостей.
Для нашего простого патруля, нам потребуется НИП и последовательность точек, между которыми пройдёт патруль. Чтобы задать патрульный маршрут, расположим последовательность "xMarkerHeading" ире и соединим их друг за другом. Во-первых, нужно перетащить метку "xMarkerHeading" из Окна объектов (через фильтр или находится в World Objects>Static) и разместить около lvlRaiderGun, созданного нами ранее.
Метка lvlRaiderGun не считается патрульно точкой. Метки, которые вы используете для создания маршрута, должны быть соединены друг с другом. НИП может быть связан с какой-нибудь другой одной меткой в патрульном маршруте, и начнёт патрулирование из ближайшей точки от места генерации персонажа.
Вы можете заметить объект в Списке объектов, называющийся "xMarker". Отличие его от "xMarkerHeading" только в графическом отображении. Последний, как правило, определяется как направление НИП, потому что треугольный выступ впереди треугольника представляет собой направление лица стоящего в той местности НИП.
Теперь, когда у нас есть точка и бандит, пришло время соединить
их вместе. Двойным щелчком по метке lvlRaiderGun вызовите диалоговое
окно "Reference Properties" и пройдите на закладку "Linked
Ref". Нажмите кнопку "Select Reference in Render
Window" (Выбрать Ссылку в Окне отрисовки). Диалог свернётся и
курсор примет вид перекрестия в круге .
За тем, наведите мышь на xMarkerHeading. Цвет курсора должен
измениться на белый . Двойным щелчком вызовите диалог
Reference Properties. Заметьте, что XmarkerHeading теперь в поле
Reference (Ссылка), а Vault74a в поле Компонента. Нажмите OK. Выбранные
связанные ссылки выглядят как тонкая стрелка. Это показывает, что между
стрелками есть связь. Выберите Нивелирующий список и опять сравните его
с Рис. 1б ниже.
Неустойчивые ссылки не могут быть выбраны. Сначала вы должны сделать объект устойчивой ссылкой.
xMarkers и XmarkerHeadings устойчивы по умолчанию. Чтобы быстро связать ссылки, используйте комбинацию клавиш-акселераторов "Shift+Q" и двойного щелчка на желаемой ссылке, которую нужно связать с текущим выбранным объектом.
Мы должны сказать бандиту сколько ему стоять в первой патрульной связанной путевой точке до начала движения. Делается это двойным щелчком по xMarkerHeading. Так мы настроим время пребывания бандита в точке во время своего патрулирования.
Двойной щелчок по метке xMarkerHeading откроет Reference Properties (Свойства Ссылки). Выберите закладку "Patrol Data" как показано на рис. 2в. ниже. Чтобы сделать поле "Idle Time" доступным, установите флажок около Patrol Data. Для этого примера мы должны установить таймер на три секунды. Установите эти данные, нажмите OK и двигаемся дальше.
Создание простого Патруля.
В своей основе, Патрулю нужны как минимум две точки, так что давайте создадим немного больше объектов xMarkerHeading и свяжем их вместе. НИП может связаться с какой-нибудь точкой на патрульном маршруте, так что мы можем сейчас оставить его в покое.
Данные патруля продолжают существовать при дублировании по "Ctrl+D", так что это сэкономит время на установку следующих за первой меток, что предпочтительнее, чем каждый раз перетаскивать новый объект.
Создайте более трёх объектов xMarkerHeading там, где вам хотелось бы чтобы этот бандит патрулировал. Свяжите каждый новый xMarkerHeading с предыдущим, используя похожие процедуры для связывания lvlRaiderGun с нашим первым xMarkerHeading. Выбранные нивелирующий список и четыре маркера должны показывать в последовательном порядке связывающие их всех стрелки из тонких линий.
Патруль изображённый на рис. 2а, это патруль типа "пинг-понг". Так как первая и последняя точки патрулирования рассоединены, бандит будет ходить от первой точки к четвёртой и обратно.
Если у нас есть соединённая первая и последняя точки, патрулирование будет идти по кругу, проход от первой точки к четвёртой, а за тем возврат к первой. На Рис. 2б. показан пример патруля по кругу, состоящего из четырёх точек.
Создание патруля с применением меток работы вхолостую.
Сейчас сделано так, что наш НИП будет приостанавливаться на каждом xMarkerHeading и стоять на месте пока таймер не завершит отсчёт. Мы можем оживить наш патруль, использовав чуточку "меток работы вхолостую", взамен xMarkerHeading's. Когда мы заменим xMarkerHeading на метки работы вхолостую, бандит достигнет точки и воспроизведёт одну из анимаций, перечисленных в метке, вместо простого стояния возле неё.
Чтобы просмотреть список существующих меток работы вхолостую, в Окне объектов войдите в Miscellaneous>Idle Marker (Разное>Метка работы вхолостую), как показано на иллюстрации рис. 3а. Может быть вам захочется ввести префикс "default" (по умолчанию) в поле фильтра, чтобы скрыть метки работы вхолостую, созданные для применения в особенных случаях.
Метки работы вхолостую согласованы с типом НИП/создания, так как не каждый НИП может воспроизвести любую анимацию. Например, deathclaw (смертокогт) обладает уникальной анимацией, так что мы должны использовать DeathClawIdleMarker.
Одно важное замечание при работе с метками работы вхолостую: по умолчанию, у них нет постоянных связей. Чтобы соединить их в патруль, вначале вы должны пометить их как постоянные. Дважды щёлкните по метке работы вхолостую, откроется диалог Reference Properties (Свойства ссылок) и, установите флажок у Persistent Reference (Постоянная ссылка) снизу окна. Если вы не можете найти где это, обратитесь к рис. 3б. ниже.
Единожды установив флажок, вы можете просто связывать их подобно тому, как мы делали выше с метками xMarkerHeading. Ниже, на Рис 3б. показан пример установки патруля, использующего исключительно метки работы вхолостую, из готового плагина.
Если время бездействия для выбора и воспроизведения НИП/созданием анимации установлено достаточно малым, то не имеет смысла в патруле применять метки работы вхолостую. Кода вы захотите сделать прохождение вашего патруля через специальные точки и не захотите делать в них задержку, просто используйте xMarkerHeading без ждущего таймера.
Настройка песочницы.
У бандита, которого мы поставили, есть и другое предопределённое поведение, которое может нам пригодиться — поведение в песочнице.
Поведение в песочнице — это основной пакет который сообщает НИП блуждать по сконструированной области и взаимодействовать с каким-нибудь подходящим близким объектом. Давайте добавим в песочницу главной комнаты нашего плагина двух бандитов.
На чертеже создайте новый (или дублируйте уже существующий) vlRaiderGun. Чтобы изменить походку, давайте добавим "lvlRaiderMelee" в качестве второго. LvlRaiderMelee очень похож на lvlRaiderGun за исключением характеристик ближнего боя.
Хорошая мысль, добавить в группу противников одного со специфическими навыками боя. Сочетание различных боевых характеристик противников создаёт ситуацию в которой игроку нужно использовать окружение с умом.
Большинство нивелирующих списков наделяют НИПов несколькими разновидностями оружия. Наиболее широко распространенные: Рукопашная, Винтовки и Особенное. Нивелирующий список с пометкой 'Special' обычно генерирует НИПа с огнемётом, ракетомётом или пулемётом с вращающимся блоком стволов.
Пока мы не связали бандитов с чем-нибудь, по умолчанию, они будут включены в песочницу. Однако, без обстановки или меток работы вхолостую для взаимодействия, ваш НИП будет просто бродить по местности или стоять и ничего не делать.
Давайте добавим несколько предметов обстановки и понаблюдаем как бандиты будут их обходить. На Рис. 4б изображено несколько предметов обстановки, которые мы можем использовать. Такие как PushUpsMarker, ChairVault01R, WallMarker и Microscope01 и другие с которыми мы можем поэкспериментировать.
Синяя цифра в метке обстановки изображает анимированную позу НИПа, которая будет воспроизводиться во время взаимоденйствия с ней. Это упрощает выравнивание вещей наподобие настенных полок и анимации, которые взаимодействуют с поверхностями/объектами. Если вы не видите эти метки, нажмите "M" для переключения в режим отображения меток геометрии.
Во время отображения части обстановки, вы можете увидеть точку входа в виде одного или более синих цифровых меток. Например, ChairVault01R обязательно нужно расположить в свободную нависетевую область под стоящей цифровой меткой, потому что это сторона, откуда НИПы будут пытаться попасть внутрь объекта.
Если внутри метки обстановки имеется видимый объект, то он появится в игре. Например, расположенная рядом со стулом метка обстановки, так же окажется во внутриигровом мире точно в том же положении. Белые метки и синие цифры не будут показаны в игре, они просто вспомогательные элементы.
Настройка песочницы так же проста как и размещение меток. Во время бесцельного хождения, бандиты взаимодействуют с подходящими объектами в пределах 512 единиц. На Рис. 4в изображён пример настройки комнаты, составленной из гранок, с двумя бандитами и с надписями над метками обстановки.
В песочнице НИПы также могут взаимодействовать с метками работы вхолостую. Тут действуют схожие правила, включая радиус по умолчанию в 512 единиц в котором они должны искать объекты.
Следующая часть руководства в этой серии расскажет о том как населить Убежище 74 Не-НИП элементами, такими как личные вещи, закрывающиеся двери и башенки.