Речь идет о вложенности. HSM - это, по сути, FSM, но каждый штат в свою очередь может быть отдельным FSM.
Для примера в игре рассмотрим NPC. Имеет несколько состояний:
- Пройдите к точке A
- Подожди минуту
- Прогулка до точки B
- Подожди минуту
- Продолжить с 1
- Борьба с ПК
Этот FSM прост, но все состояния должны иметь переход в состояние 6 (Борьба с ПК), когда NPC атакован ПК. Это делает ФСМ уродливым. Итак, вместо этого давайте это гораздо более простой FSM:
- Ходить по
- Борьба с ПК
Этот FSM очень прост, есть только два перехода, и его легко понять. Основные части штата 1 являются вторичными FSM:
- Пройдите к точке A
- Подождите минутку
- Прогулка до точки B
- Подожди минутку
Если есть событие, которое не соответствует вторичным переходам FSM, например, атакующий ПК, вы поднимаетесь на уровень к FSM верхнего уровня, чтобы сопоставить событие, и находите подходящий переход.
В некотором смысле вы можете думать об этом как о стеке, каждое состояние на более высоком уровне может выдвинуть новый FSM более низкого уровня. Если есть четное число, которое не соответствует ни одному из возможных переходов, вытолкните стек и вернитесь на уровень выше. Продолжайте, пока не появится соответствующий переход.
Короче говоря, это способ упростить FSM.