Boids (ボイド) は 鳥の群れをのようなアニメーションを簡単な規則 (アルゴリズム) によって作り出すプログラムです. 発表時は "bird-oid (鳥もどき)" と呼ばれていましたが, 後に短縮され Boid と称されるようになりました.
Boid アルゴリズムでは, それぞれの "鳥" は単純なルールに従って飛ぶだけなのに, 全体としては驚くほど現実の鳥の群れに似た動きを見せます.
Boids のルールとは (基本的には) 以下の3つです. 個々の鳥はこの規則に従って自分の飛び方を決めるわけです.
これらのルールは, 他の鳥との関係に応じた 力 によって表現されます. 例えば他の鳥に近づきすぎた場合は 反発力 が働く, など. (実際のプログラム上は力の代わりに加速度 を直接操作しています)
このように力を媒介として相互関係を定義することは, 力学的な物理モデルを設計する作業ととても似ています.
参考サイト:
Boid.js
の alignment
, cohesion
, separation
各関数)Boid.js
の _neighborhoodRadius
)Main.js
の init
関数内のループの上限数)Main.js
の init
関数内の Mesh
生成部分)Main.js
の render
関数内)参考サイト:
Three.js 公式サイトのサンプル [Three.js Examples - Boids] と同じものです. ソースコードは GitHub で公開 されていますが, そのうち上記のデモをローカル環境で実行するのに必要なファイルだけまとめ, さらにコメントを付けたり読みやすいように改変したりしたものです.
zip ファイルには以下のファイルが含まれています.
boids/
index.html
-- このファイルをブラウザで開いて下さい. すると以下のファイルは自動で読み込まれますjs/
boids/
Main.js
-- メイン (ここからプログラムの実行が開始される)Boid.js
-- 個々の鳥の振る舞いを制御するBird.js
-- 鳥モデルを表すlibs/
-- Three.js などのライブラリが入っているフォルダ
index.html
を開いてみましょう.
web 上でのデモと同じように表示されるはずです.
そのあとプログラム (js/boids/*.js
) を変更してみましょう.
変更を保存した後 chrome で F5
キーを押してページを再読み込みすると変更内容が反映されます.
(プログラムを一度にいろいろ変更しようとすると, うまく動かなくなった時にわけがわからなくなってしまうので,
少し変更したらすぐに F5
で確認するようにしましょう)