2012/02/18

ProcessingでAI

【Boid 理論を眺める】

くろねこさんが Boid 理論を使ってパーティクルを動かしていたのが気になって、僕もちょっと背伸びをして大風呂敷を広げてみました。……あ、タイトルは釣りです

Boid 理論とは、団体行動を取っているような「群れ」を再現するシミュレーションです。ご存知ない方は、先入観なしに以下の動画をご覧ください。


この理論の元ネタは、Craing Reynolds によって 1987 年に発表された “Flocks, Herds, and Schools: A Distributed Behavioral Model” という論文で、以下の行動パターンを組み合わせるだけで集団行動を巧妙にシミュレートできるというものです。
  • Cohesion (群れにくっつくよ!)
  • Alignment (みんなで同じ方向を向くよ!)
  • Separation (ぶつかりそうになったらちょっと離れるよ)
おもしろいですね。



なお、サンプル動画の中では、個体の「視野角の広さ」を切り替えています。

各個体が広い視野角を持つ場合、群れは横に大きく膨らむ形になります。

一方、視野角が狭い場合、個体は一列に並びます。



なお、今回の実装にあたって参考にした文献は、David M. Bourg, Glenn Seemann 著『ゲーム開発者のための AI 入門』です。

ほとんど移植に近いので恐縮ですが、お勉強日記なのでたまにはこういうのもいいかなーと。ちなみに実際に動作するサンプルとソースコードは OpenProcessing の方に上げてありますが、ほとんど C++ 実装からの移植なので微妙かも知れません。

0 件のコメント:

コメントを投稿

ひとことどうぞφ(・ω・,,)