Accumulating Emotions

The prototype from Chapter 39 used a total of four complementary emotions. Because the emotions were interdependent, using more emotions would have caused the number of states in the model to grow exponentially. Instead, this section models each of the emotions separately, so adding emotions incurs a linear growth of states. We'll use the emotions listed in Table 37.3 (refer to Chapter 37); specifically, pride, shame, fear, anger, joy, sorrow, amusement, and weariness.

Complementary emotions are grouped together in a single fuzzy finite-state machine (FFSM), which acts as an accumulator, as depicted in Figure 42.3. finite-states are not typically suited as accumulators, but using fuzzy states resolves the issue. The FFSM is comparable to linguistic variables in fuzzy logic. For example, one finite-state machine will include three fuzzy states, two extremes, and the neutral emotion: amusement, weariness, and boredom.

Figure 42.3. Two complex emotions made of three primary emotions. Sensations drive the state changes, and the complementary states are linked together by a "not" fuzzy relationship.

graphics/42fig03.gif

Each state in the FFSM is connected with transitions triggered by the fuzzy sensations. The transitions can be expressed as fuzzy rules; the target state value is the MIN of the source state value and the input condition.

As with the fuzzy FSA used to model sensations, FFSMs may degenerate, too. Using both synchronous and asynchronous approaches may lead to each of the fuzzy states becoming 0 if no precautions are taken. Similar to the tricks described for sensations, the fuzzy variables for complementary emotions are linked with fuzzy rules (both defined as the opposite of one other).



AI Game Development. Synthetic Creatures with Learning and Reactive Behaviors
AI Game Development: Synthetic Creatures with Learning and Reactive Behaviors
ISBN: 1592730043
EAN: 2147483647
Year: 2003
Pages: 399

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net