вторник, 3 июля 2007 г.

GOAP resarch

Почитал многочисленные статьи Jeff Orkin’а, треды на форумах про данный подход - Goal Oriented Action Planning (GOAP) и STRIPS. Захотелось мне использовать эту технику для построения графа анимации, но вот беда толковых экзамплов\сорцов не нашлось.
Хочу выложить результат небольшого резерча, может кому-то окажется полезным.

Задача, которую я пытался решить звучит примерно так:
+есть разные юниты, управляемые логикой
+при изменении логического состояния, юнит должен проигрывать соотв. анимации
+между анимациями есть зависимости, например: включение аним. <Перезарядка>, для юнита <Робот>, возможно, только во время аним. <Движение> или смена аним. <Примерз> для юнита <2у-ногий> возможно, только через аним. <Айдл>

Вот что получилось:

goap.lua - http://www.everfall.com/paste/id.php?1k4t3oxnbdwc
astar.lua - http://www.everfall.com/paste/id.php?axz0w5fbtd4q

Запускать – “Lua.exe goap.lua > result.log”
Испытывалось на .

В goap.lua:
- g_tGoals – состояния, в которых логика хочет видеть абстрактного юнита
- g_tHumActions, g_tRoboActions, g_tMseActions – Action(Action – подразумевает анимацию юнита) которые может выполнять конкретный тип юнита, для достижения Goals. Условия выполнения Actions – Actions::precond, а результат выполнения Actions::effect.

3 комментария:

  1. I'd like to take a look at this code, any chance you could upload it somewhere?

    Many thanks.

    ОтветитьУдалить
  2. Этот комментарий был удален автором.

    ОтветитьУдалить
  3. there is link http://www.everfall.com/ in the post. or need something different?

    ОтветитьУдалить

Вкратце