NPCを実装して、仮想空間、具体的には猫を歩き回っています。一連の短いアニメーションクリップ(3〜5秒)があります。私の最初の本能は、最後のアニメーションが終了したときにランダムなアニメーションを選択することだけでしたが、次のアニメーションが物理的に偶発的な可能性に制限されていても、動作が頻繁に変更されるため、現実的に見えないことに気付きました。
私の意図する解決策は、各アニメーションに次のアニメーションの重み付きリストがある、動作ツリー(http://www.gamasutra.com/blogs/ChrisSimpson/20140717/221339/Behavior_trees_for_AI_How_they_work.php)のようなものです。つまり、猫が歩いている場合、歩き続ける確率は80%、座っている確率は20%、睡眠は0%です。基本的にマルコフモデルを使用して適切な次のステップを取得します。
ただし、これが良い解決策であるかどうかはわかりません。また、現在のアニメーションから次のアニメーションの可能性と確率へのマッピングを生成する方法もわかりません。30のアニメーション* 30の次のアニメーション= 900の重み付け。手動で計算するのは大変です。
猫は障害物にぶつかると反応することがありますが、問題の先を行くと、事前にすべてを選択せずに現実的なアニメーションのシーケンスを選択することになります。ツリーには、人への近さ、部屋の場所、最後に食べてからの時間など、他のいくつかの入力もあります。