Расширенная настройка ИИ

Материал из CryWiki Russia

Версия от 21:38, 15 июня 2012; DCamer (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Содержание

Введение

Несмотря на широкие графические возможности CryENGINE 2, его красивая графика ещё не делает каждый уровень интересным и правильным с точки зрения дизайна уровней. Crysis не только был технической демонстрацией движка, но также преподносил линейный, в то же время ориантированный на выбор игрока геймплей. Это пособие направлено на повышение знаний дизайнеров об игровой настройке ИИ, и создания расширенных возможностей по управлению единицами ИИ в игре, чтобы приспособить их к любым вариантам дизайна уровней. Это руководство предполагает, что вы владеете эементарными техниками дизайна уровней, такими как триггеры и сценарии flowgraph.

Использование нода Entity:BroadcastEvent в своих целях

Entity:BroadcastEvent - итеративный нод, который может выбрать множество сущносте (на основе их имен, содержащих определенную строку), а затем выполняет событие сущности. Как это может помощь в дизайне уровней? Вместо того, чтобы вручную добавлять все сущности к потоковому графу в любых целях, вы можете просто назвать все ваши сущности по определенному (что надо делать в любом случае ради порядка!), а затем выполнять всё в одном ноде. Это означает, что если вы решите, например, изменить количество врагов в будущем, вы можете просто добавить их с определенными именами и не беспокоиться о их рескриптинге. Теперь давайте посмотрим на пример этого в реальном дизайне уровней.

Появление ИИ

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

Правила наименования

Сначала нам необходимо назвать нашего ИИ таким именем, которые гарантированно будет уникальным. Лично я использую довольно длинную строку, которая соответствует событию на уровне. В данном конкретном случае я использовал CrashSiteAI в качестве префикса для имени сущностей (фактически труперы имеют название CrashSiteAI1 и CrashSiteAI2 соответственно.).

Отключение единиц ИИ при старте

Что произойдет с этими ИИ? Ну, я хочу, отключить их до того момента, пока игрок не вызовет определенное событие, которое в данном случае — вход в ProximityTrigger. Сначала давайте взглянем на необходимые настройки для отключения ИИ при начале игры. Потоковый граф выглядит следующим образом:

EAIS DisableFG.jpg

Мы хотим вызвать событие Disable для труперов. Вы можете просмотреть полный список событий сущности взглянув в разделе «Input/Output» сворачивающейся панели, либо путем добавления сущности в потоковый граф и, просмотром доступных параметров.

Включение по входу в триггер

Теперь нам необходимо вызвать событие Enable когда игрок войдёт в триггер. Потоковый граф делается очень похожим образом.

EAIS EnableFG.jpg

Подробные детали по расширенной настройки ИИ будут в будущем, а пока надеюсь, что это помогло некоторым людям чуть больше понять гибкий дизайн и что это хоть чуть-чуть помогло вашим проектам. :)

EAIS cover.jpg