HytaleR бета
Блог

Введение в создание поведения NPC

NPC-тророки (Trorks) демонстрируют различные модели поведения в лесу Зоны 1 (Zone 1)

Сегодня мы расскажем о системе скриптов поведения (behavior scripting system) в Hytale и о том, как она позволяет оживлять NPC и существ. Для наглядности мы покажем некоторые аспекты поведения тророков (Trorks) — как они реагируют на игрока, окружение и друг на друга. Разумеется, те же принципы применимы и к другим существам Hytale, и всё это будет доступно для настройки моддерами. Как всегда, все скриншоты и видео в этой статье отражают текущий этап разработки, и детали могут измениться в будущем.

Внимание

Видео недоступно по техническим причинам, в том числе и на официальном сайте, в ближайшее время мы восстановим его из наших архивов

После того как существо спроектировано, а его модель и анимации созданы в Hytale Model Maker, разработчики NPC приступают к оживлению персонажа с помощью системы скриптов поведения.

Система использует JSON-скрипты, которые обращаются к модульным элементам поведения. Они позволяют задать, как NPC воспринимает мир и как реагирует в различных ситуациях. Эти скрипты могут запускать анимации, изменять состояния и многое другое. Простой пример — скрипт, определяющий, убежит ли атакованное существо или попытается защититься. Более сложные скрипты могут заставить NPC преследовать игроков или искать то, что им нравится, — например, костры или еду.

«Мы используем строительные блоки для создания NPC с нуля, — рассказывает разработчик Ioseff Griffith. — У нас есть сенсоры (sensors), с помощью которых NPC интерпретирует окружающий мир и решает, что хочет делать. Затем есть действия (actions) и движения (motions) — так NPC взаимодействует с миром, целью или чем-то ещё, на чём сосредоточен. Мы комбинируем их, чтобы создавать компоненты и шаблоны, из которых можно быстро и легко получать различные варианты».

JSON-скрипт поведения, показывающий настройку состояния тревоги тророка (Trork) с параметрами сенсоров и маяков

В этом примере показан фрагмент скрипта, который заставляет тророков (Trorks) реагировать, когда они замечают игрока. Скрипт обрабатывает несколько элементов этого взаимодействия. Он запускает анимацию «тревоги» (alerted), которая помогает игроку понять, что его заметили. Также он инициирует «маяк» (beacon) — сигнал, оповещающий других тророков в определённом радиусе о присутствии игрока. Точные параметры этого взаимодействия можно тонко настраивать, но общая реализация основана на высокоуровневых шаблонах, общих для большинства NPC.

Такой модульный подход к поведению упрощает создание совершенно новых NPC или существ. «Когда вы пишете скрипт для NPC, не нужно указывать такие вещи, как «взмахнуть мечом» или «переместиться на X блоков вправо»», — объясняет Ioseff. Достаточно просто применить абстрактный компонент вроде «убегать» (flee) или «искать» (seek) — система поведения сама обработает базовые действия.

«На самом базовом уровне проще всего создать NPC, используя существующие шаблоны, — говорит он. — Эти шаблоны состоят из компонентов, которые мы собираем из сенсоров, действий и движений, чтобы легко переиспользовать поведения в разных скриптах». Один из примеров компонента — обнаружение звука, объясняет Ioseff. Он использует комбинацию сенсоров, позволяющих NPC интерпретировать окружение. «Когда вы помещаете нового NPC в мир, он должен уметь справляться с окружением, для которого не был специально запрограммирован, хотя бы в какой-то степени», — добавляет он.

«Важная особенность всей этой системы — высокая переиспользуемость, — говорит разработчик Eric Reinhart. — Легко модифицировать существующие поведения, заменять отдельные части, а также создавать что-то совершенно новое».

«Для тех, кто хочет создавать моды или контент, преимущество в том, что простые изменения делаются легко, — продолжает Eric. — Но система также позволяет моддерам менять всё вплоть до мельчайших деталей».

Вот пример. Добавив несколько дополнительных параметров в скрипт поведения охотника-тророка (Trork hunter), мы можем включить медведей в список существ, которые переводят его в состояние «тревоги» (alert).

Внимание

Видео недоступно по техническим причинам, в том числе и на официальном сайте, в ближайшее время мы восстановим его из наших архивов

Поделиться

Понравилась публикация? Расскажи друзьям!

Скопируй ссылку на статью

✓ Ссылка скопирована!

Обсуждение

Обсудите эту публикацию с другими участниками сообщества:

Похожие публикации