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

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

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

Версия 09:56, 7 августа 2012

Эта страница страница помечена как находящиеся в процессе перевода с: 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).