Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

Boidsとは

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

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

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

参考文献

課題と改善

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

実際に行ったこと

1. 結合のルールの変更

他の鳥オブジェクトと結合するか、しないかを際の、鳥オブジェクト間の距離に応じて決めるようにした。

そうすることで、群が複数できるようになり、また距離によっては群の結合が行われて複雑性が増した気がすする。

2. 整列のルールの変更

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

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

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

実際に作ったもの

boids
nuuullnull/Unity-Boids

今後の課題

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした