Boids

トップページへ

Boids

Boid とは

Boids (ボイド) は 鳥の群れをのようなアニメーションを簡単な規則 (アルゴリズム) によって作り出すプログラムです. 発表時は "bird-oid (鳥もどき)" と呼ばれていましたが, 後に短縮され Boid と称されるようになりました.

Boid アルゴリズムでは, それぞれの "鳥" は単純なルールに従って飛ぶだけなのに, 全体としては驚くほど現実の鳥の群れに似た動きを見せます.

Boids のルールとは (基本的には) 以下の3つです. 個々の鳥はこの規則に従って自分の飛び方を決めるわけです.

分離 (Separation)
他の鳥たちとぶつからないように距離をとる.
整列 (Alignment)
他の鳥たちと概ね同じ方向に飛ぶように速度と方向を合わせる.
結合 (Cohesion)
他の鳥たちが集まっている群れの中心方向へ向かうように方向を変える.

これらのルールは, 他の鳥との関係に応じた によって表現されます. 例えば他の鳥に近づきすぎた場合は 反発力 が働く, など. (実際のプログラム上は力の代わりに加速度 を直接操作しています)

このように力を媒介として相互関係を定義することは, 力学的な物理モデルを設計する作業ととても似ています.


参考サイト:

課題


参考サイト:

ソースコードの zip ファイルについて

Three.js 公式サイトのサンプル [Three.js Examples - Boids] と同じものです. ソースコードは GitHub で公開 されていますが, そのうち上記のデモをローカル環境で実行するのに必要なファイルだけまとめ, さらにコメントを付けたり読みやすいように改変したりしたものです.

zip ファイルには以下のファイルが含まれています.

index.html を開いてみましょう. web 上でのデモと同じように表示されるはずです.

そのあとプログラム (js/boids/*.js) を変更してみましょう. 変更を保存した後 chrome で F5 キーを押してページを再読み込みすると変更内容が反映されます. (プログラムを一度にいろいろ変更しようとすると, うまく動かなくなった時にわけがわからなくなってしまうので, 少し変更したらすぐに F5 で確認するようにしましょう)

時間が余ってしまった場合