Расширенная настройка ИИ
Материал из CryWiki Russia
Alex626 (Обсуждение | вклад) |
DCamer (Обсуждение | вклад) |
||
(2 промежуточные версии не показаны) | |||
Строка 1: | Строка 1: | ||
- | = | + | = Введение = |
- | + | Несмотря на широкие графические возможности CryENGINE 2, его красивая графика ещё не делает каждый уровень интересным и правильным с точки зрения дизайна уровней. Crysis не только был технической демонстрацией движка, но также преподносил линейный, в то же время ориантированный на выбор игрока геймплей. Это пособие направлено на повышение знаний дизайнеров об игровой настройке ИИ, и создания расширенных возможностей по управлению единицами ИИ в игре, чтобы приспособить их к любым вариантам дизайна уровней. Это руководство предполагает, что вы владеете эементарными техниками дизайна уровней, такими как '''''триггеры'' '''и '''''сценарии flowgraph'''''. | |
- | = | + | = Использование нода Entity:BroadcastEvent в своих целях = |
- | + | ||
- | + | '''Entity:BroadcastEvent''' - итеративный нод, который может выбрать множество сущносте (на основе их имен, содержащих определенную строку), а затем выполняет событие сущности. Как это может помощь в дизайне уровней? Вместо того, чтобы вручную добавлять все сущности к потоковому графу в любых целях, вы можете просто назвать все ваши сущности по определенному (что надо делать в любом случае ради порядка!), а затем выполнять всё в одном ноде. Это означает, что если вы решите, например, изменить количество врагов в будущем, вы можете просто добавить их с определенными именами и не беспокоиться о их рескриптинге. Теперь давайте посмотрим на пример этого в реальном дизайне уровней. | |
- | + | == Появление ИИ == | |
+ | В целях этого руководства мы всего лишь применим эффект к двум труперам, но он будет работать на значительно большем количестве групп ИИ, если необходимо. | ||
- | === | + | === Правила наименования === |
+ | Сначала нам необходимо назвать нашего ИИ таким именем, которые гарантированно будет уникальным. Лично я использую довольно длинную строку, которая соответствует событию на уровне. В данном конкретном случае я использовал '''CrashSiteAI''' в качестве префикса для имени сущностей (''фактически труперы имеют название CrashSiteAI1 и CrashSiteAI2 соответственно.''). | ||
- | + | === Отключение единиц ИИ при старте === | |
+ | Что произойдет с этими ИИ? Ну, я хочу, отключить их до того момента, пока игрок не вызовет определенное событие, которое в данном случае — вход в ProximityTrigger. Сначала давайте взглянем на необходимые настройки для отключения ИИ при начале игры. Потоковый граф выглядит следующим образом: | ||
+ | <center>[[File:EAIS DisableFG.jpg]]</center> | ||
+ | Мы хотим вызвать событие '''Disable''' для труперов. Вы можете просмотреть полный список событий сущности взглянув в разделе «Input/Output» сворачивающейся панели, либо путем добавления сущности в потоковый граф и, просмотром доступных параметров. | ||
- | === | + | === Включение по входу в триггер === |
+ | Теперь нам необходимо вызвать событие '''Enable''' когда игрок войдёт в триггер. Потоковый граф делается очень похожим образом. | ||
+ | <center>[[File:EAIS EnableFG.jpg]]</center> | ||
+ | Подробные детали по расширенной настройки ИИ будут в будущем, а пока надеюсь, что это помогло некоторым людям чуть больше понять гибкий дизайн и что это хоть чуть-чуть помогло вашим проектам. :) | ||
+ | <center>[[File:EAIS cover.jpg]]</center> | ||
- | + | [[Category:Синглплеер]] | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + |
Текущая версия на 21:38, 15 июня 2012
Содержание |
Введение
Несмотря на широкие графические возможности CryENGINE 2, его красивая графика ещё не делает каждый уровень интересным и правильным с точки зрения дизайна уровней. Crysis не только был технической демонстрацией движка, но также преподносил линейный, в то же время ориантированный на выбор игрока геймплей. Это пособие направлено на повышение знаний дизайнеров об игровой настройке ИИ, и создания расширенных возможностей по управлению единицами ИИ в игре, чтобы приспособить их к любым вариантам дизайна уровней. Это руководство предполагает, что вы владеете эементарными техниками дизайна уровней, такими как триггеры и сценарии flowgraph.
Использование нода Entity:BroadcastEvent в своих целях
Entity:BroadcastEvent - итеративный нод, который может выбрать множество сущносте (на основе их имен, содержащих определенную строку), а затем выполняет событие сущности. Как это может помощь в дизайне уровней? Вместо того, чтобы вручную добавлять все сущности к потоковому графу в любых целях, вы можете просто назвать все ваши сущности по определенному (что надо делать в любом случае ради порядка!), а затем выполнять всё в одном ноде. Это означает, что если вы решите, например, изменить количество врагов в будущем, вы можете просто добавить их с определенными именами и не беспокоиться о их рескриптинге. Теперь давайте посмотрим на пример этого в реальном дизайне уровней.
Появление ИИ
В целях этого руководства мы всего лишь применим эффект к двум труперам, но он будет работать на значительно большем количестве групп ИИ, если необходимо.
Правила наименования
Сначала нам необходимо назвать нашего ИИ таким именем, которые гарантированно будет уникальным. Лично я использую довольно длинную строку, которая соответствует событию на уровне. В данном конкретном случае я использовал CrashSiteAI в качестве префикса для имени сущностей (фактически труперы имеют название CrashSiteAI1 и CrashSiteAI2 соответственно.).
Отключение единиц ИИ при старте
Что произойдет с этими ИИ? Ну, я хочу, отключить их до того момента, пока игрок не вызовет определенное событие, которое в данном случае — вход в ProximityTrigger. Сначала давайте взглянем на необходимые настройки для отключения ИИ при начале игры. Потоковый граф выглядит следующим образом:
Мы хотим вызвать событие Disable для труперов. Вы можете просмотреть полный список событий сущности взглянув в разделе «Input/Output» сворачивающейся панели, либо путем добавления сущности в потоковый граф и, просмотром доступных параметров.
Включение по входу в триггер
Теперь нам необходимо вызвать событие Enable когда игрок войдёт в триггер. Потоковый граф делается очень похожим образом.
Подробные детали по расширенной настройки ИИ будут в будущем, а пока надеюсь, что это помогло некоторым людям чуть больше понять гибкий дизайн и что это хоть чуть-чуть помогло вашим проектам. :)