6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

もっと味のあるBoidsを描きたい

Last updated at Posted at 2018-06-20

最近Unityをはじめたので、いい感じに動くものを作りたいと思って、Boidsをシミュレーションするものを作ってみました。

Boidsとは

コンピュータ上の鳥オブジェクトに以下の三つの動作規則を与え、多数を同時に動かして群れの振る舞いをシミュレーションする。

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

引用 - ボイド_(人工生命) - wikipedia

参考文献

課題と改善

まず、基本のルール通りにコードを書いたのですが結構動きが単調になってしまってなんか、いい感じゃない。(ただ群の塊がいろんな方向に動くだけになってしまう。)
なので、ルールを追加したり、数値を利用して、もっといい動きをするBoidsを作れないか試してみました。

実際に行ったこと

1. 結合のルールの変更

他の鳥オブジェクトと結合するか、しないかを際の、鳥オブジェクト間の距離に応じて決めるようにした。
そうすることで、群が複数できるようになり、また距離によっては群の結合が行われて複雑性が増した気がすする。

2. 整列のルールの変更

群の中心ではなく、群の中心から、一番離れた鳥オブジェクトをリーダーとして、それに向かうように変更を加てみました。場面によりリーダーが代わり、より縦横無尽に場面を行き来するようになりました。

3. グループの鳥オブジェクトの数を利用する

群が大きいほど、色が濃くなるようにして、それぞれの群が可視化できやすいようにしてみた。(ここはまだ改善の余地がありそう)

実際に作ったもの

boids
nuuullnull/Unity-Boids

今後の課題

まだまだ、色々ルールの追加で面白くはなりそうな気がするので、値とかうまく使い回せるようにしたい。
あとUnity、C#のお作法がまだしっかりとよくわかってないので勉強したいです。
コードで変なところとかあればぜひ教えてください!

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?