Скриптинг И.И.: Дерево выбора поведения

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

Перейти к: навигация, поиск
Эта страница страница помечена как находящиеся в процессе перевода с: 20 июля 2012.
Статью пометил сам автор статьи.


О статье
АвторAndreyFilantrop
СложностьСредняя
ТребованияТекстовый редактор, Crysis 2 Mod SDK.
Дата добавления20/07/12


Содержание

Дерево выбора поведения

Обзор

В то время как скрипты поведения представляют собой индивидуальную логическую обработку состояний в которых может находиться ИИ, по прежнему должна существовать возможность выбора между ними, чтобы выбрать правильное поведение в любой момент игры. Дерево выбора поведений (BHS) определяет набор правил, которые позволяют ИИ системе сохранять необходимое поведение ИИ всё время. Каждый ИИ-тип должен быть связан с BHS, и более чем один ИИ-тип может относиться к тому же BHS.

Давайте определим некий пример, на который в дальнейшем мы будем ссылаться в течение всей этой статьи. Скажем некий ИИ, которого мы назовем «Grunt», имеет 3 поведения: idle, alert, и attack. (перевод этих названий соответственно: в режиме ожидания - т.е. дефолтное поведение, встревоженный, боевое поведение). ИИ должен быть по определению в дефолтном поведении idle, когда он не получает внешних стимулов; в состоянии alert он должен находиться, года он слышит что-то неизвестное, и наконец в состояние attack он перейдет, когда он визуально может уже видеть врага. Обратно в состояние idle он может перейти через некоторое время, если он на его протяжении не получает обновляющихся слуховых/визуальных стимулов. Чтобы поддерживать такую систему, ИИ должен иметь Дерево Выбора Поведений или BHS, которое будет определять, какие условия ассоциируются с каким из поведений. Глобальная ИИ-система будет заботиться об обновлении ИИ перцепции (т.е. восприятии сигналов) и посылании сигналов событий, когда состояние перцепции ИИ меняется.

Диаграмма вышеуказанных поведений может выглядеть так:


-потом нарисую


Этот макет является ключом к функционированию ИИ в игре, т.к. он определяет все поведения, которые ИИ должен поддерживать в игре. Это, естественно, должно переводиться в BHS с набором для реализации подходящего поведения. Все BHS должны быть определены внутри папки «Game» в директории «Scripts/AI/SelectionTrees». Новое дерево, добавляемое в эту папку, будет автоматически проявлено в игре при перезагрузке ИИ или при перезагрузке игры. Чтобы связать BHS с конкретным архетипом ИИ, загрузите архетип в редакторе, и используйте выпадающее меню для BehaviorSelectionTree параметра под вкладкой Class Properties.

Дерево Выбора Поведений: концепция и анатомия

BHS концепция предполагает, что в любой момент времени ИИ будет иметь одно поведение соответствующее текущему состоянию. Так, когда ИИ слышит какой-то звук, он начинает исследовать его, а когда видит врага - атакует его. Обратите внимание, что BHS не содержит информации о том, как ИИ переходит между состояниями, но содержит - только о том, как выбрать правильно поведение для правильного момента. BHS определяется посредством XML скрипт-файла и должно быть пригодным для ИИ, чтобы он мог перейти в любое поведение. Если BHS недоступно, то ИИ может только поворачивать голову по направлению к цели, и «ai_debugdraw 1» будет показывать «No Behavior» в дебаге.

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

Дерево Выбора Поведений содержит 4 компонента:

1) Выбираемые переменные: Переменные используются для определения условий, которые выбирают между статусами в Дереве.

2) Сигнальные переменные: Сигналы, как посылаемые ИИ системой, которая непосредственно изменяет состояние выбираемых переменных (см.пункт №1).