boid

図解 OpenGLによる3次元CGアニメーション

図解 OpenGLによる3次元CGアニメーション

OpenGLについてちゃんと勉強してみようと思って本を探していたら、例題としてboidが取り上げられていたので迷わず買った。
正直コードはすごく汚いけど、読み易い本だな。

本に載ってたコードをほとんどそのまま実行してみたのが下の画像。

boid

boid(birdoidの略)は生物の郡行動を模倣する自律エージェントのこと。
参考:http://www.red3d.com/cwr/boids/
次の3原則に従って各ボイドは行動をする。

離脱則
近隣の仲間を回避する(衝突回避)
整列則
近隣の仲間と速度を合わせようとする
集合則
近隣の仲間の重心位置に向かおうとする

たったこれだけの原則で、最初バラバラだったボイド達が群れを作り行動を共にするようになる。その動きも複雑で突然群れ全体で加速したり、進行方向を突然変えたり、本物の生物みたいな動きをする。
このボイドの3原則は完全に局所相互作用のみに依っていて、実際の生物の行動規範をよく表していると思う。

障害物を追加したり、様々な種類の魚(捕食者と被捕食者など)を混ぜてみたりしたら面白そう。