くろねこさんが 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 件のコメント:
コメントを投稿
ひとことどうぞφ(・ω・,,)