Goals

There are two types of goals implemented in FAtiMA: Active Pursuit and Interest goals. Both are taken out of the OCC (Ortony, Clore and Collins) emotion model. Active pursuit goals are goals that the character actively tries to achieve (bully – for instance). Interest goals represent a goal that the character has but does not pursue (not getting hurt – for instance).

It is important to understand there that the character goals, in an emergent scenario, are the elements that will regulate the interactions and bring coherence in an episode. These goals must be:

  • Developed in accordance to the character’s personality (never should a goal out of character be implemented).
  • They must be as generic as possible so the mechanism (or the goal for that matter) can be re-used in other scenarios or by other characters – for instance, a goal to confront a bully should be implemented in such a way that not only the victim could activate the goal.

 

Interest Goals are the simplest goals to model. When defining an Interest Goal you only have to specify a condition that the interest goal tries to protect. Interest goals work not by trying to explicitly achieve the condition but detecting whenever a plan may threat the condition being preserved by the goal. If such situation is detected, a fear emotion is triggered and if the generated emotion is strong, the threatening plan might be dropped. The following Interest Goal corresponds to John’s goal of not getting hurt, as you can see in the property being protected. Whenever John considers a plan that has contains an action that may put the property [SELF](hurt) = True, it will use its emotions to decide what to do.

 

<InterestGoal name=”AvoidGettingHarmed”>

<ProtectionConstraints>

<Property name=”[SELF](hurt)” operator=”=” value=”False” />

</ProtectionConstraints>

</InterestGoal>

 

Active Pursuit goals are more complex to define. It’s necessary to define the preconditions that activate the goal, the goal’s success conditions and the goal’s failure conditions. The goal becomes active if all its preconditions are verified (you can consider the list of preconditions as a logical AND). For more details about the activation process consult the goal activation subsection. When the goal becomes active, the planner tries to establish all the goal’s success conditions, and only if all of them are verified the goal is considered achieved (logical AND). If at any moment while the goal is active at least one of the failure conditions is verified (logical OR), the goal automatically fails and the agent gives up.