有限状態マシンクラス

Game Programming Gemsより
「有限状態マシンクラスとは、有限個の状態から構成されるマシンである。」
例えば、状態を「感情」としましょう。
そこで、「感情」が普通の状態の友人がいるとします。
この友人に悪口を言うとどうなるかというと、当然怒ります。(怒りの状態)
さらに悪口を言うと、口をきいてくれなくなります。(あきらめ?の状態)
で、仕方ないから土下座します。そうすると、普通の状態に戻ってくれるかもしれません。
 
と、このように、外部から条件をあたえることにより、状態を遷移するのが有限状態マシンクラスです。
 
これをどうやってゲームに使うか。
キャラに喜怒哀楽を数値パラメータとして持たせて、
それぞれの数値によりキャラの感情を変化させる方法がありますね。
例えば、(というより明らかに)恋愛シミュレーションゲームやら、育成ゲームがこんな感じですね。
 
もっとモデルを簡単にして、アクションゲームに使う方法もあります。
(もっともこっちがGame Programming Gemsに書かれていたんですが…)
例えば、敵がプレイヤーを見つけると、接近してきて、「冷静→イライラ」
プレイヤーが攻撃すると、敵は怒り出します。「イライラ→激怒」
そこで敵が回復魔法で治癒するとイライラになります「激怒→イライラ」
この状態でプレイヤーが敵の見えないところまで逃げると「イライラ→冷静」
となり、もう追ってきません。
 
というように、アクションゲームの敵キャラに感情を入れるだけで、敵の動きがガゼン面白くなりますね。
例えば、「ガンスターヒーローズ」ですね。
このゲームはザコキャラがこれでもかっ、っていうぐらい個性的に動いてくれますね。