Finite State Machines (конечные автоматы) — различия между версиями
RedPython (обсуждение | вклад) (Новая страница: «Finite State Machines (FSM) или конечные автоматы — распространенная и удобная техника для программ…») |
RedPython (обсуждение | вклад) м |
||
Строка 5: | Строка 5: | ||
NPC может перейти из одного состояния в другое после выполнения некоторого условия перехода. При задании условия перехода из состояния A в состояние B мы фактически определяем, при каких условиях будет осуществлен переход из одного состояния в другое. При этом переход из B в A требует определения своего собственного условия перехода. Если условия перехода, между какими либо двумя состояниями не задано, то переход считается невозможным. | NPC может перейти из одного состояния в другое после выполнения некоторого условия перехода. При задании условия перехода из состояния A в состояние B мы фактически определяем, при каких условиях будет осуществлен переход из одного состояния в другое. При этом переход из B в A требует определения своего собственного условия перехода. Если условия перехода, между какими либо двумя состояниями не задано, то переход считается невозможным. | ||
− | Структуру FSM можно представить в виде ориентированного графа | + | Структуру FSM можно представить в виде ориентированного графа, вершины которого (кружочки) – состояния, а ребра (стрелочки) – условия перехода. |
[[Файл:fsm-dobronravin-illustrate.png]] | [[Файл:fsm-dobronravin-illustrate.png]] | ||
Строка 26: | Строка 26: | ||
01.11.2003 | 01.11.2003 | ||
+ | |||
+ | [[Категория:A-Life]] |
Текущая версия на 21:30, 24 июня 2018
Finite State Machines (FSM) или конечные автоматы — распространенная и удобная техника для программирования поведения ботов (NPC) в компьютерных играх.
В основу FSM положен принцип того, что в каждый конкретный момент времени NPC находится в некотором четко определенном состоянии. Таких состояний конечное число, и все они известны заранее. Так, например, состояниями бота могут быть: ничего не деланье, хождение по маршруту, отыгрыш звука или анимации. Особым состоянием является нахождение NPC под контролем ИИ игры.
NPC может перейти из одного состояния в другое после выполнения некоторого условия перехода. При задании условия перехода из состояния A в состояние B мы фактически определяем, при каких условиях будет осуществлен переход из одного состояния в другое. При этом переход из B в A требует определения своего собственного условия перехода. Если условия перехода, между какими либо двумя состояниями не задано, то переход считается невозможным.
Структуру FSM можно представить в виде ориентированного графа, вершины которого (кружочки) – состояния, а ребра (стрелочки) – условия перехода.
Пример[править]
Состояния:
- 0 – состояние солдата под контролем ИИ
- 1 – солдат говорит «стой, стрелять буду!»
- 2 – солдат говорит «ушел гад»
Условия перехода:
- 0.1 – солдат первый раз видит актера
- 1-0 – солдат закончил говорить фразу «стой стрелять буду!» и видит актера
- 1-2 - солдат закончил говорить фразу «стой стрелять буду!» и потерял из виду актера
- 2-0 - солдат закончил говорить фразу «ушел гад»
Юрий Добронравин
01.11.2003