kkana's blog

新米コーダーの忘れそうなことメモ

boidについて

複雑系とは

  • 複数の単純な個体が狭い範囲の関係を持つ
  • 複数の個体は平行して動作する(同じアニメーションフレームの中ですべての個体の動きがある)
  • 系全体でみると創発具象を見せる

複雑系の特徴

  • バタフライ効果 - Wikipedia
  • 競争と協力
    生命の複雑系にしか見受けられない。これが複雑性をつくる。
  • フィードバックがある
    系の結果から系の結果へ、行動に影響を与える。

群れを作るには

ビークルは他のすべてのビークルに注意を向ける。
→まわりのビークルから受ける複数の力を組み合わせて、重みをつけて適用。
複雑系の完成!

レイノルズのboid

ボイド (人工生命) - Wikipedia

http://www.red3d.com/cwr/ Craig Reynoldsのサイト。boidの原文もここに。家族の写真まである・・・!

群れのルールは以下三つ

  • 分離
    ぶつからないように距離をとる
  • 整列
    仲間と同じ方向に飛ぶように速度と方向を合わせる
  • 結合
    集まっている群れの中心方向へ向かう

という・・・。たったこれだけなのに魚みたい!

See the Pen 群れ by kanaparty (@kanaparty) on CodePen.

http://tuitui.hatenablog.com/entry/2015/12/21/010735 これを書いたときは、上の三つのルールに

  • 壁(画面の淵)にぶつからないように壁の近くまで来たら壁の反対方向に向かう

という力を追加した。

4つのちからにうまいこと重みをつけていくのが あんがい難しくて
結局壁から離れる力を大きくしすぎると壁のあたりで止まってしまうので
結局壁をはみ出ているビークルが多ければ壁を突き抜けて動くことにして、
とりあえず不自然に見えなくなったので、この課題はここまで。
たぶん壁の近くに来たら、整列と結合の力を弱めたりしたらいいのかな。。

ずっと眺めていても飽きなくて、複雑系って面白いなぁ。