前回は、目に見えたboidsの合計平均位置を求めて、そこに飛ぶようにした。
Alignment(整列)も同じ感じで、目に見えたboidsの合計平均ベロシティを求めて周りとスピードを合わせるというものだ。後、boidsの向きを周りと合わせる。
さらに、boidsの最高速度を設定してスピードの制限をした。
この3つについて、みていきたい。
まず、それらを設定した動画↓↓
その2から比べると、周りのboidsにCohesion、Alignmentを設定したため、それらしくなっている。
又、お魚さんのシェイプも適当に割り当ててみた^^
始めに、前回と同じようにSumVelocityとpcountのメモリを用意する。
これは次の、SumVelCalcダイナミクスでもそうだが、 目に見える条件は一緒なのでCohesionとまとめるほうがデータ的には軽くなると思う。とりあえず、解かりやすさを優先して最終的に整理するようにしたい。
上記でいったように、SumPosisionとダイナミクスを分けている。条件は全く一緒で、ベロシティのaddしていく感じも大体一緒だ。
ここで、平均ベロシティをaddしていく。vif関数でp-countを条件化して平均ベロシティを計算する。
boidsが進む方向に向きを設定。
次に、boidsの最高速度を設定する。これは結構使うと思うので、要チェックしておきたい。
MaxSpeedより、現在のスピードが速かったら、現在の方向にMaxSpeedを乗算する。それ以外は、現在のスピードという感じ。
シェイプダイナミクスの説明は、省く。
以上。
0 件のコメント:
コメントを投稿